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

Aucun commentaire:

Enregistrer un commentaire