MessageBox avec messages différents dans le cadre d'une gestion d'erreur !!!

Résolu
manekimashimaro
Messages postés
8
Date d'inscription
vendredi 6 août 2010
Statut
Membre
Dernière intervention
31 janvier 2011
- 27 août 2010 à 12:13
NHenry
Messages postés
14971
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
- 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 !!!!!!!!!!!!!!!!

4 réponses

NHenry
Messages postés
14971
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
161
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.

Mon site
3
manekimashimaro
Messages postés
8
Date d'inscription
vendredi 6 août 2010
Statut
Membre
Dernière intervention
31 janvier 2011

27 août 2010 à 13:49
Merci Beaucoup, Beaucoup !!!

J'y vois un peu plus clair !!!
Je vais essayer tout ça, et je ferai plus attention à où je poste mes messages !!!

En ce qui concerne le nom de mes variables, je les avais changer pour avoir un exemple générique !!!!!!!

Merci NHenri et à bientôt sur le forum !!!

MMM
0
manekimashimaro
Messages postés
8
Date d'inscription
vendredi 6 août 2010
Statut
Membre
Dernière intervention
31 janvier 2011

27 août 2010 à 17:05
Ca marche Super !!!
Merci !!!!
0
NHenry
Messages postés
14971
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
161
27 août 2010 à 18:10
Bonjour,

Pense à mettre "Réponse acceptée" sur la réponse qui t'as aidée pour résoudre ton pb :)

Mon site
0