Accueil/Cours gratuits/Bibliothèque VBA/Bases/MsgBox et InputBox
Cours VBA gratuit | Bases

MsgBox et InputBox

Gratuit, sans inscription Niveau 1 / 3 | Découverte Lecture 7 min V1.2 | 29/10/2026

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 à imprimer

01Définition

En une phrase

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

Syntaxe et exemples
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.

ConstanteEffet
vbInformationicône « i » bleue
vbExclamationicône d'avertissement
vbCriticalicône d'erreur rouge
vbQuestionicône point d'interrogation
vbYesNoboutons Oui et Non
vbOKCancelboutons OK et Annuler

03MsgBox : demander une confirmation

Utilisée comme une fonction, MsgBox renvoie le bouton cliqué : vbYes, vbNo, vbCancel...

Confirmer avant de supprimer
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

Demander un nom de client
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.

Demander un nombre, puis une plage
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

⚠️ PiègeInputBox renvoie du texte

"5" + "3" donne "53" en VBA, pas 8. Convertissez avec CLng, CDbl ou Val avant de calculer.

⚠️ PiègeAnnuler n'est pas une erreur

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.

⚠️ PiègeTrop de MsgBox

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.

Pour les formateurs

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-05
Voir aussi

Toutes 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