Vba affichage msgbox
Cédric
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Voulant faire une suite de msgbox avec des conditions... , quand je veux exécuter ma macro, j'ai des erreurs qui apparaissent mais je suis incapable de voir où j'ai bien pût faire mes fautes :(
peut on m'aider, voici ma macro :
merci
Cédric
Voulant faire une suite de msgbox avec des conditions... , quand je veux exécuter ma macro, j'ai des erreurs qui apparaissent mais je suis incapable de voir où j'ai bien pût faire mes fautes :(
peut on m'aider, voici ma macro :
Private Sub Worksheet_Activate() Cells(1, 3).Select 0 InputBox "Indiquez le N° voulu :", "AIDE", vbOKCancel, vbQuestion ' Stock If ("1") Then GoTo 1 Else ' Affichage If ("2") Then GoTo 2 Else ' Graphiques mensuel If ("3") Then Else ' Faire commande If ("4") Then GoTo 4 Else ' Liste papier If ("5") Then GoTo 5 Else ' Problèmes If ("6") Then GoTo 6 Else ' bouton annuler If ("vbCancel") Then GoTo 9 Else ' <> 1,2,3,4,5,6 GoTo 8 End If End If End If End If End If End If End If ' Message pour l'explication de l'onglet Stock 1 MsgBox "Voiture", "Aide Stock", vbOK, vbInformation GoTo 7 ' Message pour l'explication de l'onglet Affichage 2 MsgBox "Avion", "Aide Affichage", vbOKOnly, vbInformation GoTo 7 ' Message pour l'explication de l'onglet Graphiques mensuel 3 MsgBox "Bateau", "Aide Graphiques mensuel", vbOKOnly, vbInformation GoTo 7 ' Message pour l'explication de l'onglet Faire la commande 4 MsgBox "Vélo", "Aide Faire la commande", vbOKOnly, vbInformation GoTo 7 ' Message pour l'explication de l'onglet Liste papier 5 MsgBox "Train", "Aide Liste papier", vbOKOnly, vbInformation GoTo 7 ' Message pour l'explication de l'onglet Problèmes 6 MsgBox "Bus", "Aide Problèmes", vbOKOnly, vbInformation GoTo 7 7 ' Message choix fin aide ou recommencer MsgBox "Fin de l'aide", vbOK, vbRetry, vbInformation If (vbOK) Then GoTo 9 Else GoTo 0 End If 8 ' Message d'erreur dans valeur rentré au départ MsgBox "Erreur, veuillez rentrer un chiffre correspondant à l'aide de l'onglet voulu." & vbNewLine & "Veuillez vous référer au tableau derrière.", vbRetryCancel, vbExclamation If (vbRetry) Then GoTo 0 Else GoTo 9 End If 9 MsgBox "Fin", "Aide", vbOKOnly End Sub
merci
Cédric
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
2 réponses
Bonjour
à la place de if then else en cascade, tu peux utiliser un select case.
L'utilisation des goto est très fortement déconseillée.
Dans ton cas, avec si peu d'instructions à tes étiquettes de lignes, autant mettre le code dans le corps du if ou du select case.
Sinon utilise des Function ou des Sub.
Une fois ton code mieux structuré, il sera plus facile à déboguer et à maintenir.
à la place de if then else en cascade, tu peux utiliser un select case.
L'utilisation des goto est très fortement déconseillée.
Dans ton cas, avec si peu d'instructions à tes étiquettes de lignes, autant mettre le code dans le corps du if ou du select case.
Sinon utilise des Function ou des Sub.
Une fois ton code mieux structuré, il sera plus facile à déboguer et à maintenir.
Cédric
Vous n'auriez pas un exemple ? (je sais pas ce que c'est...) :/
Je pense que si tu tapes VBA select case tu vas en trouver pleins des exemples...
Dim choix As Integer choix = 2 Select Case choix Case 0 'code si le choix vaut zéro Case 1 'code si le choix vaut un Case Is > 1 trucmuche End Select End Sub Sub trucmuche() 'code un peu long pour etre dans le corps du select case End Sub