PaliSkill
Introduction au VBA

Leçon 1 / 9 — Chapitre 4: Interaction, fonctions et automatisation

Interagir avec l'utilisateur : MsgBox et InputBox

Jusqu'ici, tes macros travaillaient avec des valeurs fixées dans le code. Mais une macro vraiment utile doit souvent s'adapter à ce que l'utilisateur veut faire sur le moment. Deux outils permettent ce dialogue : MsgBox pour afficher un message, et InputBox pour demander une information.

MsgBox affiche une boîte de dialogue avec un message :

Sub Alerte()
    MsgBox "La mise en forme du rapport est terminée."
End Sub

On peut aussi lui faire poser une question avec des boutons Oui/Non, et récupérer la réponse :

Sub DemanderConfirmation()
    Dim reponse As VbMsgBoxResult
    reponse = MsgBox("Voulez-vous vider le tableau des ventes ?", vbYesNo)

    If reponse = vbYes Then
        Range("A2:D100").ClearContents
        MsgBox "Tableau vidé."
    Else
        MsgBox "Opération annulée."
    End If
End Sub

InputBox demande une saisie à l'utilisateur et la stocke dans une variable :

Sub SaisirVendeur()
    Dim nomVendeur As String
    nomVendeur = InputBox("Entrez le nom du vendeur du jour :")

    If nomVendeur = "" Then
        MsgBox "Aucun nom saisi, opération annulée."
    Else
        Range("A1").Value = "Rapport de " & nomVendeur
    End If
End Sub

Exemple concret pour un salon de coiffure qui enregistre chaque prestation : au lancement de la macro, InputBox demande le montant encaissé, puis la macro l'ajoute automatiquement à la première ligne vide de la colonne des recettes du jour, et un MsgBox confirme l'ajout.

Un réflexe important : toujours vérifier qu'InputBox n'a pas été laissé vide ou annulé (comme dans l'exemple ci-dessus avec If nomVendeur = ""), sinon la macro risque de continuer avec une information manquante et de provoquer une erreur.

À vous de jouer : écrivez une macro qui demande un prénom avec InputBox, puis affiche avec MsgBox le message "Bienvenue [prénom] dans le tableau de suivi".

À vous de jouer

À faire

Pour poser une question Oui/Non à l'utilisateur avec MsgBox et pouvoir récupérer sa réponse, quelle constante VBA faut-il utiliser en second argument ?

Réalisez la tâche, puis saisissez votre réponse ci-dessous pour vérification.

💡 Une constante VBA.

À vous de jouer

À faire

Quelle instruction VBA permet de demander une saisie à l'utilisateur et de la stocker dans une variable ?

Réalisez la tâche, puis saisissez votre réponse ci-dessous pour vérification.

💡 Un mot-clé VBA.

Quitter le module