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
À fairePour 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
À faireQuelle 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.