MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée....

14
12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE MANUEL DES FONCTIONS DE BASE VISUAL BASIC – OFFICE 2011

Transcript of MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée....

Page 1: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

MANUEL DES FONCTIONS DE BASE

VISUAL BASIC – OFFICE 2011

Page 2: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Prendre en main VBA dans Office pour Mac 2011

Applicable à : Word pour Mac 2011, Excel pour Mac 2011, PowerPoint pour Mac 2011

Puissant et facile à utiliser, l’outil de programmation Visual Basic pour Applications

(VBA) dans Office pour Mac 2011 vous permet d’automatiser les tâches répétitives

dans votre application Office préférée. Par exemple, avez-vous déjà modifié le style

d’un paragraphe en haut de plusieurs dizaines de pages dans Word ? La plupart

des modifications de format ou autre que vous apportez manuellement peuvent

être effectuées manuellement dans VBA.

Ce guide vous aide à créer votre premier script VBA automatisé pour Office (ou

macro). Il vous donne également des informations sur le code que vous créez et

vous oriente vers des ressources supplémentaires pour vous aider à approfondir

votre connaissance de VBA.

Commençons par créer notre première macro avec l’enregistreur de macro

Voici les étapes que nous aborderons dans ce guide pour vous aider à prendre en

main VBA dans Office pour Mac 2011.

Étape 1 : prendre en main l’enregistreur de macro

Étape 2 : lire et comprendre le code

Étape 3 : découvrir les principes de base de la programmation

Étape 4 : partager votre macro avec d’autres utilisateurs

Étape 5 : exemples réels

Page 3: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Étape 1 : prendre en main l’enregistreur de macro

Pour commencer à programmer avec VBA dans Office pour Mac 2011, le plus

simple consiste à utiliser l’enregistreur de macro. Celui-ci enregistre simplement une

tâche que vous effectuez dans votre application Office, puis la convertit en code

VBA. Vous pouvez ensuite consulter le code généré pour déterminer le code VBA

utilisé pour effectuer cette action.

Vous vous demandez peut-être pourquoi il convient d’apprendre à coder si

l’enregistreur peut faire ce travail ? Dans le cadre de l’utilisation de l’enregistreur de

macro pour créer des macros, vous découvrirez peut-être qu’il existe certaines

limites à ce que vous pouvez enregistrer et vous devrez examiner le code plus en

détail pour créer des fonctionnalités plus complexes dans votre macro.

Voyons un exemple d’enregistrement de la tâche de suppression d’une ligne d’un

tableau dans Word.

1. Commencez par créer un tableau dans Word.

2. Placez votre curseur dans la première cellule du tableau. Dans l’exemple ci-

dessus, nous allons placer le curseur sur la cellule Andrew.

3. Cliquez sur Outils > Macro > Nouvelle macro

4. Modifiez le nom de la macro en DeleteRow, puis cliquez sur OK.

Conseil : le nom de la macro ne peut pas contenir des espaces ou des caractères

spéciaux.

Page 4: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

1. À présent que l’enregistreur est démarré, sélectionnez l’onglet Disposition du

tableau, puis cliquez sur Supprimer > Supprimer les lignes.

2. Arrêtez l’enregistreur de macro en cliquant sur Outils > Macro > Arrêter

l’enregistrement.

À présent que vous avez enregistré votre action, examinons le code.

Remarque : l’enregistreur de macro n’enregistre pas la frappe.

Page 5: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Étape 2 : lire et comprendre le code

Au cours de l’étape 1, vous avez enregistré votre première macro VBA pour

supprimer une ligne. Examinons à présent le code généré par l’enregistreur de

macro.

Pour afficher le code, cliquez sur Outils > Macro > Visual Basic Editor. Voici ce que

vous verrez :

Sub DeleteRow()

DeleteRow Macro

Selection.Rows.Delete

End Sub

Passons en revue chaque ligne de cette macro :

1. Sub DeleteRow

Toutes les macros commencent et se terminent par les mots clés Sub et End

Sub respectivement. Dans l’exemple ci-dessus, DeleteRowest le nom de la

macro ou de la procédure que vous avez créée.

2. DeleteRow Macro

Ces commentaires permettent de décrire ce qui se passe dans votre code. Ils

sont particulièrement utiles lorsque votre code devient plus complexe et que

d’autres personnes doivent le gérer, ou lorsque vous réexaminez votre code

après un certain temps. Les commentaires commencent toujours par un

guillemet simple, et la couleur de police devient verte dans Visual Basic Editor

pour vous aider à différencier les commentaires des autres parties de votre

code.

3. Selection.Rows.Delete

Cette ligne de code indique à Word comment procéder. En l’occurrence,

sélectionner la ligne et la supprimer.

À présent que vous avez créé votre première macro et examiné les parties de base

dans une macro, nous allons passer à la section suivante dans laquelle vous

découvrirez quelques principes de base de programmation.

Page 6: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Étape 3 : découvrir les principes de base de la programmation

Nous avons vu comment enregistrer une macro et avons étudié le principe de

création des procédures VBA. La prochaine étape consiste à approfondir les

notions fondamentales pour acquérir des bases solides en matière de

programmation VBA.

Concepts de base de VBA : objets, méthodes et propriétés

La première chose à savoir est que le code VBA est assemblé d’une manière qui

imite la façon dont vous décririez les éléments qui vous entourent. Ce code

s’articule autour des quatre concepts suivants :

Concept Description Exemple

Objet Un « élément » Feuille de calcul

Méthode Action, ou quelque chose qu’un « élément » peut

accomplir

Ajouter un

« élément »

Propriété Description, ou caractéristique d’un « élément » Nom

Collection Un groupe « d’éléments » Feuilles de calcul

Réunis, ces quatre concepts représentent ce que les programmeurs appellent un

modèle de programmation orienté objet. Vous pouvez ainsi accomplir une tâche

en décrivant « l’élément » (c’est-à-dire, « l’objet ou la collection ») sur lequel vous

voulez agir, les caractéristiques particulières (c’est-à-dire, la « propriété ») de

l’élément sur lequel vous voulez agir, et la manière (c’est-à-dire, la « méthode »)

utilisée pour effectuer votre action.

Reprenons notre code à partir de l’étape 2 :

Sub DeleteRow()

DeleteRow Macro

Selection.Rows.Delete

End Sub

Dans la ligne, Selection.Rows.Delete, Selection représente l’objet, ou « l’élément »

auquel vous faites référence dans le code. Vous avez décrit cet « élément » plus en

détail en indiquant que vous vouliez agir sur la propriété Rows. Ensuite, vous avez

appliqué la méthode de suppression de la ligne avec la syntaxe Delete.

Ces concepts peuvent vous sembler déconcertants au premier abord. Essayez

toutefois de formuler ce que vous tentez d’accomplir et identifiez « l’élément » sur

lequel vous allez travailler, les caractéristiques de cet « élément » et l’action à

effectuer sur cet « élément ». Avec un peu de pratique et de persévérance, vous

serez en bonne voie pour créer des macros VBA puissantes.

Page 7: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Voici deux autres concepts qui vous seront utiles si vous voulez créer des macros

VBA pratiques.

If This Then That : L’instruction If…Then est un outil de programmation qui vous

permet de contrôler le type d’action que vous souhaitez réaliser en fonction de

certains types de critères. Par exemple, supposons que vous souhaitiez que tout le

texte Titre 1 utilise le format Helvetica 16 points avec une mise en forme Gras et que

tout le texte Titre 2 utilise le format Helvetica 12 points avec une mise en forme

Italique. L’instruction If…Then représente l’outil qui vous permettrait de vérifier si le

texte est un style Titre 1 ou Titre 2 et d’appliquer ensuite le format approprié.

En savoir plus sur le concept If This Then That

For Each Loop : ce concept est utile lorsque vous souhaitez passer en revue une

collection, c’est-à-dire, un ensemble « d’éléments », et effectuer une action. Vous

pourriez également appliquer le concept If This Then That pour disposer d’un

contrôle plus précis sur l’action. Par exemple, prenons un tableau. Imaginons que

vous voulez passer en revue chaque ligne à la recherche d’un mot précis et que

dès que vous trouvez ce mot, disons, « jaune », la cellule serait coloriée en jaune (ou

en rouge si le mot recherché est « rouge »). Pour ce faire, vous utiliseriez

conjointement les instructions For Each Loop et If…Then pour mettre en place cette

procédure.

Page 8: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Étape 4 : partager votre macro avec d’autres utilisateurs

Dans le cadre du partage des macros, il est important de comprendre que celles-ci

sont stockées dans le fichier Office, aussi vous devez partager ce fichier avec

d’autres personnes. Si vous avez créé une macro dans Word, vous devez partager

le fichier en tant que modèle Word prenant en charge les macros (.dotm) ou

document Word prenant en charge les macros (.docm). Si vous avez créé une

macro dans Excel, vous devez partager le fichier en tant que classeur Excel prenant

en charge les macros (.xlsm) ou modèle Excel prenant en charge les macros (.xltm).

Si vous avez créé une macro Word, vous devez effectuer quelques étapes

supplémentaires pour partager votre macro :

Créer le modèle Word/Excel/Powerpoint vide

1. Ouvrez un nouveau document Word.

2. Dans le menu Fichier, cliquez sur Enregistrer sous.

3. Nommez votre fichier global_macros.dotm.

4. Dans la liste déroulante Format, sélectionnez Modèle Word prenant en

charge les macros (*.dotm) comme Format.

5. Choisissez l’emplacement où vous voulez stocker le fichier sur votre réseau.

6. Cliquez sur Enregistrer, puis fermez le modèle.

Exporter la macro Word/Excel/Powerpoint à partir de votre document

Avec la macro que vous avez enregistrée à l’étape 1, procédez comme suit pour

exporter la macro :

1. Ouvrez le document ou le modèle contenant la macro que vous voulez

exporter.

2. Dans le menu Outils, pointez sur Macro, puis cliquez sur Macros.

Page 9: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

3. Sélectionnez la macro que vous voulez exporter, puis cliquez sur Modifier.

4. Dans Visual Basic Editor, cliquez sur Fichier > Exporter le fichier.

5. Enregistrez la macro dans le même dossier que le modèle prenant en charge

les macros, global_macros.dotm.

Importer la macro Word dans votre nouveau modèle vide

1. Ouvrez global_macros.dotm, puis cliquez sur Outils > Macro > Visual Basic

Editor.

2. Pour importer la macro, cliquez sur Fichier > Importer le fichier,accédez au

dossier dans lequel vous avez exporté votre macro, sélectionnez le fichier,

puis cliquez sur Ouvrir.

3. Enregistrez le module, fermez Visual Basic Editor, puis quittez Word.

Vous pouvez désormais partager votre macro avec d’autres personnes. Invitez-les à

suivre les étapes ci-dessous pour installer la macro sur leur ordinateur.

Installer le modèle : configurer Word pour utiliser votre macro

1. Placez le fichier global_macro.dotm à cet emplacement :

o Word pour Mac 2011 : Macintosh HD: Utilisateurs : Nom d’utilisateur:

Library: Application Support: Microsoft: Office: User Templates: My

Templates

o Word 2003 sous Windows ou version ultérieure : C:\Documents and

Settings\Nom d’utilisateur\Application Data\Microsoft\Word\STARTUP

Remarque : Nom d’utilisateur est le nom de connexion de l’utilisateur.

Page 10: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

2. Dans Word, cliquez sur Word > Préférences....

1. Dans la section Paramètres personnels, cliquez sur Emplacement des fichiers.

2. Sélectionnez Démarrage dans la liste Emplacement des fichiers, puis cliquez

sur Modifier....

Page 11: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

1. Vérifiez que Word utilise le dossier dans lequel vous avez placé le fichier

global_macro.dotm comme dossier de démarrage.

2. Cliquez sur Choisir pour fermer la boîte de dialogue Choisir un dossier, puis sur

OK pour fermer la boîte de dialogue Emplacement des fichiers.

La dernière étape consiste à indiquer à Word d’utiliser le fichier

global_macros.dotm lors de son démarrage.

1. Dans Word, cliquez sur Outils > Modèles et compléments....

2. Sélectionnez le fichier global_macros.dotm dans la liste, puis cliquez sur OK.

Conseil : Si vous ne voyez pas votre modèle dans la liste, votre fichier

global_macros.dotm ne figure pas dans le dossier de démarrage de Word.

Revenez à l’étape 1 dans cette section et vérifiez que le dossier Démarrage

est celui dans lequel vous avez copié le fichier global_macros.dotm.

Page 12: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Page 13: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

Étape 5 : exemples réels

Supprimer toutes les lignes d’un tableau contenant une chaîne de texte spécifique

dans la première colonne

(Par Bill Coan - MVP Word)

Sub DeleteRows()

Dim TargetText As String

Dim oRow As Row

If Selection.Information(wdWithInTable) = False Then Exit Sub

TargetText = InputBox$("Enter target text:", "Delete Rows")

For Each oRow In Selection.Tables(1).Rows

If oRow.Cells(1).Range.Text = TargetText & vbCr & Chr(7) Then oRow.Delete

Next oRow

End Sub

Supprimer toutes les lignes vides dans un tableau

(Par Dave Rado et Ibby - MVP Word)

Public Sub DeleteEmptyRows()

Dim oTable As Table, oRow As Range, oCell As Cell, Counter As Long, _

NumRows As Long, TextInRow As Boolean

' Specify which table you want to work on.

Set oTable = Selection.Tables(1)

' Set a range variable to the first row's range

Set oRow = oTable.Rows(1).Range

NumRows = oTable.Rows.Count

Application.ScreenUpdating = False

For Counter = 1 To NumRows

StatusBar = "Row " & Counter

TextInRow = False

For Each oCell In oRow.Rows(1).Cells

If Len(oCell.Range.Text) > 2 Then

'end of cell marker is actually 2 characters

TextInRow = True

Exit For

End If

Next oCell

Page 14: MANUEL DES FONCTIONS DE BASE VISUAL BASIC OFFICE … · dans votre application Office préférée. ... votre connaissance de VBA. Commençons par créer notre première macro avec

12 avenue du Québec – SILIC 523 – 91946 VILLEBON SUR YVETTE

If TextInRow Then

Set oRow = oRow.Next(wdRow)

Else

oRow.Rows(1).Delete

End If

Next Counter

Application.ScreenUpdating = True

End Sub

Supprimer les zones de texte vides dans une présentation

Sub RemoveEmptyTextBoxes()

Dim SlideObj As Slide

Dim ShapeObj As Shape

Dim ShapeIndex As Integer

For Each SlideObj In ActivePresentation.Slides

For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1

Set ShapeObj = SlideObj.Shapes(ShapeIndex)

If ShapeObj.Type = msoTextBox Then

If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then

ShapeObj.Delete

End If

End If

Next ShapeIndex

Next SlideObj

End Sub