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

Documents pareils