Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Introduction à Debug.Print et MsgBox | Introduction à VBA et au Modèle Objet d'Excel
VBA Excel Pour l'Automatisation des Entreprises

Introduction à Debug.Print et MsgBox

Glissez pour afficher le menu

Les deux permettent d'afficher une valeur pendant l'exécution du code, mais ils sont conçus pour deux publics différents. Les confondre est une habitude courante au début, qu'il convient de corriger délibérément.

Debug.Print

Debug.Print [outputlist]
  • outputlist — une ou plusieurs expressions à afficher, éventuellement reliées par ; ou & ;
  • Pas de parenthèses, pas de valeur de retour — il s'agit d'une instruction, pas d'une fonction ;
  • Écrit toujours dans la fenêtre Exécution.
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
Remarque

Les parenthèses autour des arguments de MsgBox ne sont utilisées que lorsque vous capturez une valeur de retour. Utilisé comme simple instruction (sans affectation), les parenthèses sont en fait une erreur — MsgBox("Done.") fonctionne toujours, mais dès que vous ajoutez un second argument sans affectation, MsgBox ("Continue?", vbYesNo) génère une erreur de syntaxe. Omettez les parenthèses pour la forme d'instruction, ajoutez-les uniquement lors de l'écriture de result = MsgBox(...).

À quoi sert réellement chacun

Un test simple : demandez-vous à qui s'adresse réellement le message. Si la réponse est « à moi, pendant que j'écris et teste ce code », utilisez Debug.Print — il n'y a aucun inconvénient à le laisser temporairement ou à le supprimer plus tard, puisqu'il n'apparaît jamais pour l'utilisateur du classeur final. Si la réponse est « à la personne qui exécute cette macro, maintenant, et qui doit voir ce message », utilisez MsgBox — une demande de confirmation ou un message de fin entrent dans cette catégorie, car ils font partie de l'expérience finale et non d'une aide au débogage.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Introduction à Debug.Print et MsgBox

Les deux permettent d'afficher une valeur pendant l'exécution du code, mais ils sont conçus pour deux publics différents. Les confondre est une habitude courante au début, qu'il convient de corriger délibérément.

Debug.Print

Debug.Print [outputlist]
  • outputlist — une ou plusieurs expressions à afficher, éventuellement reliées par ; ou & ;
  • Pas de parenthèses, pas de valeur de retour — il s'agit d'une instruction, pas d'une fonction ;
  • Écrit toujours dans la fenêtre Exécution.
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
Remarque

Les parenthèses autour des arguments de MsgBox ne sont utilisées que lorsque vous capturez une valeur de retour. Utilisé comme simple instruction (sans affectation), les parenthèses sont en fait une erreur — MsgBox("Done.") fonctionne toujours, mais dès que vous ajoutez un second argument sans affectation, MsgBox ("Continue?", vbYesNo) génère une erreur de syntaxe. Omettez les parenthèses pour la forme d'instruction, ajoutez-les uniquement lors de l'écriture de result = MsgBox(...).

À quoi sert réellement chacun

Un test simple : demandez-vous à qui s'adresse réellement le message. Si la réponse est « à moi, pendant que j'écris et teste ce code », utilisez Debug.Print — il n'y a aucun inconvénient à le laisser temporairement ou à le supprimer plus tard, puisqu'il n'apparaît jamais pour l'utilisateur du classeur final. Si la réponse est « à la personne qui exécute cette macro, maintenant, et qui doit voir ce message », utilisez MsgBox — une demande de confirmation ou un message de fin entrent dans cette catégorie, car ils font partie de l'expérience finale et non d'une aide au débogage.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5
some-alt