Vous avez apprécié ?
Cliquez ;-)

Cours VBA : première macro

Il est possible d'automatiser certaines tâches en toute simplicité grâce à l'enregistreur de macros.

Pour prendre un exemple simple, nous allons automatiser les opérations suivantes :

  • supprimer le contenu des colonnes A et C
  • déplacer le contenu de la colonne B dans la colonne A
  • déplacer le contenu de la colonne D dans la colonne C

macro1 - premiere macro

Pour ce faire, cliquez sur "Enregistrer une macro" puis "Ok", exécutez les opérations décrites ci-dessus sans interruption (car toutes les manipulations sont enregistrées) puis cliquez sur "Arrêter l'enregistrement".

Pour les versions d'Excel inférieures à 2007 : Outils > Macros > Nouvelle macro.

macro2 - premiere macro

Excel a enregistré vos manipulations et les a traduites en code VBA.

Pour voir votre macro, ouvrez l'éditeur (Alt F11) et cliquez sur "Module1" :

macro3 - premiere macro

Ce code correspond aux manipulations enregistrées.

Nous allons nous arrêter quelques instants sur le code généré :

Sub Macro1()
'
' Macro1 Macro
'

'
    Columns("A:A").Select
    Selection.ClearContents
    Columns("C:C").Select
    Selection.ClearContents
    Columns("B:B").Select
    Selection.Cut Destination:=Columns("A:A")
    Columns("D:D").Select
    Selection.Cut Destination:=Columns("C:C")
    Columns("C:C").Select
End Sub

Sub et End Sub délimitent le début et la fin de la macro, "Macro1" correspond au nom de cette macro :

Sub Macro1()

End Sub

Nous allons modifier le nom de cette macro par quelque chose de plus parlant, remplacez simplement "Macro1" par "manipulations_des_colonnes" (le nom ne doit pas contenir d'espaces) :

Sub manipulations_des_colonnes()

Le texte en vert (texte précédé d'une apostrophe) est un commentaire, il n'est pas pris en compte à l'exécution du code :

'
' Macro1 Macro
'

'

Les commentaires sont très utiles pour s'y retrouver lorsque l'on a beaucoup de code ou pour ne pas éxécuter certaines lignes de code sans pour autant les supprimer.

Sub manipulations_des_colonnes()
'
'Mon premier commentaire !
'
    Columns("A:A").Select
    Selection.ClearContents
    Columns("C:C").Select
    Selection.ClearContents
    Columns("B:B").Select
    Selection.Cut Destination:=Columns("A:A")
    Columns("D:D").Select
    Selection.Cut Destination:=Columns("C:C")
    Columns("C:C").Select
End Sub

Maintenant, nous voulons que cette macro s'exécute en cliquant sur un bouton.

Cliquez sur Insérer > Bouton (Contrôles de formulaires) :

Pour les versions d'Excel inférieures à 2007 : "Bouton" de la barre "Formulaires".

macro4 - premiere macro

Tracez votre bouton et sélectionnez ensuite simplement votre macro :

macro5 - premiere macro

Lorsque vous cliquerez sur le bouton, la macro sera exécutée :

macro6 - premiere macro