VBA Pour EXCEL
Formation CAMPC
PARTIE ADMINISTRATIVE
EXAMEN & DEVOIR
1 Devoir Personnel (en Présentiel)
1 Devoir de Groupe de 2 personnes
PLAN DU COURS
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).
• Elle peut manipuler les données, effectuer des calculs, formater des
cellules et bien plus encore en utilisant des . Macros (Macro Commandes)
écrites en utilisant VBA (Visual Basic for Applications), un langage de
programmation intégré à Excel.
• L’utilisation de VBA dépend de notre vision. Donc pouvoir réaliser à peu
près tout ce que l'on souhaite avec Excel ...
• Mais avant de démarrer, commençons par afficher les outils qui nous
seront utiles.
Préparation de l’Environnement
• Créer le classeur avec l’Extension (Excel
Prenant en Charge les Macros)
• Activer l’Onglet « Développeur »
• Sécurité des Macros
– Paramètre des Macros : Activer toutes les macros
– Paramètre développeur : Cocher « Accès
Approuvé »
• Editeur Macro (ALT F11)
ACTIVATION ONGLET DEVELOPPEUR
Personalisation du Ruban Excel
Personalisation du Ruban
Excel (Version antérieure 2007)
Si vous utilisez une version d'Excel antérieure à 2007, ajoutez les
barres Boîtes à outils Contrôles et Formulaires
Activation du Formulaire
Version Excel Antérieure à
2007
MENU DEVELOPPEUR VBA
Onglet Sécurité des Macros
• Paramètre des Macros : Activer toutes les macros
• Paramètre développeur : Cocher « Accès Approuvé »
Editeur de VBA
• Un éditeur déjà intégré permet de
Accès Rapide (Raccourci) Alt + F11
Autre Accès (cliquez sur Visual Basic depuis
l'onglet Développeur
Ma Première Macro
• 2 Modes de création de Macro
– Enregistrement de la Macro
– Codage de la Macro
• Nous allons créer :
– Une macro enregistrée
– Une macro par codage (Envoyé un message ‘ VBA , Facile ou Difficile’)
Ma Première Macro Enregistrée
– Créer sur Excel
• A partir de la ligne 5 de Excel
– Nom, Prénom, Salaire Brut Total retenues, Salaire Net
• Nous allons appliquer les regles de beauté
Nom Prénom Salaire Retenues Salaire
Brut Net
Koffi Jean 350000 100000 250000
Koné Sidibé 275000 75000 200000
Tahi Bernard 425000 125000 300000
Amani Rose 500000 125000 375000
Kouamé Catherine 325000 25000 300000
Ma Première Macro avec Codage
Coder une petite macro pour souhaiter la bienvenue au cours de
VBA
Sub Macro()
MsgBox ("Bienvenue au cours VBA du CAMPC")
End Sub
On Enregistre la Macro
On retourne à Excel
On Sélectionne l’onglet « Macro »
On Sélectionne notre macro
On Sélectionne « Exécuter »
Définition d’une macro VBA
• Une macro est une série d'instructions que vous regroupez au sein d'une
même commande afin d'exécuter automatiquement une tâche. Pour gagner
du temps sur les tâches que vous effectuez souvent, regroupez les étapes
dans une macro.
• Une macro est une action ou un ensemble d'actions que vous pouvez
exécuter autant de fois que vous le souhaitez. Lorsque vous créez une
macro, vous enregistrez vos clics de souris et vos frappes de touche. Après
avoir créé une macro, vous pouvez la modifier pour apporter des
modifications mineures à son fonctionnement
• Les macros sont d'une grande aide pour réduire le temps et les efforts des
utilisateurs dans une large mesure si vous devez effectuer très souvent des
tâches répétitives dans le cadre de votre travail
• Une macro (abréviation de « macro-commande ») est une suite de
commandes destinées à être jouées automatiquement au lieu d'être lancées
individuellement par l'utilisateur.
Définition d’une macro VBA
• La macro dans Excel est une fonctionnalité très utile pour vous faire
gagner en efficacité. Elle sauvegarde dans la mémoire du tableur une
action ou un enchaînement d’actions effectuées sur une feuille afin de
pouvoir les réappliquer en un clic et de manière automatique
ultérieurement. Enregistrez ainsi dans une commande vos clics de souris,
vos actions de tri, de filtrage ou d’édition, tout ce qui modifie de feuille de
travail, pour ne pas avoir à réitérer chacun de ces gestes sur un prochain
document.
Votre 1ere Macro VBA Enregistrée
• Une fois que les changements potentiellement récurrents à effectuer sur votre
document sont listés, vous êtes prêt(e) à lancer une macro sur Excel pour
enregistrer vos actions. Pour ce faire, vous pouvez passer par le menu «
Développeur » comme évoqué précédemment ou par l’onglet « Affichage ». À
l’extrême droite de ce dernier, vous trouverez le bouton « Macros ». Déroulez-le
puis faites « Enregistrer une macro ». Dans la boîte de dialogue, nommez votre
macro en évitant les caractères spéciaux, les majuscules et les espaces (préférez
les tirets). Le logiciel vous propose aussi de décrire votre macro, informations
auxquelles vous seul aurez accès.
• En cliquant sur Ok, vous lancerez l’enregistrement et pourrez débuter vos
modifications. À la fin de vos manipulations, cliquez sur « Arrêtez l’enregistrement
» sous l’onglet « Développeur » ou appuyez sur le petit bouton « Stop » en bas à
gauche de l’interface. Vos macros sont stockées sous Affichage > Macros >
Afficher les macros. C’est dans cette fenêtre que vous pourrez sélectionner la
macro de votre choix pour l’exécuter sur un document ultérieur. En quelques clics,
les modifications effectuées lors de vos enregistrements peuvent s’appliquer sur
tout autre fichier ouvert.
Votre 1ere Macro VBA Enregistrée
• 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 :
– Effacer 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
– Positionner le curseur à E1
Exercice Efface+votre nom de famille
Extension Classeur Excel : .xslm
Pour ce faire, cliquez sur Enregistrer une macro puis sur Ok, exécutez les opérations
décrites ci-dessus sans interruption (car toutes les manipulations sont enregistrées) et
pour terminer cliquez sur Arrêter l'enregistrement
VISUALISATION DU CODE MACRO
Feuilles et Cellules : les sélections
Nous allons 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 Entrée.
Vous remarquerez qu'Excel a
automatiquement ajouté la fin
de cette nouvelle procédure :
Sub exemple()
End Sub
Les Feuilles et Cellules : Création de
Bouton & Affectation à une Macro
Créez maintenant un bouton de formulaire auquel vous allez associer cette
macro
Dans l’onglet « Developpeur » Choisir l’onglet ‘Insérer’
• Choisir le Bouton
• Dessiner le bouton sur votre feuille Excel
• Associer le bouton à une Macro
• Donner un nom au bouton
Feuilles & Cellules : 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 de formulaire (Relire la page des Sélections en cas de
besoin) :
Sub proprietes()
'Macro incomplète
Range("A8")
End Sub
Valeur de Chiffre
Range ("A8").Value = 48 ou Range("A8") = 48
la valeur Exemple de texte à A8 (le texte doit être mis entre " ") :
Range ("A8").Value = "Exemple de texte " ou Range("A8") = "Exemple de texte«
La valeur de Feuille
'Cellule A8 de la feuille 2 = Exemple de texte
Sheets("Feuil2").Range("A8").Value = "Exemple de texte"
Feuilles & Cellules : Mise en Forme
Après avoir sélectionné la propriété Font et ajouté un ., la liste des propriétés que l'on peut
attribuer à la mise en forme du texte apparaît :
Les Feuilles & Cellules :
Mise en Forme
Format Attribut Exemple
Taille [Link] Range("A1:A8").[Link] = 18
Gras [Link] Range("A1:A8").[Link] = True
Range("A1:A8").[Link] = False
Italique [Link] Range("A1:A8").[Link] = True
Souligné [Link] Range("A1:A8").[Link] = True
Police [Link] Range("A1:A8").[Link] = "Arial"
Les Feuilles & Cellules :
CALCUL
Excel
Addition C2=A2+B2
Multiplication C3=A3*B3
VBA
Range(“C2").Formula = "=A2 + B2“
Range(“C3").Formula = "=A * B3“
Les Feuilles & Cellules : Les Couleurs
Nous avons 2 possibilités pour
définir la couleur
ColorIndex et ses 56 couleurs
Color qui nous permettra
d'utiliser n'importe quelle
couleur.
Les Feuilles & Cellules : Les Couleurs
Sub couleurs()
'Couleur du texte en A1 : vert (couleur 10)
Range("A1").[Link] = 10
End Sub
Selection des Couleurs
Range("A10").Select 'Sélection de la cellule A10
[Link] = 4 'Arrière-plan de couleur 4
[Link] = 26 'Police de couleur 26
Range("A12").Activate 'Activation de la cellule A12
[Link] = 4 'Arrière-plan de couleur 4
[Link] = 26 'Police de couleur 26
INTEGRATION DES FONCTIONS EXCEL
EXERCICES
Nous allons reprendre notre exercice
Nous allons calculer en utilisant une macro avec un bouton qui sera nommé
• sur une base annuel , le salaire brut , les retenues et le salaire Net de chaque
membre. Vous introduirez 3 nouvelles colonnes « Salaire Annuel », « Retenues
Annuelles », « Salaire Net Annuel »
• La charge mensuelle (Salaire brut, retenues, Salaire net)
• Vous donnerez un titre ‘LISTE SALARIALE DE LA SOCIETE X’
• Le titre sera en gras foncé avec une fonte de 18
Vous aurez à construire sur la même feuille, un tableau qui fera ressortir les colonnes
suivantes
• Le salaire brut moyen
• Le plus petit salaire net
• Le plus grand salaire Net (Fonction Min et Max de Excel)
• Ces informations seront aussi affichées pas Message Box
Les Feuilles & Cellules : Les Variables
Les variables permettent de stocker toutes sortes de données.
Les Feuilles & Cellules : Les Variables
Les variables permettent de stocker toutes sortes de données.
Les Feuilles & Cellules : Les Variables
Exercice.
Les Feuilles & Cellules : Les Variables
Exercice.
Nous allons introduire un numeroligne qui sera comme une variable
Integer et allons la saisir en F5 et associer un Bouton à cette Macro
Les Feuilles & Cellules : Les Variables
Les variables permettent de stocker toutes sortes de données.
Les Variables: Exemples
Les Variables: TABLEAUX
Les variables permettent de stocker une seule valeur par variable, les tableaux
permettent de stocker une multitude de valeurs par tableau (leur utilisation est
proche de celle des variables).
LES CONDITIONS
Les conditions sont très utiles en programmation, elles nous serviront à effectuer
des actions en fonction de critères précis (même principe que la fonction SI).
Les opérateurs de comparaisons
LES CONDITIONS
Les conditions sont très utiles en programmation, elles nous serviront à effectuer
des actions en fonction de critères précis (même principe que la fonction SI).
LES CONDITIONS
Les conditions sont très utiles en programmation, elles nous serviront à effectuer
des actions en fonction de critères précis (même principe que la fonction SI).
• Sub Condition()
• 'Si la valeur entre parenthèses (cellule F5) est numérique (donc si la condition est vraie) alors on
exécute les instructions placées entre "Then" et "End If"
• If IsNumeric(Range("F5")) Then
•
• 'Déclaration des variables
• Dim nom As String, prenom As String, age As Integer, numeroLigne As Integer
•
• 'Valeurs des variables
• numeroLigne = Range("F5") + 1
• nom = Cells(numeroLigne, 1)
• prenom = Cells(numeroLigne, 2)
• age = Cells(numeroLigne, 3)
•
• 'Boîte de dialogue
• MsgBox nom & " " & prenom & ", " & age & " ans"
•
• End If
• End Sub
LES BOUCLES
Les boucles permettent de répéter des instructions un certain nombre de fois pour
vous éviter de devoir écrire des macros d'une longueur interminable et vous faire
gagner un temps considérable.
LES BOUCLES
Les boucles permettent de répéter des instructions un certain nombre de fois pour
vous éviter de devoir écrire des macros d'une longueur interminable et vous faire
gagner un temps considérable.
Il est possible de quitter une
boucle For prématurément
grâce à l'instruction suivante :
Exit For 'Quitter une boucle For
EXERCICES
Créer le tableau (10) en y mettant les valeurs des cellules A2 dans le
tableau (0) jusqu’au dernier poste .
On fera le meme tableau avec la boucle For / Next et en prenant le
mot « Pas » comme entier d’incrémentation
LES PROCEDURES & FONCTIONS
PUBLIC - PRIVATE
Pour le moment, toutes les procédures créées sont de type Public, elles sont
accessibles depuis tous les modules.
LANCER UNE PROCÉDURE DEPUIS UNE PROCÉDURE
Pour exécuter une procédure depuis une autre procédure, entrez simplement son
nom.
Un exemple simple sans argument:
Ici, lorsque la procédure exemple est lancée et que A1 vaut "", la
procédure avertissement est exécutée et affiche la boîte de dialogue
Procedure avec ARGUMENTS
Les arguments permettent de transmettre des valeurs d'une procédure à une
autre (car rappelez-vous que par défaut les variables ne sont pas accessibles
depuis les autres procédures).
Ici on ajoute les arguments « Cellule vide » si A1 ne contient rien et «Valeur Non
numérique » si la valeur n’est pas numérique
ARGUMENTS OPTIONNELS
Par défaut, si une procédure requiert des arguments, ceux-ci sont obligatoires
pour exécuter la procédure. Des arguments optionnels peuvent toutefois être
ajoutés après les arguments obligatoires avec Optional
ARGUMENTS OPTIONNELS
Par défaut, si une procédure requiert des arguments, ceux-ci sont obligatoires
pour exécuter la procédure. Des arguments optionnels peuvent toutefois être
ajoutés après les arguments obligatoires avec Optional
EXERCICES AVEC ARGUMENTS INITIAUX
LES BOITES DE DIALOGUES
MSGBOX
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher
une information . Ici on efface la colonne B2
LES BOITES DE DIALOGUES
MSGBOX
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher
une information . Ici on efface la colonne B2
LES BOITES DE DIALOGUES
MSGBOX
LES BOITES DE DIALOGUES
MSGBOX
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher
une information . Ici on efface la colonne B2
LES BOITES DE DIALOGUES
MSGBOX
LES BOITES DE DIALOGUES
MSGBOX AVEC BOUCLE
LES BOITES DE DIALOGUES
MSGBOX
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher
une information . Ici on efface la colonne B2
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher
une information . Ici on efface la colonne B2
LES EVENEMENTS
Comprendre les événements avec Excel VBA
Plusieurs moyens permettent d’exécuter une procédure.
• nous avons lancé nos macros en cliquant sur un bouton
• L’autre consiste à faire en sorte qu’elle le soit automatiquement à travers les
événements. Ainsi, événements sont des “déclencheurs” de macros c’est-à-dire il
est possible d’attribuer un code VBA à exécuter à un événement déclenché soit
par l’utilisateur (ouverture de Classeur, changement de valeur dans une cellule,…)
ou par Excel lui-même (actualisation des tableaux croisés dynamiques etc.).
Un événement est toujours associé à un objet ou à une collection d’objets spécifique.
Supposons un événement de niveau “feuille de calcul”, attaché à la première feuille du
classeur. Si nous voulions que cet événement se déclenche quand l’utilisateur sélectionne
de nouvelles cellules dans n’importe quelle feuille du classeur, il faudrait créer un
événement de niveau “classeur”, s’appliquant à l’ensemble de ses feuilles. La feuille de
calcul représente ici l’objet associé à l’événement. Il peut s’agir soit d’un objet existant,
créé par l’utilisateur, soit d’un objet créé par la programmation.
LES TYPES D’EVENEMENTS
Sous Excel, il existe cinq types principaux d’objets associés aux événements :
Feuille de calcul (Worksheet)
Feuille graphique (Chart)
Classeur (Workbook)
Application (instance d’Excel)
Boîte de dialogue (UserForm)
Les quatre premiers types d’objets sont spécifiques à Excel, alors que les UserForms
peuvent s’utiliser dans toutes les autres applications (Access, Word…) intégrant VBA.
À ces types d’objets, il faut ajouter ceux qui sont créés et définis par la programmation par
l’intermédiaire de modules de classe.
2 Pourquoi écrire un événement ?
Supposons que vous ayez un classeur dans lequel vous entrez des valeurs dans la colonne
A. Votre chef vous dit qu’il a besoin de savoir quand chaque nombre a été saisi. Le fait
d’entrer des données est un événement, plus précisément un événement appelé
Worksheet_Change. Vous pouvez écrire une macro qui réagisse à cet événement
LES EVENEMENTS
Comprendre les événements avec Excel VBA
Plusieurs moyens permettent d’exécuter une procédure.
• nous avons lancé nos macros en cliquant sur un bouton
• L’autre consiste à faire en sorte qu’elle le soit automatiquement à travers les
événements. Ainsi, événements sont des “déclencheurs” de macros c’est-à-dire il
est possible d’attribuer un code VBA à exécuter à un événement déclenché soit
par l’utilisateur (ouverture de Classeur, changement de valeur dans une cellule,…)
ou par Excel lui-même (actualisation des tableaux croisés dynamiques etc.).
Un événement est toujours associé à un objet ou à une collection d’objets spécifique.
Supposons un événement de niveau “feuille de calcul”, attaché à la première feuille du
classeur. Si nous voulions que cet événement se déclenche quand l’utilisateur sélectionne
de nouvelles cellules dans n’importe quelle feuille du classeur, il faudrait créer un
événement de niveau “classeur”, s’appliquant à l’ensemble de ses feuilles. La feuille de
calcul représente ici l’objet associé à l’événement. Il peut s’agir soit d’un objet existant,
créé par l’utilisateur, soit d’un objet créé par la programmation.
LES EVENEMENTS DU WORKBOOK
LES EVENEMENTS WORKBOOK
LES EVENEMENTS DU WORKSHEET
LES EVENEMENTS DU WORKSHEET
LES EVENEMENTS DU WORKSHEET
LES EVENEMENTS DU WORKSHEET
WORKSHEET_BEFORERIGHTCLICK (AU CLIC DROIT)
Cet événement se déclenche lors d'un clic droit sur la feuille :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End
SubPar exemple, ajout de la date du jour par clic droit si la cellule cliquée est dans la
colonne C :
LES FORMULAIRES DE CONTROLE
• Exploration explorerons les éléments qui vous permettront
de créer une interface personnalisée pour vos projets.
• Les UserForm (USF) servent à créer des boîtes de dialogue
personnalisées. Vous pouvez y ajouter des contrôles afin de
mettre en place une Interface utilisateur adaptée à votre
projet. Il sera ainsi possible d'effectuer des saisies depuis ce
support préformaté ou y visualiser des informations très
diversifiées (Textes, données numériques, images, vidéos...)
LES BOITES DE DIALOGUES
MSGBOX
Pour le moment, nous n'avons utilisé la boîte de dialogue MsgBox que pour afficher
une information . Ici on efface la colonne B2
LES FORMULAIRES DE CONTROLE
LES FORMULAIRES DE CONTROLE
LES BOITES DE DIALOGUES
MSGBOX
LES FORMULAIRES DE CONTRÔLE
Personalisation (F4)
• Nous allons modifier le nom (Name), le titre
(Caption), les dimensions (Height, Weight (Si
pas de propriété faire F4)
LES FORMULAIRES DE CONTRÔLE
Personalisation