Formation VBA - WordPress.com
Transcription
Formation VBA - WordPress.com
Formation VBA Table des matières Introduction ............................................................................................................................ 1 Les macros ............................................................................................................................... 2 Sélections de colonnes ......................................................................................................... 4 Propriétés................................................................................................................................. 6 Les couleurs ............................................................................................................................. 7 Les variables ............................................................................................................................ 9 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 il est possible de 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. Il nous faut ajouter les barres "Boîtes à outils Contrôles" et "Formulaires" : 1 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". Les macros Le principe des macros est d’automatiser certaines tâches en toute simplicité. 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 Cliquez sur Outils > Macros > Nouvelle macro 2 Les manipulations effectuées ont été traduites en code VBA automatiquement. Pour visionner le code, ouvrez l’éditeur (Alt F11) et cliquez sur « Module1 » : Il est possible de changer le nom de la macro via le code. Macro 1 étant un nom peu pertinent, remplaçons-le par « switch_colonnes » Associons maintenant la macro à un bouton. Cliquez sur « Bouton » de la barre « Formulaires » *Insérer > Bouton Il ne reste plus qu’à cliquer sur le bouton pour exécuter les tâches précédentes en une fraction de secondes. 3 Sélections de colonnes Ici nous allons créer une macro manuellement qui sélectionnera une cellule de notre choix. Ouvrez l’éditeur et ajoutez-y un module : Dans le module, tapez « sub selection » et appuyez sur Entrer. L’éditeur ajoutera automatiquement la fin de cette nouvelle procédure. Créez un bouton de formulaire associé à cette toute nouvelle macro. Voyons maintenant le code pour sélectionner une cellule : Sub selection() 'Sélection de la cellule A8 Range("A8").Select End Sub Au clique du bouton, la macro sélectionnera la cellule A8. Il est possible de gérer le « multi-feuilles » Pour cela, ajoutez une nouvelle feuille Excel et complétez le code comme ceci : Sub selection() 'Activation de la feuille 2 4 Sheets("Feuil2").Activate 'Sélection de la cellule A8 Range("A8").Select End Sub Fonctions supplémentaires : Sélection de cellules distinctes Sub selection() 'Sélection des cellule A8 et C5 Range("A8, C5").Select End Sub Sélection d’une plage de cellules Sub selection() 'Sélection des cellules A1 à A8 Range("A1:A8").Select End Sub 5 Propriétés Dans le cas précédant, nous avons utilisé la propriété Select. Mais il en existe bien d’autres : -La propriété Value par exemple permet d’insérer une valeur dans la cellule. Par exemple : Il est aussi possible d’insérer du texte à condition qu’il soit mis entre guillemets. -ClearContents permettra d’effacer le contenu d’une colonne: Sub selection() 'Effacer le contenu de la colonne A Range("A:A").ClearContents End Sub -Il est aussi possible de modifier la mise en forme du texte avec la propriété Font : Modifier la taille du texte : 6 Sub proprietes() 'Modifier la taille du texte des cellules A1 à A8 Range("A1:A8").Font.Size = 18 End Sub Mettre le texte en gras : Sub proprietes() 'Mettre en gras les cellules A1 à A8 Range("A1:A8").Font.Bold = True End Sub Ou même de modifier la police : Sub proprietes() 'Modifier la police de caractères des cellules A1 à A8 Range("A1:A8").Font.Name = "Arial" End Sub Les couleurs Pour modifier la couleur d’un texte, il nous faudra utiliser la propriété ColorIndex attendant comme paramètre une des 56 couleurs disponibles : Commençons par attribuer une couleur au texte en A1. 7 Sub couleurs() Range("A1").Font.ColorIndex = 10 End Sub Vous voilà avec votre texte transformer en vert. Il est possible d’utiliser la propriété Color qui utilise la méthode RGB (Rouge, Vert, Bleu) pour plus de précision. Vous pouvez trouver ces codes couleurs sur internet via le site www.codecouleur.com Essayons de colorer le fond des cellules sélectionnées grâce à cette méthode : Sub couleurs() 'Colorer le fond des cellules sélectionnées Selection.Interior.Color = RGB(174, 240, 194) End Sub 8 Les variables Les variables permettent de stocker toutes sortes de données. Exemple : Assignez un bouton à un module variables et tapez le code suivant : Au moment du clique sur le bouton, le résultat fera son apparition dans une boite de dialogue (MsgBox). Nous allons maintenant créer une macro récupérant des informations dans différentes cellules et affichant le résultat dans une boite de dialogue. Dans la cellule A1, écrivez un nom, dans la B1, un prénom et dans la C1 un nombre indiquant l’âge. Dans notre module variables, écrivons le code suivant : Déclaration des variables : Sub variables() 'Déclaration des variables Dim nom As String, prenom As String, age As Integer End Sub Attribution des valeurs : Sub variables() 'Déclaration des variables Dim nom As String, prenom As String, age As Integer 'Valeurs des variables 9 nom = Cells(2, 1) prenom = Cells(2, 2) age = Cells(2, 3) End Sub Affichage du résultat : Sub variables() 'Déclaration des variables Dim nom As String, prenom As String, age As Integer 'Valeurs des variables nom = Cells(2, 1) prenom = Cells(2, 2) age = Cells(2, 3) 'Boîte de dialogue MsgBox nom & " " & prenom & ", " & age & " ans" End Sub Le résultat suivant apparaît : Rajoutons une fonctionnalité : Ajoutez 3 lignes supplémentaires contenant nom, prénom et âge ainsi qu’une case où l’on rentrera un numéro de ligne. Comme ceci : 10 Voici l’objectif recherché : Indice : Le tri s’effectuera sur une nouvelle variable, une ligne en l’occurrence qui ira chercher comme valeur le contenu de la case F5. A vous de jouer !! ! ! ! ! ! ! ! ! ! ! Insurmontable ? Descendez plus bas pour la solution 11 Il suffisait donc de rajouter une nouvelle variable : Dim nom As String, prenom As String, age As Integer, numero_ligne As Integer Cette variable prend par la suite la valeur de la cellule F5 : numero_ligne = Range("F5") Remplaçons les n° de ligne par notre variable : nom = Cells(numero_ligne, 1) prenom = Cells(numero_ligne, 2) age = Cells(numero_ligne, 3) Ce qui nous donne : Sub variables() 'Déclaration des variables Dim nom As String, prenom As String, age As Integer, numero_ligne As Integer 'Valeurs des variables numero_ligne = Range("F5") + 1 nom = Cells(numero_ligne, 1) prenom = Cells(numero_ligne, 2) age = Cells(numero_ligne, 3) 'Boîte de dialogue MsgBox nom & " " & prenom & ", " & age & " ans" End Sub Vous connaissez maintenant les bases des macros VBA dans Excel, en espérant vous avoir captivés. 12