Mes premiers pas en VBA - 01

Olivier Lebeau

Cet article fait partie d'une série de petits articles pour débuter en VBA.
De cette série, il est le premier.
Dans cet article, nous allons utiliser l'enregistreur de Macro.

Si vous avez des commentaires

- Titre : Mes premiers pas en VBA - 01

- Auteur : Olivier Lebeau

- Parution : 1 décembre 2008

- Licence : Copyright ® 2008 Olivier Lebeau. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Introduction

- 2. L'enregistreur de Macro Word

- 3. L'enregistreur de Macro Excel

- 4. Access, PowerPoint et Outlook

- 5. Le VBE

- 5-A. Word

- 5-B. Excel

- 6. Liens

- 7. Remerciements

1 - Introduction

Cet article s'adresse aux débutants en VBA. Si vous avez déjà utilisé le VBA, vous allez vous ennuyer en lisant ces lignes. Par contre, si vous voulez découvrir un autre moyen d'utiliser les logiciel de la suite Office, j'espère que vous apprendrez quelque chose.

Pour faire du VBA, vous avez deux options, la première est l'écriture du code dans son intégralité et la seconde l'utilisation de l'enregistreur de Macro fourni avec certains logiciels de la suite Office.

2 - L'enregistreur de Macro Word

L'"Enregistreur de Macro" est un outil fourni avec Word pour vous permettre d'utiliser le VBA sans pour autant connaître le langage. Nous allons utiliser l'enregistreur pour ensuite visualiser le code qui aura été enregistré.

Pour activer l'enregistreur de macro, nous avons au moins deux possibilités. La première est de passer par l'onglet développeur et la seconde par la barre d'état de Word.
Il en existe une troisième par l'Onglet Affichage et dans le groupe Macro.

L'onglet Développeur

Dans la barre d'état

Si l'onglet developpeur n'est pas visible, pour l'afficher : Bouton Office -> Options Word -> Standard -> Afficher l'onglet développeur dans le Ruban.

Le résultat reste le même et ne dépend pas du choix fait.

Si vous travaillez sous Word 2003, vous avez accès aux macros par le menu Outils -> Macro et Enregistreur de Macro. La suite ne change pas.

Nous allons commencer par changer le nom donné par défaut "Macro1" par "MaPremiereMacro". Même si pour VBA ça n'a aucune importance, je vous conseille d'éviter les espaces et les accents dans les noms que vous allez donner à vos macros. Pour les espaces, Word vous enverra sur les roses.

Si vous voulez avoir plus de clarté dans les noms, utilisez des majuscule en début de mot vos nom seront plus lisibles, que ce soit pour une variable, une macro ou tout autre nom. MaPremiereMacro est plus lisible que mapremieremacro.

Cette boîte de dialogue vous propose de mettre la macro dans le normal.dotm, ça ne pose pas de problème, mais pour le début, nous allons utiliser le document vierge que nous recevons lors de l'ouverture de Word. Si un autre document est ouvert, vous aurez un choix supplémentaire.

Dès que vous avez cliqué sur OK, l'enregistreur commence sont travail, toutes les actions que vous allez effectuer seront enregistrées.
Vous allez écrire un texte dans votre document.
Ma première macro.
Lorsque vous avez terminé, n'oubliez pas d'arrêter l'enregistrement.

Supprimez la ligne que vous venez d'écrire dans votre document et cliquez sur le bouton Macro.

Le bouton Macro

Vous ouvrez alors une boîte de dialogue contenant le nom de votre Macro.

La liste des macros disponibles

Exécutez la macro.
Le texte que vous venez de supprimer est à nouveau présent sur le document, vous pouvez répéter cette manipulation autant de fois que vous le souhaitez.

3 - L'enregistreur de Macro Excel

Comme pour Word, Excel est fourni avec un enregistreur de macro. Pour activer l'enregistreur, vous avez trois possibilités.
Via l'onglet Développeur et le bouton Enregistrer une macro, via la barre d'état et le bouton des macros.

Et finalement, via l'onglet Affichage et le déroulant relatif aux Macros.

Si l'onglet développeur n'est pas visible, pour l'afficher, Bouton Office => Standard => Afficher le bouton développeur dans le ruban.

Si vous travaillez aec Excel 2003, vous trouverez l'enregistreur de macro dans Outils => Macro.

Vous ouvrez une boîte de dialogue vous permettant de renseigner quelques informations.
La première est le nom de la macro, vous allez saisir "MaPremiereMacro" dans ce nom, vous ne pouvez pas avoir d'espace, les accents sont autorisé, mais par facilité, je vous coinseille vivement de ne pas les utiliser.

Si vous voulez avoir plus de clarté dans les noms, utilisez des majuscule en début de mot vos nom seront plus lisibles, que ce soit pour une variable, une macro ou tout autre nom. MaPremiereMacro est plus lisible que mapremieremacro.

Cette boîte de dialogue vous propose de mettre votre macro dans le classeur actif, dans le Classeur de macros personnelles ou dans un nouveau classeur. Si vous mettez votre macro dans le Classeur de macros personnelles, elle sera disponible pour tous vos classeurs. Nous allons la mettre dans le classeur actif "Ce classeur".

Dès que vous avez cliqué sur Ok, votre macro est en cours d'enregistrement, toutes les actions que vous allez faire seront enregistrées. Pour cette première macro, je vous invite à écrire dans la première cellule (A1) de votre feuille : "Ma première macro". Quittez la cellule et arrêtez l'enregistrement de votre macro.

Supprimez le texte que vous venez d'écrire dans la cellule. Lancez la macro que vous venez de faire :

Choisissez votre macro :

Lancez l'exécution et votre texte va réapparaître dans la cellule. Vous pouvez utiliser cette macro autant de fois que vous le souhaitez.

4 - Access, PowerPoint et Outlook

Malheureusement, ces trois logiciels ne possèdent pas d'enregistreur de Macro. Ces étapes ne pourrons pas être utilisées.

5 - Le VBE

5-A - Word

Ces trois lettres sont les abréviations Visual Basic Editor. Cette interface graphique vous permet de visualiser, éditer ou insérer du code. Pour y accéder, vous avez le choix, personnellement, j'utilise la combinaison de touches Alt + F11, ou utiliser le bouton du Ruban.

Le bouton du Ruban

Lorsque vous ouvrez le VBE, vous obtenez ceci :

Pour l'instant, nous allons nous attarder sur deux parties de notre VBE.

La première partie (1) donne une arborescence avec le contenu de votre projet qui se compose de :
Microsoft Word Objets composé de ThisDocument
Module contenant un module NewMacros
Référence intégrant Référence à Normal.

Nous allons double cliquer sur le module NewMacros, c'est dans ce module que se trouve la macro que nous venons d'enregistrer. Lorsque nous double cliquons sur ce module, nous affichons son contenu dans la fenêtre d'édition.

La seconde partie (2) est la zone d'édition qui contient notre code.

Sub MaPremiereMacro()
'
' MaPremiereMacro Macro
'
'
Selection.TypeText Text:="Ma première macro"
End Sub

Si nous détaillons ce code, nous avons quatre lignes.
La première et la dernière ligne vont de pair.

Sub MaPremiereMacro()
....
....
End Sub

La première constitue le début de notre procédure, elle contient le nom de notre macro.
La dernière est la fin de notre procédure, le code est contenu entre ces deux balises.

'
' MaPremiereMacro Macro
'
'

Cette ligne constitue un commentaire. Les commentaires en VBA commencent toujours par une apostrophe ('). Les lignes qui suivent ce caractère sont ignorées lors de l'exécution du code.

Selection.TypeText Text:="Ma première macro"

Nous terminons par notre ligne de code. Dans cet exemple, elle est très simple. Nous utilisons un Objet et sa méthode et l'argument utilisé pour la méthode.

- Objet : Selection

- Méthode : TypeText

- Argument : Text:="Ma première macro"

Vous pouvez réutiliser ce code un très grand nombre de fois.
Vous venez de faire votre première Macro.

5-B - Excel

Cette partie est similaire à ce que nous venons de voir pour Word. Au lieu d'avoir des documents, nous avons des Classeurs contenant des feuilles. La macro que nous venons d'enregistrer se trouve dans le Module1 qui a été créé par Excel pour recevoir votre macro.

Sub MaPremiereMacro()
'
' MaPremiereMacro Macro
'

'
ActiveCell.FormulaR1C1 = "Ma première macro"
Range("A2").Select

End Sub

Dans notre code, nous avons cinq lignes.

Sub MaPremiereMacro()
...
...
End Sub

La première ligne constitue le début de notre procédure. La dernière, la fin de notre procédure, le code est toujours contenu entre ces deux lignes.

'
' MaPremiereMacro Macro
'

Cette ligne constitue un commentaire, les commentaires en VBA commencent toujours par une ', les lignes qui suivent seront ignorées lors de l'exécution du code.

ActiveCell.FormulaR1C1 = "Ma première macro"
Range("A2").Select

Nous terminons par nos deux lignes de code, la première va insérer le texte "Ma première macro" dans la cellule active et la seconde va activer la cellule A2.

6 - Liens

Titre de l'article

01

Ma première macro

02

Partie 2 : Les variables

7 - Remerciements

Je tiens à remercier pour leurs contributions à ce projet :
- lorenzole+bo
- Philippe JOCHMANS
- Caro-Line
- Arkham46
- Jeannot45