1 UNIVERSITE MOULAY ISMAIL Meknes Module d’informatique Cours VBA 2018/2019 S1
1 UNIVERSITE MOULAY ISMAIL Meknes Module d’informatique Cours VBA 2018/2019 S1 2 Contenu du module Cours I- Introduction II- Les feuilles et cellules III- Les variables IV- Les conditions V- Les boucles VI- créer une application complexe 3 Cours VBA : introduction Le VBA (Visual Basic for Applications) est un langage proche du Visual Basic qui nécessite une application hôte pour s'exécuter (Excel dans notre cas). Grâce au VBA nous allons pouvoir réaliser à peu près tout ce que l'on souhaite avec Excel ... Mais avant de commencer, commençons par afficher les outils qui nous seront utiles. 4 Si vous utilisez la version 2007 d'Excel (ou une version supérieure), cliquez sur Fichier > Options > Personnaliser le Ruban puis cochez "Développeur". 5 Un nouvel onglet sera ajouté : Si vous utilisez une version d'Excel antérieure à 2007, ajoutez les barres "Boîtes à outils Contrôles" et "Formulaires" : 6 Pour travailler avec du code VBA, nous avons besoin d'un éditeur, celui-ci est déjà installé et vous pouvez l'ouvrir avec le raccourci "Alt F11" : 7 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 : 8 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 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". 9 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" : Ce code correspond aux manipulations enregistrées. 10 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 11 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 12 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". Tracez votre bouton et sélectionnez ensuite simplement votre macro : 13 Lorsque vous cliquerez sur le bouton, la macro sera exécutée : 14 Cours VBA : les sélections Nous allons commencer par créer une macro qui sélectionnera une cellule de notre choix. Ouvrez l'éditeur et ajoutez-y un module : Dans le module, tapez "sub exemple" et appuyez sur Enter. Vous remarquerez qu'Excel a automatiquement ajouté la fin de cette nouvelle procédure : Sub exemple() End Sub 15 Créez maintenant un bouton de formulaire auquel vous allez associer cette macro (vide pour le moment) : Complétez votre macro avec ceci : Sub exemple() 'Sélection de la cellule A8 Range("A8").Select End Sub 16 Vous pouvez tester cette macro en cliquant sur votre bouton de formulaire, la cellule A8 est alors sélectionnée. Nous allons maintenant modifier cette macro pour sélectionner la cellule A8 de la seconde feuille : Sub exemple() 'Activation de la feuille 2 Sheets("Feuil2").Activate 'Sélection de la cellule A8 Range("A8").Select End Sub Excel active alors la feuille 2 avant de sélectionner la cellule A8. Remarque : aidez-vous des commentaires (texte en vert) pour bien comprendre les macros de ce cours. 17 Sélection de cellules distinctes Sub exemple() 'Sélection des cellule A8 et C5 Range("A8, C5").Select End Sub Sélection d'une plage de cellules Sub exemple() 'Sélection des cellules A1 à A8 Range("A1:A8").Select End Sub Sélection d'une plage de cellules renommée Sub exemple() 'Sélection des cellules de la plage "ma_plage" Range("ma_plage").Select End Sub 18 Sélection d'une cellule en fonction d'un numéro de ligne et de colonne Sub exemple() 'Sélection de la cellule de la ligne 8 et de la colonne 1 Cells(8, 1).Select End Sub Cette autre manière de sélectionner permet des sélections plus dynamiques et sera bien utile par la suite. 19 Décaler une sélection Sub exemple() 'Sélection d'une cellule (calculée par rapport à la cellule active actuelle) ActiveCell.Offset(2, 1).Select End Sub Décalage de 2 lignes vers le bas et 1 colonne vers la droite à partir de la cellule active, puis sélection : 20 Sélection de lignes Il est possible de sélectionner des lignes entières avec Range ou Rows (Rows étant spécifique aux lignes). Sub exemple() 'Sélection des lignes 2 à 6 Range("2:6").Select End Sub Sub exemple() 'Sélection des lignes 2 à 6 Rows("2:6").Select End Sub Sélection de colonnes Tout comme pour les lignes, il est possible de sélectionner des colonnes entières avec Range ou Columns (Columns étant spécifique aux colonnes). Sub exemple() 'Sélection des colonnes B à G Range("B:G").Select End Sub Sub exemple() 'Sélection des colonnes B à G Columns("B:G").Select End Sub 21 Cours VBA : les propriétés Nous allons maintenant agir sur le contenu et l'apparence des cellules et des feuilles. Commencez par ouvrir l'éditeur, ajoutez-y un module, copiez la macro ci- dessous et associez-la à un bouton formulaire (voir partie "Sélections" en cas de besoin) : Sub proprietes() 'Macro incomplète Range ("A8") End Sub Nous voulons effectuer une action sur la cellule A8 avec ce début de macro. 22 Cours VBA : les propriétés Pour afficher la liste des possibilités que l'on peut associer à l'objet Range, ajoutez un point après Range ("A8") : L'éditeur affiche alors les différentes possibilités ... 23 Pour ce premier exemple, cliquez sur "Value" puis sur la touche Tab pour valider ce choix. Cours VBA : les propriétés Sub proprietes() 'Macro incomplète Range("A8").Value End Sub La propriété Value est ici le contenu de la cellule. Nous voulons maintenant donner la valeur 48 à A8 : Sub proprietes() 'A8 = 48 Range("A8").Value = 48 'Traduction : 'La valeur de la cellule A8 est égale à 48 End Sub 24 Puis, la valeur Exemple de texte à A8 (important : le texte doit être mis entre " ") : Cours VBA : les propriétés Sub proprietes() 'A8 = Exemple de texte Range("A8").Value = "Exemple de texte" End Sub Dans ce cas, c'est bien la cellule A8 de la feuille où est lancée la procédure (ici, grâce au bouton formulaire) qui sera modifiée. Si vous créez un second bouton sur la feuille 2, ce sera alors la cellule A8 de la feuille 2 qui sera modifiée. 25 Sub proprietes() 'A8 de la feuille 2 = Exemple de texte Sheets("Feuil2").Range("A8").Value = "Exemple de texte" 'Ou : 'Sheets(2).Range("A8").Value = "Exemple de texte" End Sub Cours VBA : les propriétés Pour modifier la cellule A8 de la feuille 2 en cliquant sur le bouton de la feuille 1, il faut ajouter avant Range : Sheets("Nom_de_la_feuille") ou Sheets(Numéro_de_la_feuille). 26 Effacer le contenu de cellules Sub proprietes() 'Effacer le contenu de la colonne A Range("A:A").ClearContents End Sub Cours VBA : les propriétés 27 Après avoir ajouté Font., la liste des propriétés que l'on peut attribuer à la mise en forme du texte apparaît : Cours VBA : les propriétés La modification des couleurs sera détaillée à la page suivante ... 28 Mise en forme : taille du texte Mise en forme : texte en gras Cours VBA : les propriétés Sub proprietes() 'Modifier la taille du texte des cellules A1 à A8 Range("A1:A8").Font.Size = 18 End Sub Sub proprietes() 'Mettre en gras les cellules A1 à A8 Range("A1:A8").Font.Bold = True End Sub Bold = True signifie Caractères en gras = Oui. 29 Pour supprimer la mise en forme "caractères gras" à un texte, il faut donc remplacer "Oui" par "Non", autrement dit, "True" par "False" : Cours VBA : les propriétés Sub proprietes() 'Enlever la mise en forme "gras" des cellules A1 à A8 Range("A1:A8").Font.Bold = False End Sub Mise en forme : texte en italique Sub proprietes() 'Mettre en italique les cellules A1 à A8 Range("A1:A8").Font.Italic = True End Sub 30 Mise en forme : texte souligné Cours VBA : les propriétés Sub proprietes() 'Souligner les cellules A1 à A8 Range("A1:A8").Font.Underline = True End Sub Mise en forme : police Sub proprietes() 'Modifier la police de caractères des cellules A1 à A8 Range("A1:A8").Font.Name = "Arial" End Sub 31 Ajouter des bordures Cours VBA : les propriétés Sub proprietes() 'Ajouter une bordure aux cellules A1 à A8 Range("A1:A8").Borders.Value = 1 'Value = 0 => pas uploads/Litterature/ coursvba.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 05, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 11.6833MB