manekimashimaro
Messages postés8Date d'inscriptionvendredi 6 août 2010StatutMembreDernière intervention31 janvier 2011
-
27 août 2010 à 12:13
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024
-
27 août 2010 à 18:10
Bonjour à tous !!!
C'est la première fois que je viens directement à vous pour la résolution de mon problème, j'espère que je serai suffisamment claire dans mes explications !!!
Voilà, pour la gestion des erreurs d'un programme que je suis en train d'élaborer, j'aimerais créer une MsgBox dont le message changerais en fonction d'une variable. Je travaille sous du Excel 2003 et j'utilise VBA.
Pour l'instant, ça donne ça :
Sub ErrValeur(i As Integer)
Dim Msg, Msgi, Style, Title, Reponse
Msg = Msgi
Style = vbOKOnly + vbExclamation
Title = "Erreur de Saisie"
Reponse = MsgBox(Msg, Style, Title)
Select Case i
Case Is = 1
Msgi = "La valeur V1 indiquée n'est pas valide."
Case Is = 2
Msgi = "La Valeur V2 indiquée n'est pas valide."
Case Is = 3
Msgi = "Veuillez indiquer la valeur de V3 utilisée."
Case Is = 4
Msgi = "Veuillez indiquer la valeur de V4 utilisée."
Case Is = 5
Msgi = "La valeur V5 indiquée n'est pas valide."
End Select
End Sub
Que j'utilise ici :
Private Sub Des_Click()
Dim V1 As Integer, V2 As Single, V5 As Integer
V1 = VF1
If V1 = 0 Then
Call ErrValeur(i = 1)
End If
...
End Sub
Lorsque je lance le programme, la MsgBox apparait (comme je le souhaite), mais il n'y a pas de Msg affiché au sein de celle-ci !!!
J'espère ne pas avoir fait de grosse erreur de programmation, mais si c'est le cas, désolée !!!!
D'avance, merci de votre aide !!!!!!!!!!!!!!!!
A voir également:
MessageBox avec messages différents dans le cadre d'une gestion d'erreur !!!
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 27 août 2010 à 13:05
Bonjour,
Déjà tu as posté dans la catégorie .NET pour du VBA.
Ensuite, dans ta sub :
Sub ErrValeur(i As Integer)
Dim Msg, Msgi, Style, Title, Reponse
Msg = Msgi
Style = vbOKOnly + vbExclamation
Title = "Erreur de Saisie"
Reponse = MsgBox(Msg, Style, Title)
Select Case i
Case Is = 1
Msgi = "La valeur V1 indiquée n'est pas valide."
Case Is = 2
Msgi = "La Valeur V2 indiquée n'est pas valide."
Case Is = 3
Msgi = "Veuillez indiquer la valeur de V3 utilisée."
Case Is = 4
Msgi = "Veuillez indiquer la valeur de V4 utilisée."
Case Is = 5
Msgi = "La valeur V5 indiquée n'est pas valide."
End Select
End Sub
Pense à toujours typer fortement tes variables :
Dim Msg, Msgi, Style, Title, Reponse
deviendrais (sauf erreur de ma part :
Dim Msg as String, Msgi as String, Style As Long, Title as String, Reponse As Long
Ensuite, mets ton MsgBox après ton Select Case
Mets des noms utiles à tes variables et tes paramètre, i comme nom de paramètre, ce n'est pas très clair
Ton Select Case :
Select Case i
Case Is = 1
à la place de "Case Is = 1", mets juste "Case 1"
Dans le code d'appel :
Call ErrValeur(i = 1)
i=1 retournera une expression booléenne, si tu veux que ton paramètre i ait une valeur précise :
Call ErrValeur(1)
Fonctionnera.