Comment créer une macro ou un script VBA dans Excel

Microsoft Excel permet aux utilisateurs d'automatiser des fonctionnalités et des commandes à l'aide de macros et de scripts Visual Basic pour Applications ( VBA ). VBA est le langage de programmation(VBA is the programming language Excel) utilisé par Excel pour créer des macros. Il exécutera également des commandes automatisées en fonction de conditions spécifiques.

Les macros sont une série de commandes préenregistrées. Ils s'exécutent automatiquement lorsqu'une commande spécifique est donnée. Si vous avez des tâches dans Microsoft Excel que vous effectuez de manière répétée, telles que la comptabilité, la gestion de projet ou la paie, l'automatisation de ces processus peut vous faire gagner beaucoup de temps.

Sous l' onglet Développeur du (Developer)ruban(Ribbon) dans Excel , les utilisateurs peuvent enregistrer les clics de souris et les frappes au clavier (macros). Cependant, certaines fonctions nécessitent des scripts plus approfondis que ce que les macros peuvent fournir. C'est là que les scripts VBA deviennent un énorme avantage. (VBA)Il permet aux utilisateurs de créer des scripts plus complexes.

Dans cet article, nous expliquerons ce qui suit :

  • Activation des scripts et des macros
  • Comment créer une macro dans Excel
  • Exemple spécifique d'une macro
  • En savoir plus sur VBA
  • Créer un bouton(Button) pour démarrer avec VBA
  • Ajouter du code(Add Code) pour donner la fonctionnalité du bouton(Button Functionality)
  • Cela a-t-il fonctionné ?

Activation des scripts et des macros(Enabling Scripts & Macros)

Avant de pouvoir créer des macros ou des scripts VBA dans (VBA)Excel , vous devez activer l' onglet Développeur(Developer ) dans le menu Ruban . (Ribbon)L' onglet Développeur n'est pas activé par défaut. (Developer)Pour l'activer :

  • Ouvrez une feuille de calcul Excel.
  • Cliquez sur Fichier(File ) > Options > Personnaliser le ruban.( Customize Ribbon.)

  • Cochez la case à côté de Développeur(Developer) .

  • Cliquez sur l' onglet Développeur(Developer) dans le menu Ruban .(Ribbon)

  • Ensuite, cliquez sur Sécurité des macros(Macro Security) et cochez la case à côté de Activer toutes les macros (non recommandé ; un code potentiellement dangereux peut s'exécuter). (Enable all macros (not recommended; potentially dangerous code can run). )
  • Cliquez ensuite sur OK.

La raison pour laquelle les macros ne sont pas activées par défaut et sont accompagnées d'un avertissement est qu'il s'agit de code informatique susceptible de contenir des logiciels malveillants.

Assurez(Make) -vous que le document provient d'une source fiable si vous travaillez sur un projet partagé dans Excel et d'autres programmes Microsoft .

Lorsque vous avez fini d'utiliser vos scripts et macros, désactivez toutes les macros pour empêcher le code potentiellement malveillant d'infecter d'autres documents.

Créer une macro dans Excel(Create a Macro in Excel)

Toutes les actions que vous effectuez dans Excel lors de l'enregistrement d'une macro y sont ajoutées. 

  • Dans l'onglet Développeur, cliquez sur Enregistrer une macro(Record Macro) .

  • Entrez un nom de macro(Macro name) , une touche de raccourci(Shortcut key) et une description. Les noms de macro(Macro) doivent commencer par une lettre et ne peuvent pas contenir d'espaces. La touche de raccourci doit être une lettre.

Décidez où vous souhaitez stocker la macro parmi les options suivantes :

  • Classeur de macros personnelles(Personal Macro Workbook) : cela créera un document Excel masqué avec des macros stockées à utiliser avec tous les documents Excel .
  • Nouveau classeur(New Workbook) : créera un nouveau document Excel pour stocker les macros créées.
  • Ce classeur(This Workbook) : cela ne s'appliquera qu'au document que vous êtes en train de modifier.

Une fois terminé, cliquez sur OK

  • Exécutez(Run) les actions que vous souhaitez automatiser. Lorsque vous avez terminé, cliquez sur Arrêter l'enregistrement(Stop Recording)
  • Lorsque vous souhaitez accéder à votre macro, utilisez le raccourci clavier que vous lui avez donné.

Exemple spécifique d'une macro(Specific Example Of a Macro)

Commençons par une simple feuille de calcul pour les clients et combien ils doivent. Nous allons commencer par créer une macro pour formater la feuille de calcul.

Supposons que vous décidez que toutes les feuilles de calcul doivent utiliser un format différent, par exemple en mettant le prénom et le nom dans des colonnes séparées. 

Vous pouvez modifier cela manuellement. Ou vous pouvez créer un programme à l'aide d'une macro pour le formater automatiquement correctement pour vous.

Enregistrer la macro(Record The Macro)

  • Cliquez sur Enregistrer une macro(Record Macro) . Appelons-le Format_Customer_Data et cliquez sur OK
  • Pour obtenir la mise en forme souhaitée, nous allons changer le nom de la première colonne en First Name
  • Insérez ensuite une colonne à côté de A et appelez-la Nom(Last Name) de famille . 
  • Mettez(Highlight) en surbrillance tous les noms dans la première colonne (qui incluent toujours le prénom et le nom), puis cliquez sur Données(Data) dans le ruban de navigation.
  • Cliquez sur Texte aux colonnes(Text to Columns) .

  • Cochez Délimité(Delimited) > Suivant(Next ) > Séparer par espace(Separate by Space) > Suivant(Next ) > Terminer(Finish) . Voir la capture d'écran ci-dessous et comment les noms et prénoms ont été séparés par le processus ci-dessus.

  • Pour formater le champ Solde dû(Balance Due) , mettez les montants en surbrillance. Cliquez(Click) sur Accueil(Home ) > Mise en forme conditionnelle(Conditional Formatting) > Mettre en surbrillance les règles de cellule(Highlight Cell Rules) > Supérieur(Greater Than ) à > 0 .

Cela mettra en évidence les cellules qui ont un solde dû. Nous avons ajouté quelques clients sans solde pour illustrer davantage le formatage.  

  • Revenez à Développeur(Developer ) et cliquez sur Arrêter l'enregistrement(Stop Recording) .

Appliquer la macro(Apply The Macro)

Commençons par la feuille de calcul d'origine avant d'enregistrer la macro pour la formater correctement. Cliquez(Click) sur Macros , sélectionnez et exécutez(Run) la macro que vous venez de créer.

Lorsque vous exécutez une macro, tout le formatage est fait pour vous. Cette macro que nous venons de créer est stockée dans Visual Basic Editor .

Les utilisateurs peuvent exécuter des macros de plusieurs manières différentes. Lisez Exécuter une macro(Run a macro) pour en savoir plus.  

En savoir plus sur VBA(Learn More About VBA)

Pour en savoir plus sur VBA, cliquez sur Macro dans l' onglet Développeur . (Developer)Trouvez-en un que vous avez créé et cliquez sur Modifier.(Edit.)

Le code que vous voyez dans la case ci-dessus est celui qui a été créé lorsque vous avez enregistré votre macro. 

C'est également ce que vous exécuterez lorsque vous souhaiterez formater d'autres feuilles de calcul de paiement client de la même manière.

Créer un bouton pour démarrer avec VBA(Create a Button To Get Started With VBA)

En utilisant la même feuille de calcul ci-dessus avec les clients et combien ils doivent, créons un convertisseur de devises.

  • Pour insérer un élément de bouton, accédez à l' onglet  Développeur .(Developer )
  • Sélectionnez Bouton de commande ActiveX(ActiveX Command Button ) dans le menu déroulant à côté de Insérer(Insert) dans la section Contrôles (Controls).

  • Faites glisser(Drag) le bouton n'importe où sur la feuille de calcul afin de pouvoir y accéder facilement et de le modifier ultérieurement si vous le souhaitez.

  • Pour joindre le code, faites un clic droit sur le bouton et sélectionnez Propriétés(Properties) . Nous conserverons le nom(Name) en tant que bouton(CommandButton) de commande et la légende(Caption ) à convertir( Convert ) (il s'agit du texte du bouton).

Ajouter du code pour donner la fonctionnalité du bouton(Add Code To Give The Button Functionality)

Le codage VBA(VBA) n'a pas lieu dans l' interface Excel . Cela se fait dans un environnement séparé.  

  • Accédez à l' onglet Développeur(Developer) et assurez-vous que le mode Conception(Design Mode) est actif.

  • Pour accéder au code du bouton que nous venons de créer, faites un clic droit dessus et sélectionnez Afficher le code(View Code) .

  • En regardant le code dans la capture d'écran ci-dessous, notez que le début ( Private Sub ) et la fin ( End Sub ) du code sont déjà là.

  • Le code ci-dessous pilotera la procédure de conversion de devise.

ActiveCell.Value = (ActiveCell * 1.28)

Notre objectif dans cette section est de convertir la devise dans notre feuille de calcul. Le script ci-dessus reflète le taux de change de GBP à USD . La nouvelle valeur d'une cellule sera ce qui s'y trouve actuellement multiplié par 1,28.

La capture d'écran ci-dessous vous montre à quoi ressemble le code dans la fenêtre VBA après l'avoir inséré.(VBA)

  • Accédez à Fichier(File ) dans la barre de navigation supérieure et cliquez sur Fermer et revenir à Microsoft Excel(click on Close and Return to Microsoft Excel) pour revenir à l' interface principale d' Excel .

Cela a-t-il fonctionné ?(Did It Work?)

Avant de pouvoir tester votre code, vous devez d'abord désactiver le Mode Conception(Design Mode) (cliquez dessus) pour éviter d'autres modifications et donner la fonctionnalité au bouton.

  • Tapez(Type) n'importe quel nombre dans votre feuille de calcul, puis cliquez sur le bouton Convertir(Convert) . Si la valeur de votre numéro augmente d'environ un quart, cela a fonctionné.

Pour cet exemple, j'ai mis le chiffre 4 dans une cellule. Après avoir cliqué sur Convertir(Convert) , le nombre est passé à 5.12. Puisque 4 fois 1,28 vaut 5,12, le code a été exécuté correctement.

Maintenant que vous comprenez comment créer une macro ou un script dans Excel , vous pouvez les utiliser pour automatiser une multitude d'actions dans Excel .



About the author

Je suis un technicien en informatique qui travaille avec Android et les logiciels bureautiques depuis de nombreuses années. J'enseigne également aux gens comment utiliser les Mac depuis environ 5 ans. Si vous cherchez quelqu'un qui sait comment réparer les choses sur votre ordinateur, je peux probablement vous aider !



Related posts