VBA: Retour à La Ligne, Formater Un MsgBox | Excel
Maybe your like
Dans ce tutoriel VBA, nous allons explorer comment optimiser l'interaction entre une macro VBA et les utilisateurs d'un fichier Excel en améliorant la lisibilité des messages affichés dans les boîtes de dialogue MessageBox (MsgBox). Les MessageBox sont des outils couramment employés pour faciliter la communication entre le code VBA et les utilisateurs. Cependant, il est fréquent que les messages soient présentés sous la forme d'une seule ligne continue, ce qui peut nuire à leur lisibilité.
Nous sommes tous habitués aux textes structurés en plusieurs lignes et paragraphes. Il est donc essentiel d'adopter une approche similaire pour les messages affichés dans les boîtes de dialogue MessageBox en VBA. Ce tutoriel vous guidera à travers les étapes pour intégrer des retours à la ligne et des paragraphes distincts dans les messages de vos MessageBox. Vous améliorerez ainsi considérablement l'expérience utilisateur et la compréhension des informations transmises.
Le code magique: Chr(13) & Chr(10)
De manière générale, pour obtenir un retour à la ligne en VBA, vous pouvez utiliser la combinaison de deux caractères non imprimables de la table ASCII. Il s'agit du 13ème et du 10ème caractère. Pour les "afficher", il faut passer par la fonction VBA Chr().
Le petit code VBA qui suit ajouté dans une chaîne de caractères (String) va séparer le texte en deux (ou plusieurs) lignes.
Chr(13) & Chr(10)
Pour obtenir un "effet de paragraphe" (deux parties de texte séparés par une ligne vide), il vous suffit de répéter ce code VBA deux fois:
Chr(13) & Chr(10) & Chr(13) & Chr(10)
Exemples pratiques de l'utilisation du retour à la ligne dans un MsgBox en VBA
Voici donc deux exemples basiques de l'utilisation pratique de cette astuce:
Exemple A: VBA – retour à la ligne
Ceci est ce que utilise la plupart de gens.
Sub ExempleRetourLigne1() 'par Excel-Malin.com ( https://excel-malin.com/ ) MsgBox "Ceci est le premier texte" & " " & "Ceci est le second texte..." End Sub| 12345 | SubExempleRetourLigne1()'par Excel-Malin.com ( https://excel-malin.com/ ) MsgBox"Ceci est le premier texte"&" "&"Ceci est le second texte..."EndSub |
Le résultat est le suivant:

Et voici le code qui crée des lignes distinctes:
Sub ExempleRetourLigne2() 'par Excel-Malin.com ( https://excel-malin.com/ ) MsgBox "Ceci est le premier texte" & Chr(13) & Chr(10) & "Ceci est le second texte..." End Sub| 12345 | SubExempleRetourLigne2()'par Excel-Malin.com ( https://excel-malin.com/ ) MsgBox"Ceci est le premier texte"&Chr(13)&Chr(10)&"Ceci est le second texte..."EndSub |
Le résultat donne nettement mieux:

Notez que le code Chr(13) & Chr(10) ne peut pas être inséré à l'intérieur des guillemets. Vous devez séparer votre texte, délimiter les deux textes par les guillemets et insérer le séparateur de lignes entre ces deux textes. Il en va de même si vous séparez votre texte en 3, 4 ou plusieurs lignes.
Et voici le code complet pour que vous puissiez tester par vous-mêmes (avec ou sans utilisation des variables):
Sub ExempleRetourLigne() 'par Excel-Malin.com ( https://excel-malin.com/ ) 'Exemple 1 - du texte directement dans la MsgBox 'Exemple 1A - sans retour à la ligne MsgBox "Ceci est le premier texte" & " " & "Ceci est le second texte..." 'Exemple 2B - avec retour à la ligne MsgBox "Ceci est le premier texte" & Chr(13) & Chr(10) & "Ceci est le second texte..." '----------------------------------------------------------------- 'Exemple 2 - utilisation des variables Texte1 = "Premier texte..." Texte2 = "Second texte..." 'Exemple 2A - sans retour à la ligne MsgBox Texte1 & " " & Texte2 'Exemple 2B - avec retour à la ligne MsgBox Texte1 & Chr(13) & Chr(10) & Texte2 End Sub| 123456789101112131415161718192021222324 | SubExempleRetourLigne()'par Excel-Malin.com ( https://excel-malin.com/ ) 'Exemple 1 - du texte directement dans la MsgBox'Exemple 1A - sans retour à la ligneMsgBox"Ceci est le premier texte"&" "&"Ceci est le second texte..." 'Exemple 2B - avec retour à la ligneMsgBox"Ceci est le premier texte"&Chr(13)&Chr(10)&"Ceci est le second texte..." '----------------------------------------------------------------- 'Exemple 2 - utilisation des variablesTexte1="Premier texte..."Texte2="Second texte..." 'Exemple 2A - sans retour à la ligneMsgBox Texte1&" "&Texte2 'Exemple 2B - avec retour à la ligneMsgBox Texte1&Chr(13)&Chr(10)&Texte2EndSub |
Exemple B: VBA – nouveau "paragraphe"
Et voici le code VBA et le résultat pour créer un "nouveau paragraphe"…
Sub ExempleRetourLigne3() 'par Excel-Malin.com ( https://excel-malin.com/ ) MsgBox "Ceci est le premier texte" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Ceci est le second texte..." End Sub| 123456 | SubExempleRetourLigne3()'par Excel-Malin.com ( https://excel-malin.com/ ) MsgBox"Ceci est le premier texte"&Chr(13)&Chr(10)&Chr(13)&Chr(10)&"Ceci est le second texte..."EndSub |
Ce qui affiche la MsgBox de manière suivante:

Conclusion
J'espère sincèrement que cette technique, présentée dans ce tutoriel, améliorera l'expérience de vos utilisateurs lorsqu'ils interagiront avec vos macros. Bien que cette méthode puisse sembler principalement esthétique, il est important de ne pas sous-estimer l'impact d'une présentation claire et organisée sur la satisfaction et l'efficacité des utilisateurs.
Il convient également de souligner que la flexibilité offerte par cette technique ne se limite pas à l'exemple présenté ici, qui mettait en avant l'utilisation de deux lignes ou deux paragraphes. Cette approche a été choisie pour démontrer le concept de manière simple et épurée. Cependant, il est tout à fait possible d'étendre cette méthode pour diviser votre texte en plusieurs sections, que ce soit 3, 4, 10 ou même davantage, en fonction de vos besoins spécifiques et de la complexité du contenu que vous souhaitez présenter.
En fin de compte, l'objectif de ce tutoriel est d'encourager une meilleure compréhension et une utilisation efficace de cette technique pour améliorer la qualité globale de vos projets VBA et favoriser une expérience utilisateur plus agréable et productive.
Pour aller plus loin en VBA
Et voici quelques articles supplémentaires qui pourraient vous être utiles…
- VBA: MsgBox qui se ferme automatiquement après un délai (sans devoir cliquer dessus)
- Séparer une ligne de code VBA (une instruction) en plusieurs lignes pour une meilleure lisibilité
- Importer et exporter le code VBA
- RECHERCHEV en VBA – comment utiliser les fonctions Excel dans les macros VBA
- Liste de toutes les fonctions VBA
- Tutoriels, astuces, codes sources VBA et bien plus…
Tag » Code Ascii Retour Chariot Excel Vba
-
Retour Chariot Excel [Résolu] - Visual Basic - CodeS-SourceS
-
Code ASCII Du Retour à La Ligne Dans Une Cellule Excel
-
Force A New Line In A MsgBox Message - Office - Microsoft Docs
-
Character Set (0 - 127) - Microsoft Docs
-
Excel 2010 - Remplacer Un Caractère Par Un Retour Chariot
-
Symbole Retour à La Ligne | Excel-Downloads
-
XL 2010 - Remplacer Une Virgule "," Par Un Retour Chariot
-
VBA Nouvelle Ligne / Retour Chariot - Automate Excel
-
Comment Convertir Le Retour Chariot En Virgule Dans Excel?
-
Suppression Des Caractères Non Imprimables Avec Excel VBA
-
Comment Supprimer Les Sauts De Ligne Dans Excel (3 Manières ...
-
Excel: Comment Composer Avec Les Sauts De Lignes?