MsgBox et InputBox
Une macro a souvent besoin de parler à l'utilisateur : annoncer que le traitement est fini, demander une confirmation avant de supprimer, réclamer un mois ou un nom de client. MsgBox et InputBox sont les deux outils les plus simples pour cela.
Télécharger la fiche PDF gratuiteSans inscription, mise en page prête à imprimer01Définition
MsgBox affiche un message et peut proposer des boutons (Oui, Non, Annuler). InputBox affiche une zone de saisie et renvoie ce que l'utilisateur a tapé.
02MsgBox : informer
MsgBox message, [boutons], [titre] MsgBox "Traitement terminé." MsgBox "Fichier introuvable.", vbCritical, "Erreur" MsgBox "Total : " & total & vbCrLf & "Lignes : " & nb
Le symbole & assemble les morceaux de texte, et vbCrLf passe à la ligne.
| Constante | Effet |
|---|---|
| vbInformation | icône « i » bleue |
| vbExclamation | icône d'avertissement |
| vbCritical | icône d'erreur rouge |
| vbQuestion | icône point d'interrogation |
| vbYesNo | boutons Oui et Non |
| vbOKCancel | boutons OK et Annuler |
03MsgBox : demander une confirmation
Utilisée comme une fonction, MsgBox renvoie le bouton cliqué : vbYes, vbNo, vbCancel...
Sub ViderDonnees() If MsgBox("Effacer toutes les données ?", vbYesNo + vbQuestion, "Confirmation") = vbNo Then Exit Sub End If Range("A2:F1000").ClearContents End Sub
04InputBox : demander une saisie
Sub Saluer() Dim nom As String nom = InputBox("Nom du client ?", "Recherche") If nom = "" Then Exit Sub ' Annuler ou zone vide MsgBox "Recherche de " & nom End Sub
05Application.InputBox : contrôler le type
La version d'Excel, Application.InputBox, accepte un argument Type qui refuse les saisies incorrectes : 1 pour un nombre, 2 pour du texte, 8 pour une plage de cellules sélectionnée à la souris.
Dim quantite As Variant quantite = Application.InputBox("Quantité ?", Type:=1) If VarType(quantite) = vbBoolean Then Exit Sub ' Annuler renvoie False Dim zone As Range On Error Resume Next Set zone = Application.InputBox("Sélectionnez la plage", Type:=8) On Error GoTo 0 If zone Is Nothing Then Exit Sub
06Pièges à éviter
"5" + "3" donne "53" en VBA, pas 8. Convertissez avec CLng, CDbl ou Val avant de calculer.
Avec InputBox, Annuler renvoie une chaîne vide ; avec Application.InputBox, il renvoie False. Testez toujours ce cas, sinon la macro continue avec une valeur vide.
Un message à chaque ligne d'une boucle bloque l'utilisateur. Gardez MsgBox pour le début, la fin ou les vraies questions, et utilisez Debug.Print pour suivre le déroulé pendant vos tests.
07Questions fréquentes
Comment afficher un message ou demander une saisie en VBA ?
MsgBox affiche un message et peut proposer des boutons (Oui, Non, Annuler). InputBox affiche une zone de saisie et renvoie ce que l'utilisateur a tapé.
Quel est le piège le plus fréquent avec MsgBox et InputBox ?
InputBox renvoie du texte. "5" + "3" donne "53" en VBA, pas 8. Convertissez avec CLng, CDbl ou Val avant de calculer.
La fiche « MsgBox et InputBox » est-elle gratuite ?
Oui. La fiche est en accès libre et gratuit, sans inscription : vous pouvez la lire en ligne et télécharger sa version PDF. Elle fait partie du cours VBA gratuit de mesetudesdecas.fr, qui compte 21 fiches.
Passez de la fiche à la mise en situation
Les études de cas mesetudesdecas.fr placent vos apprenants face à un vrai besoin d'entreprise. L'étude de cas XL-05 fait automatiser un devis commercial de bout en bout, macros comprises, avec énoncé, corrigé et pas-à-pas du formateur.
Découvrir l'étude de cas XL-05Toutes les fiches du cours VBA gratuit
Voir aussi le cours gratuit sur les formules Excel
Fiche V1.2 | Dernière mise à jour : 29/10/2026 | Clément Delobel, formateur Excel et VBA