MsgBox
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher une information :Sub effacer_B2()
Range("B2").ClearContents
MsgBox "Le contenu de B2 a été effacé !"
End Sub
Aperçu du code :
Nous allons maintenant créer une boîte de dialogue qui va nous demander de confirmer la suppression avant d'effectuer les deux instructions. Voici les 3 arguments que nous allons renseigner :
MsgBox([TEXTE], [BOUTONS], [TITRE])
- Texte : texte de la boîte de dialogue
- Boutons : choix des boutons (oui, non, annuler, etc.) + autres options
- Titre : titre de la boîte de dialogue
Sub effacer_B2()
If MsgBox("Etes-vous certain de vouloir supprimer le contenu de B2 ?", vbYesNo, "Demande de confirmation") = vbYes Then
Range("B2").ClearContents
MsgBox "Le contenu de B2 a été effacé !"
End If
End Sub
vbYesNo indique que les boutons de la boîte de dialogue sont "Oui" et "Non", vbYes correspond au bouton "Oui" :
If MsgBox("Texte", vbYesNo, "Titre") = vbYes Then 'Si le bouton Oui est cliqué ...
Les différentes possibilités pour le second argument de MsgBox
Constante | Valeur | Description |
vbOKOnly | 0 | |
vbOKCancel | 1 | |
vbAbortRetryIgnore | 2 | |
vbYesNoCancel | 3 | |
vbYesNo | 4 | |
vbRetryCancel | 5 |
vbCritical | 16 | |
vbQuestion | 32 | |
vbExclamation | 48 | |
vbInformation | 64 |
vbDefaultButton1 | 0 | Bouton par défaut : Bouton 1 |
vbDefaultButton2 | 256 | Bouton par défaut : Bouton 2 |
vbDefaultButton3 | 512 | Bouton par défaut : Bouton 3 |
vbApplicationModal | 0 | Force l'utilisateur à répondre avant de poursuivre avec Excel |
vbSystemModal | 4096 | Force l'utilisateur à répondre avant de poursuivre avec d'autres applications (boîte de dialogue au premier plan) |
Le deuxième argument de MsgBox peut prendre jusqu'à une valeur de chaque tableau.
Par exemple, pour une boîte de dialogue avec "Oui, Non, Annuler" + icône exclamation + bouton 2 par défaut :
MsgBox("Texte", vbYesNoCancel + vbExclamation + vbDefaultButton2, "Titre")
Les constantes peuvent être remplacées par leur valeur respective, ces 3 lignes sont identiques :
MsgBox("Texte", vbYesNoCancel + vbExclamation + vbDefaultButton2, "Titre")
MsgBox("Texte", 3 + 48 + 256, "Titre")
MsgBox("Texte", 307, "Titre")
Les valeurs renvoyées par MsgBox
Constante | Valeur | Bouton correspondant à la valeur |
vbOK | 1 | |
vbCancel | 2 | |
vbAbort | 3 | |
vbRetry | 4 | |
vbIgnore | 5 | |
vbYes | 6 | |
vbNo | 7 |
Sub petite_blague()
Do
If MsgBox("Aimez-vous le site Excel-Pratique ?", vbYesNo, "Sondage") = vbYes Then
Exit Do ' => Si réponse = Oui on sort de la boucle
End If
Loop While 1 = 1 ' => Boucle infinie
MsgBox ";-)"
End Sub
Saut de ligne dans une MsgBox
Pour aller à la ligne, vous pouvez insérer le caractère "saut de ligne" avec la fonction Chr et le n°10 correspondant à ce caractère, exemple :MsgBox "Exemple 1" & Chr(10) & "Exemple 2" & Chr(10) & Chr(10) & "Exemple 3"
InputBox
L'InputBox demande à l'utilisateur d'entrer une valeur depuis une boîte de dialogue, exemple :Sub exemple()
Dim resultat As String
resultat = InputBox("Texte ?", "Titre") 'La variable reçoit la valeur entrée dans l'InputBox
If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
MsgBox resultat
End If
End Sub
Il est possible d'indiquer une valeur par défaut en troisième argument :
InputBox("Texte ?", "Titre", "Valeur par défaut")
Aucun commentaire:
Enregistrer un commentaire