Codage Excel VBA : Utilisation dune fenêtre de code

Codage Excel VBA : Utilisation dune fenêtre de code

Au fur et à mesure que vous maîtrisez Excel VBA, vous passez beaucoup de temps à travailler dans les fenêtres de code. Les macros que vous enregistrez sont stockées dans un module et vous pouvez taper le code Excel VBA directement dans un module VBA.

Minimiser et maximiser les fenêtres de code VBA

Si vous avez plusieurs projets ouverts, le VBE peut avoir beaucoup de fenêtres de code à un moment donné.

Codage Excel VBA : Utilisation d'une fenêtre de code

La surcharge de la fenêtre de code n'est pas jolie à voir.

Les fenêtres de code ressemblent beaucoup aux fenêtres de classeur dans Excel. Vous pouvez les minimiser, les agrandir, les redimensionner, les masquer, les réorganiser, etc. La plupart des gens trouvent qu'il est beaucoup plus facile de maximiser la fenêtre de code sur laquelle ils travaillent. Cela vous permet de voir plus de code et vous évite d'être distrait.

Pour maximiser une fenêtre de code, cliquez sur le bouton Maximiser dans sa barre de titre (juste à côté du X). Ou double-cliquez simplement sur sa barre de titre pour l'agrandir. Pour restaurer une fenêtre de code à sa taille d'origine, cliquez sur le bouton Restaurer. Lorsqu'une fenêtre est agrandie, sa barre de titre n'est pas visible, vous trouverez donc le bouton Restaurer sous la barre de titre VBE.

Parfois, vous souhaiterez peut-être que deux fenêtres de code ou plus soient visibles. Par exemple, vous pouvez comparer le code de deux modules ou copier le code d'un module à un autre. Vous pouvez organiser les fenêtres manuellement ou choisir Fenêtre → Mosaïque horizontale ou Fenêtre → Mosaïque verticale pour les organiser automatiquement.

Vous pouvez basculer rapidement entre les fenêtres de code en appuyant sur Ctrl+F6. Si vous répétez cette combinaison de touches, vous continuez à parcourir toutes les fenêtres de code ouvertes. Appuyez sur Ctrl+Maj+F6 pour faire défiler les fenêtres dans l'ordre inverse. (Pour plus d'informations, consultez ces raccourcis clavier Excel VBA .)

La réduction d'une fenêtre de code la supprime. Vous pouvez également cliquer sur le bouton Fermer de la fenêtre (qui affiche X) dans la barre de titre d'une fenêtre de code pour fermer la fenêtre. (La fermeture d'une fenêtre la masque simplement ; vous ne perdrez rien.) Pour l'ouvrir à nouveau, double-cliquez simplement sur l'objet approprié dans la fenêtre Projet. Soit dit en passant, travailler avec ces fenêtres de code semble plus difficile qu'il ne l'est réellement.

Création d'un module VBA

En général, un module Excel VBA peut contenir trois types de code :

  • Déclarations : Une ou plusieurs déclarations d'informations que vous fournissez à VBA. Par exemple, vous pouvez déclarer le type de données pour les variables que vous prévoyez d'utiliser ou définir d'autres options à l'échelle du module. Les déclarations sont essentiellement des déclarations d'entretien. Ils ne sont pas réellement exécutés.
  • Sous-procédures : un ensemble d'instructions de programmation qui, lorsqu'elles sont exécutées, effectuent une action.
  • Procédures de fonction : un ensemble d'instructions de programmation qui renvoie une valeur unique (semblable dans son concept à une fonction de feuille de calcul, telle que SUM).

Un seul module VBA peut stocker un nombre illimité de procédures Sub, de procédures Function et de déclarations. Eh bien, il y a une limite - environ 64 000 caractères par module. Il est peu probable que vous vous approchiez même de la limite de 64 000 caractères. Mais si vous l'avez fait, la solution est simple : il suffit d'insérer un nouveau module.

La façon dont vous organisez un module VBA dépend entièrement de vous. Certaines personnes préfèrent conserver tout leur code VBA pour une application dans un seul module VBA ; d'autres aiment diviser le code en plusieurs modules. C'est un choix personnel, tout comme l'agencement des meubles.

Introduire du code VBA dans un module

Un module VBA vide est comme la fausse nourriture que vous voyez dans les vitrines de certains restaurants chinois ; ça a l'air bien mais ça ne fait pas grand chose pour vous. Avant de pouvoir faire quoi que ce soit de significatif, vous devez avoir du code VBA dans le module VBA. Vous pouvez obtenir du code VBA dans un module VBA de trois manières :

  • Entrez directement le code.
  • Utilisez l'enregistreur de macros Excel pour enregistrer vos actions et convertir ces actions en code VBA.
  • Copiez le code d'un module et collez-le dans un autre.

Saisie directe du code Excel VBA

Parfois, le meilleur itinéraire est le plus direct. La saisie du code implique directement… enfin, la saisie directe du code. En d'autres termes, vous tapez le code à l'aide de votre clavier. La saisie et la modification de texte dans un module VBA fonctionnent comme vous pouvez vous y attendre. Vous pouvez sélectionner, copier, couper, coller et faire d'autres choses sur le texte.

Utilisez la touche Tab pour indenter certaines lignes afin de faciliter la lecture de votre code. L'indentation n'est pas nécessaire, mais c'est une bonne habitude à prendre. En étudiant le codage Excel VBA, vous comprendrez pourquoi l'indentation des lignes de code est utile.

Une seule ligne de code VBA peut être aussi longue que nécessaire. Cependant, vous souhaiterez peut-être utiliser les caractères de continuation de ligne pour séparer les longues lignes de code. Pour continuer une seule ligne de code (également appelée instruction) d'une ligne à l'autre, terminez la première ligne par un espace suivi d'un trait de soulignement (_). Continuez ensuite l'énoncé sur la ligne suivante. Et n'oubliez pas l'espace. Un caractère de soulignement qui n'est pas précédé d'un espace ne fera pas l'affaire.

Voici un exemple d'une seule instruction divisée en trois lignes :

Selection.Sort Key1:=Plage("A1"), _
  Order1:=xlAscending, Header:=xlGuess, _
  Orientation : =xlHautÀBas

Cette instruction fonctionnerait exactement de la même manière si elle était entrée sur une seule ligne (sans caractères de continuation de ligne). Notez que les deuxième et troisième lignes de cette instruction sont en retrait. L'indentation est facultative, mais elle aide à clarifier le fait que ces lignes ne sont pas des instructions séparées.

Les ingénieurs en blouse blanche qui ont conçu le VBE prévoyaient que les gens feraient des erreurs. Par conséquent, le VBE a plusieurs niveaux d'annulation et de rétablissement. Si vous avez supprimé une instruction que vous n'auriez pas dû avoir, cliquez sur le bouton Annuler dans la barre d'outils (ou appuyez sur Ctrl+Z) jusqu'à ce que l'instruction réapparaisse. Après l'annulation, vous pouvez cliquer sur le bouton Rétablir pour effectuer les modifications que vous avez annulées.

Êtes-vous prêt à saisir du code réel ? Essayez les étapes suivantes :

Créez un nouveau classeur dans Excel.

Appuyez sur Alt+F11 pour activer le VBE.

Cliquez sur le nom du nouveau classeur dans la fenêtre Projet.

Choose Insert → Module to insert a VBA module into the project.

Type the following code in the module:

Sub GuessName()
Msg = "Is your name " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then MsgBox "Oh, never mind."
If Ans = vbYes Then MsgBox "I must be psychic!"
End Sub

Position the cursor anywhere within the text you typed and press F5 to execute the procedure.

F5 is a shortcut for Run → Run Sub/UserForm. If you entered the code correctly, Excel executes the procedure, and you can respond to the simple dialog box. The text in the dialog box will be different from the text shown here.

Codage Excel VBA : Utilisation d'une fenêtre de code

The GuessName procedure displays this dialog box.

When you enter the code listed in Step 5, you might notice that the VBE makes some adjustments to the text you enter. For example, after you type the Sub statement, the VBE automatically inserts the End Sub statement. And if you omit the space before or after an equal sign, the VBE inserts the space for you. Also, the VBE changes the color and capitalization of some text. This is all perfectly normal. It’s just the VBE’s way of keeping things neat and readable.

If you followed the previous steps, you just wrote a VBA Sub procedure, also known as a macro. When you press F5, Excel executes the code and follows the instructions. In other words, Excel evaluates each statement and does what you told it to do. (Don’t let this newfound power go to your head.) You can execute this macro any number of times — although it tends to lose its appeal after a few dozen times.

For the record, this simple Excel macro uses the following concepts:

  • Defining a Sub procedure (the first line)
  • Assigning values to variables (Msg and Ans)
  • Concatenating (joining) a string (using the & operator)
  • Using a built-in VBA function (MsgBox)
  • Using built-in VBA constants (vbYesNo, vbNo, and vbYes)
  • Using an If-Then construct (twice)
  • Ending a Sub procedure (the last line)

Using the Excel VBA macro recorder

Another way you can get code into a VBA module is by recording your actions, using the Excel macro recorder.

By the way, there is absolutely no way you can record the GuessName procedure shown above. You can record only things that you can do directly in Excel. Displaying a message box is not in Excel’s normal repertoire. (It’s a VBA thing.) The macro recorder is useful, but in many cases, you’ll probably need to enter at least some code manually.

Here’s a step-by-step example that shows how to record a macro that inserts a new worksheet and hides all but the first ten rows and all but the first ten columns. If you want to try this example, start with a new, blank Excel workbook and follow these steps:

Activate a worksheet in the workbook.

Any Excel worksheet will do.

Click the Developer tab, and make sure that Use Relative References is not highlighted.

This macro is recorded using Absolute References.

Choose Developer → Code → Record Macro, or click the icon next to the Ready indicator on the left end of the status bar.

Excel displays its Record Macro dialog box.

In the Record Macro dialog box, name the macro TenByTen, specify that you want the macro stored in This Workbook, and press Shift+T for the shortcut key.

The macro can be executed when you press Ctrl+Shift+T.

Click OK to start recording. Excel automatically inserts a new VBA module into the project that corresponds to the active workbook.

From this point on, Excel converts your actions to VBA code. While you’re recording, the icon in the status bar turns into a small square. This is a reminder that the macro recorder is running. You can also click that icon to stop the macro recorder.

Click the New Sheet icon to the right of the last sheet tab.

Excel inserts a new worksheet.

Select the entire Column K (the 11th column) and press Ctrl+Shift+right arrow; then right-click any selected column and choose Hide from the shortcut menu.

Excel hides all of the selected columns.

Select the entire Row 11 and press Ctrl+Shift+down arrow; then right-click any selected row and choose Hide from the shortcut menu.

Excel hides all of the selected columns.

Select cell A1.

Choose Developer → Code → Stop Recording, or click the Stop Recording button on the status bar (the small square). Excel stops recording your actions.

Pour afficher cette macro nouvellement enregistrée, appuyez sur Alt+F11 pour activer le VBE. Recherchez le nom du classeur dans la fenêtre Projet. Vous voyez que le projet a un nouveau module répertorié. Le nom du module dépend de si vous aviez d'autres modules dans le classeur lorsque vous avez commencé à enregistrer la macro. Si vous ne l'avez pas fait, le module est nommé Module1. Vous pouvez double-cliquer sur le module pour afficher la fenêtre Code du module.

Voici le code généré par vos actions :

Sous TenByTen()
'
' Macro TenByTen
'
' Raccourci clavier : Ctrl+Maj+T
'
  Sheets.Add After :=ActiveSheet
  Colonnes("K:K").Sélectionnez
  Range(Selection, Selection.End(xlToRight)).Select
  Selection.EntireColumn.Hidden = True
  Lignes("11:11").Sélectionnez
  Range(Selection, Selection.End(xlDown)).Select
  Selection.EntireRow.Hidden = True
  Plage ("A1").Sélectionnez
Fin du sous-marin

Pour essayer cette macro, activez n'importe quelle feuille de calcul et appuyez sur la touche de raccourci que vous avez attribuée à l'étape 4 : Ctrl+Maj+T.

Si vous n'avez pas affecté de touche de raccourci à la macro, ne vous inquiétez pas. Voici comment afficher une liste de toutes les macros disponibles et exécuter celle que vous souhaitez :

Choisissez Développeur → Code → Macros. Les fans de clavier peuvent appuyer sur Alt+F8.

L'une ou l'autre de ces méthodes affiche une boîte de dialogue qui répertorie toutes les macros disponibles.

Sélectionnez la macro dans la liste (dans ce cas, TenByTen).

Cliquez sur le bouton Exécuter.

Excel exécute la macro et vous obtenez une nouvelle feuille de calcul avec dix lignes visibles et dix colonnes visibles.

Vous pouvez exécuter n'importe quel nombre de commandes et effectuer n'importe quel nombre d'actions pendant que l'enregistreur de macros est en cours d'exécution. Excel traduit consciencieusement les actions et les frappes de votre souris en code VBA.

Et, bien sûr, vous pouvez également modifier la macro après l'avoir enregistrée. Pour tester vos nouvelles compétences, essayez de modifier la macro afin qu'elle insère une feuille de calcul avec neuf lignes et colonnes visibles, ce qui est parfait pour un puzzle Sudoku.

Copier le code VBA

La dernière méthode pour obtenir du code dans un module VBA consiste à le copier à partir d'un autre module ou à partir d'un autre endroit (comme un site Web). Par exemple, une procédure Sub ou Function que vous écrivez pour un projet peut également être utile dans un autre projet. Au lieu de perdre du temps à ressaisir le code, vous pouvez activer le module et utiliser les procédures normales de copier-coller du Presse-papiers. (Vous êtes probablement plutôt friands des raccourcis clavier Ctrl+C pour copier et Ctrl+V pour coller.) Après avoir collé le code dans un module VBA, vous pouvez modifier le code si nécessaire.

Soit dit en passant, vous trouverez de nombreux exemples de code VBA sur le Web. Si vous souhaitez les essayer, sélectionnez le code dans votre navigateur et appuyez sur Ctrl+C pour le copier. Activez ensuite un module et appuyez sur Ctrl+V pour le coller.

Lorsque vous copiez du code à partir d'un site Web, cela nécessite parfois quelques corrections. Par exemple, les guillemets peuvent être des « guillemets intelligents » et ils doivent être convertis en guillemets simples. Et parfois, de longues files d'attente s'enroulent. Les déclarations erronées sont faciles à repérer dans le VBE car elles apparaissent en rouge.


Feuille intelligente 9.1.1

Feuille intelligente 9.1.1

Smartsheet est une plateforme de travail dynamique qui vous permet de gérer des projets, de créer des flux de travail et de collaborer avec votre équipe.

SharePoint

SharePoint

SharePoint est un système de collaboration basé sur le Web qui utilise une variété d'applications de flux de travail, des bases de données de « liste » et d'autres composants Web, ainsi que des fonctionnalités de sécurité pour donner le contrôle aux groupes professionnels qui travaillent ensemble.

Calendrier perpétuel 1.0.38/1.0.36

Calendrier perpétuel 1.0.38/1.0.36

Van Nien Calendar est une application d'affichage de calendrier sur votre téléphone, vous aidant à voir rapidement la date luni-solaire sur votre téléphone, organisant ainsi votre travail important.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook est une application commerciale et de productivité développée par Microsoft Corporation.

Cliquez vers le haut

Cliquez vers le haut

ClickUp est l'une des plateformes de productivité les mieux notées pour toutes les entreprises. Les grandes entreprises comme Google, Booking.com, San Diego Padres et Uber utilisent toutes ClickUp pour augmenter la productivité sur le lieu de travail.

Visionneuse PDF-XChange 2.5.322.10

Visionneuse PDF-XChange 2.5.322.10

Le PDF est devenu un format couramment utilisé pour lire, créer et envoyer des documents texte. À son tour, le nombre de programmes utilisés pour ce type de documentation a augmenté. PDF-XChange Viewer fait partie d'un nombre croissant de visualiseurs PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice propose une suite complète d'applications Office qui rivalisent avec Microsoft 365, notamment dans Excel, PowerPoint et Word. Il vous permet de gérer vos projets plus efficacement et prend en charge plusieurs formats de fichiers.

Télécharger iTaxviewer 1.8.7

Télécharger iTaxviewer 1.8.7

Le logiciel iTaxViewer est aujourd'hui le logiciel de lecture de fichiers XML le plus populaire. Ce logiciel est une application de lecture des déclarations fiscales électroniques au format XML de la Direction Générale des Impôts.

Lecteur PDF Nitro

Lecteur PDF Nitro

Nitro PDF Reader est un éditeur PDF pratique qui couvre toutes les tâches de base que la plupart des gens effectuent quotidiennement avec des documents PDF.

Lecteur Foxit 12

Lecteur Foxit 12

Foxit Reader est avant tout un lecteur PDF et vous permet également de créer des fichiers PDF, de les signer, de les modifier et d'ajouter des annotations. Il fonctionne sur les systèmes d'exploitation, il existe des plugins pour divers programmes du package Microsoft Office.