Vous êtes sur la page 1sur 70

PROGRAMMATION EN VBA/EXCEL

Pr.  Meryem  Benyoussef  


benyoussef.meryem@gmail.com

2018  -­ 2019


INTRODUCTION

§ Le  VBA  (Visual  Basic  for  Applications)  est  un  langage  de  programmation  proche  du  
langage  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
INTRODUCTION
Avantages:
§ Automatiser  les  tâches  répétitives.
§ Contrôler  la  quasi-­totalité  de  l'IHM  (Interface  Homme-­Machine):  les  boites  de  dialogue,  les  
formulaire,  …etc.
§ Il  est  rapide:  manipuler  plusieurs  fichier  Excel  au  même  temps
§ Contrôler  une  application  à  partir  de  l’autre.

Inconvénients:
§ Nécessiter  une  application  hôte  pour  s'exécuter  comme  Excel,  Word,  Power  Point,  …etc
§ Le  recalcule,  affichage  et  graphisme  dans  Excel  peut  prendre,  dans  certain  cas,  énormément  du  
temps;;
ENVIRONNEMENT DE DÉVELOPPEMENT
Onglet  développeur:
§ Version  2010-­2013-­2016:  Cliquer  sur  Fichier  >  Options  >  Personnaliser  le  Ruban  puis  cocher  « Développeur »

§ L’onglet  « Développeur »  sera  ajouté


ENVIRONNEMENT DE DÉVELOPPEMENT
Éditeur    VBA  (VBE) est  intégré  dans  l’Excel
§ Accéder  à  l’éditeur:
§ Onglet  développeur  à Visual  Basic
§ Raccourci  clavier  :  Alt+F11
Où  écrire  le  code  VBA?
§ Dans  un  module  de  code.   Explorateur  de  projets

§ Menu  contextuel  (clic  droit)


§ Menu  Insertion

§ Il  est  possible  de  définir  plusieurs  macros  dans  un  seul  


fichier  module  comme  il  est  possible  de  faire  une  macro  
par  module.
Fenêtre  des  propriétés
PREMIÈRE MACRO
Définition  d’une  Macro:    
§ On  appelle  macro  tout  programme  introduit  dans  un  logiciel   applicatif  pour  en  étendre  les  
commandes.  
§ Elle  consiste  à  automatiser  des  tâches  en  toute  simplicité.  
§ Elle  comporte  une  suite  d’instructions  qui  vont  s’exécuter  les  unes  après  les  autres.
§ Sous  Excel  les  macros  sont  programmées  en  utilisant  le  langage  de  programmation  VBA.

Comment  définir  une  macro  ?


§ Coder  en  VBA  
§ Utiliser l’Enregistreur  de  macros:  (onglet  développeur  à Enregistrer  une  macro)
§ Un  utilitaire  d’écriture  du  code  VBA  contenu  dans  l’application
§ Générer  du  code  VBA  à  partir  d’opérations  effectuées  manuellement  sous  EXCEL.
PREMIÈRE MACRO
Exemple:
§ Utiliser  l’enregistreur  de  Macros  pour  automatiser  les  opérations  suivantes  :
§ Copier  le  contenu  de  la  cellule   « B2 »
§ Coller  ce  contenu  dans  la  cellule   « C3 »

§ Code  VBA  généré  


Sélectionner  la  cellule  « B2 »

Copier  le  contenu

Sélectionner  la  cellule  « C3 »


Coller  le  contenu
PREMIÈRE MACRO
Syntaxe  d’une  macro:  

ü Le  code  est  écrit  entre  les  mots  clé  Sub et  End  Sub
ü Les  arguments  sont  facultatifs
ü Les  commentaires  (texte  non  interprété) commencent  par  une  apostrophe  (les  commentaires  sont  en  vert)
Exécuter  une  macro
§ Dans  VBE

§ Commande  « Onglet  DéveloppeuràMacros) »

§ À  l’aide  d’un  bouton


PREMIÈRE MACRO
Soit  le  fichier  Excel  suivant:
Exercice  1  :  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

Étapes  à  suivre
§ Cliquer  sur  « Enregistrer  une  macro »  puis  OK
§ Exécuter  les  opération  sans  interruption
§ Cliquer  sur  « Arrêter  l’enregistrement »

§ Afficher  le  code  VBA  généré  dans  l’éditeur  VBE:


§ Onglet  Développer >  Visual  Basic    OU « Alt+F11 »
PREMIÈRE MACRO

Exercice  2  :  Exécuter  la  macro  à  l’aide  d’un  bouton


§ Créer  un  bouton  lié  au  macro  de  l’exercice  1
§ Onglet  Développeur  >  Insérer  >  Bouton  (de  la  barre  formulaire)  è Tracer  votre  bouton  >  
Sélectionner  votre  macro  >  Ok

§ Remplissez  la  colonne  B  et  D  et  cliquer  sur  le  bouton  pour  exécuter  la  macro  
PREMIÈRE MACRO
Avantages  de  l’enregistreur  de  macros
§ Ne  nécessite  pas  de  connaissances  préalable  du  langage  VBA
§ Aide  à  améliorer  les  connaissance  en  langage  VBA  pour  les  débutants

Limites  de  l’enregistreur  de  macros


§ Le  code  généré  ne  satisfait  pas  toujours  les  besoins
§ L’enregistreur  de  macro  ne  génère  que  des  procédures  sans  arguments.

è Ecrire  notre  propre  code    VBA


PARTIE 1

ACCÈS AUX
FONCTIONNALITÉS D’EXCEL
DEPUIS VBA
OBJETS
Modèle  d’objets  de  l’application:
§ Les  applications  de  MICROSOFT  OFFICE  sont  organisés  en  modèle  d’objets
§ Chaque  application  possède  un  ensemble  d’objets  clairement  définis,  organisés  en  fonction  des  relations  qui  les  
unissent.  
Les  objets  en  Excel:
§ Les  objets  manipulés  sont  des  classeurs,  des  feuilles  de  calcul,  des  plages,  des  cellules,  …
§ VBA  est  un  langage  de  programmation  orienté  objet.
§ Un  objet  est  une  entité  nommée  possédant  des  caractères  propres  (propriétés)  et  actions  propres  (méthodes).
§ Exemples  d’objets:
ü Excel est  un  objet  Application
ü Un  classeur est  un  objet  Workbook
ü Une  feuille de  calcul  est  un  objet  Worksheet
ü Une  plage de  cellules  est  un  objet  Range
ACCÈS AUX OBJETS
Sélection  absolue des  cellules:  Range

§ Sélectionner  une  cellule:  Cells

§ Sélectionner  des  cellules:

§ Sélectionner  des  lignes:  Rows

§ Sélectionner  des  colonnes:  Collumns


ACCÈS AUX OBJETS
Sélection  relative  des  cellules:  (relative  à  la  cellule  d’origine)  :  Offset
§ Exemple:

ü Relative  à  une  cellule  prédéfinit

ü Relative  à  la  cellule  active  :  ActiveCell

ü Relative  à  une  plage  de  cellules  actives:  Selection


ACCÈS AUX OBJETS
Remarque:  Les  sélections  précédentes  sont  exécutée  par  rapport  à  la  feuille  active

Sélection  des  feuilles  de  calculs:  Sheets


§ Exemple:  

Sélection  des  classeurs:  Workbooks


§ Exemple:
PROPRIÉTÉS ET MÉTHODES DES OBJETS
§ Pour  chaque  objet,  est  défini  un  ensemble  des  propriétés  et  des  méthodes,  auxquelles  on  accède  au  moyen  des  
instructions  :
§ Syntaxe:                            <Objet>.<Propriété>                                                      <Objet>.<Méthode>            

§ Les  propriétés  représentent  les  caractéristiques  de  l’objet.


§ Les  méthodes  sont  les  actions  rattachées  à  l’objet  en  question.

§ On  peut  afficher  la  liste  des  possibilités  que  l'on  peut  associer  à  un  objet,  ajoutez  un  point  à  l’objet:
PROPRIÉTÉS ET MÉTHODES DES OBJETS
Exemple  de  propriétés:
§ Propriété Value  :  désigner  la  valeur  de  l’objet  (optionnelle)

§ Propriété Font :  La  mise  en  forme  du  texte

§ Propriété Borders:  Ajouter  des  bordures


PROPRIÉTÉS ET MÉTHODES DES OBJETS

Exercice  3 :  

Écrire  manuellement    un  code  VBA  effectuant    les  opérations  suivantes  


§ Affecter  la  valeur  « test »  aux  cellules  B2,  C4  et  E3    de  la  feuille  de  calcul  « Feuil3 »  du  « classeur1 »
§ Mettre  le  texte  en  gras,    de  la  colonne  B  de  la  feuille  de  calcul  « Feuil3 »  du  « classeur1 »
§ Affecter  la  valeur  « test2 »  à  la  cellule  située  3  ligne  plus  bas  et  1  colonne  à  droite  de  la  cellule  « A2 »  
de  la  feuille  de  calcul  « Feuil3 »  du  « classeur1 »  

§ Solution:
PROPRIÉTÉS ET MÉTHODES DES OBJETS
LES  COULEURS   :    
Il  y  a  deux  possibilité  pour  attribuer  une  couleur:

§ Propriété ColorIndex:    56  couleurs  disponibles


§ Propriété Color:   permet  d’utiliser  n’importe  quelle  couleur

Exemple  :  Changer  la  couleur  d’un  texte


Méthode  1  :  avec  ColorIndex Méthode  2  :  avec  Color

Remarque:  Toute  couleur  est  un  mélange  des  nuances  des  couleurs  Rouge,  Verte  et  Bleu
è RGB(nuance  Rouge,  nuance  Verte,  nuance  Bleu)    
PROPRIÉTÉS ET MÉTHODES DES OBJETS
Exercice  4  :  Les  couleurs:  
But  de  l’exercice:  Colorier  les  bordures  « Borders »  ,  Colorier  le  fond  des  cellules  « Interior »
Créer  une  macro  pour  chaque  question:
§ Question  1:    Créer  une  macro  qui  donne  une  couleur  à  la  bordure  de  la  cellule  active  (avec  ActiveCell)

§ Question  2:  
§ Créer  une  macro  qui  va  ajouter  une  bordure aux  cellules  sélectionnées  (avec  Selection)
§ Modifier  l’épaisseur  de  cette  bordure
§ Donner  une  couleur  à  cette  bordure

§ Question  3:    Créer  une  macro  qui  colorie  le  fond des  cellules  sélectionnées  (utiliser  Selection)  
PARTIE 2

VERS LA PROGRAMMATION
AVANCÉE
VARIABLES
q Une variable permet  de  stocker  une  valeur  pouvant  être  modifiée  au  cours  de  l’exécution  d’un  
programme.
Syntaxe:                        Dim nom_variable As Type_de_donnee

q Un  tableau:  permet  de  stocker  une  multitude  de  valeurs


Syntaxe:                        Dim nom_variable(cases) As Type_de_donnee
Dim nom_variable(Lignes,Colonnes) As Type_de_donnee

q Une  constante:  permet  de  stocker  une  valeur  qu'on  ne  peut  pas  modifier:
Syntaxe:                        Const nom_constante As Type_de_donnee =  valeur

q Une  structure  de  donnée:  créer  notre  propre  type  de  donnée
Syntaxe:                        Type nom_structure
Ensemble  des  attributs
End  Type
VARIABLES
Les  types  de  variables:
Type Nom Détails Symbole
Byte Nombre entier de 0 à 255.

Integer Nombre entier de -32768 à 32767 %

Long Nombre entier de - 2147483648 à 2147483647 &


Numériques
Currency Nombre à décimale fixe de -922337203685477.5808 à 922337203685477.5807 @

Single Nombre à virgule flottante de -3.402823E38 à 3.402823E38. !


Nombre à virgule flottante de -1.79769313486232D308 à
Double #
1.79769313486232D308.
Texte String Texte. $
Date Date Date et heure.
Booléen Boolean True (vrai) ou False (faux).
Objet Object Objet Microsoft.
Tous Variant Tout type de données (type par défaut si la variable n'est pas déclarée).
VARIABLES
Exemples  de  variable  avec  différents  types:

ATTENTION:  
La  numérotation  des  cases  commence  de  0

Déclaration  d’une  variable  en  utilisant  le  symbole

=        
VARIABLES
La  porté  des  variables:
La  portée  d’une  variable  définit  quelles  procédures  (macros)  ou  fonctions  peuvent  utiliser  cette  variable.

Variable  local:  
Une  Variable  déclarée  à  l'intérieur  d'une  procédure  /  fonction  ne  sera  utilisable  qu'à  l'intérieur  de  celle-­ci.

Variable  accessible  à  l’ensemble  des  procédures  et  des  fonctions  d’un  module:
Elle  doit  être  déclarée  au  haut  du  module  à  l’extérieur  de  toute  procédure  et  de  toute  fonction.
Exemple:  

Variable  accessible  à  l’ensemble  des  modules  d’un  projet


Elle  doit  être  déclarée  au  début  d’un  module  à  l’extérieur  de  toute  procédure  et  de  toute  fonction,  à
l’aide  du  mot  clé  Public  (au  lieu  du  Dim).
VARIABLES
Exercice  1:  
Entrer  un  nom  dans  la  cellule  A1,  deux  entiers  (0-­20)  dans  les  cellules  A2  et  A3.
1.  Récupérer  le  nom  et  les  notes  dans  des  variables
2.  Calculer  la  moyenne  des  deux  entiers
3.  Afficher  le  résultats  dans  une  boite  de  dialogue
Remarque:  Pour  afficher  la  valeur  d’une  variable:  MsgBox nom_variable (utiliser  &  pour  la  concaténation)  

Résultat:

Solution:
INSTRUCTION DE CONTRÔLE
Les  instructions  de  contrôle  servent  à  effectuer  des  actions  en  fonction  de  critères  (conditions)  précis
Syntaxe:

S’il  y  a  plusieurs  instruction  ElseIf,  il  est  possible  de  gérer  les  conditions  par  Select  case
INSTRUCTION DE CONTRÔLE
Opérateurs  de  comparaison
Opérateur  de  comparaison Signification
= Égalité  
> Supérieur  à
< Inférieur  à
>= Supérieur  ou  égale  à
<= Inférieur  ou  égale à
<> Différent  de
Opérateur  pour  des  conditions  multiples:    AND  et  OR
ü L’opérateur  AND exige  que  toutes  les  conditions  soient  vrai
ü L’opérateur  OR exige  au  moins  une  des  conditions  soit  vrai
Exemple:    a  =  4  ,  b  =  2
INSTRUCTION DE CONTRÔLE
Quelques  fonctions  utiles:

ü IsEmpty()  
ü IsNumeric()
ü IsDate()
ü …

La  fonction VarType :  qui  retourne  le  type  de  la  variable


INSTRUCTION DE CONTRÔLE
Exercice  2:  
Ecrire  une  procédure  (macro)  qui  considère  les  valeurs  des  cellules  A1  et  A2
1.  S’assurer  que  que  les  cellules  ne  sont  pas  vides    (IsEmpty)  et  que  les  valeurs  sont  numériques  (IsNumeric)
2.  Écrire  dans  la  cellule  A3  :
§ « POS »  si  le  produit  des  deux  cellules  est  positif  ou  nul
§ « NEG »  sinon
Remarque:    Ne  calculez  pas  le  produit

Solution:
BOUCLES
Les  boucles  permettent  de  répéter  des  instructions  un  certain  nombre  de  fois,  ce  qui  peut  être  un  gain  de  temps  
considérable.

VBA  fournit  deux  structures  pour  répéter  en  boucle  les  mêmes  instructions  :  
ü l’instruction  For...Next
ü l’instruction  Do...Loop
BOUCLES : DO … LOOP
La  boucle  Do...Loop  est  utilisée  lorsque  l’on  veut  que  la  répétition  des  instructions  s’arrête  quand  une  condition  
donnée  est  vérifiée.  
On  distingue  plusieurs  syntaxes  possibles:  

Avec  ces  deux  boucles,  les  instructions  peuvent  ne  jamais  être  exécutées.  Pour  qu’elles  soient
exécutées  au  moins  une  fois,  on  peut  utiliser  l’une  des  deux  syntaxes  suivantes  :
BOUCLES : DO … LOOP
Exemples:
Ø Avec  la  boucle      :      Do  …  While /      While …  Wend

§ Tant  que  la  condition  est  vraie,  les  instructions  sont  exécutées  
en  boucle

Ø Avec  la  boucle  Do  …  Until

Ø Tant  que  la  condition  est  fausse,  les  instructions  sont  exécutées  
en  boucle

ATTENTION:  attention  à  ne  pas  créer  une  boucle  infinie  è il  ne  faut  pas  oublier  d’incrémenter  le  compteur
BOUCLES : FOR … NEXT
La  boucle  For...  Next est  utilisée  lorsque  l’on  connait  à  l’avance  le  nombre  de  fois  où  l’on  veut  que  les  instructions  
soient  répétées.

Syntaxe:

Remarque:  
ü Par  défaut,  le  pas  d’incrémentation  de  i  est  1.  Si  on  veut  changer  le  pas,  il  faut  utilisé  le  mot-­clé  Step.

Exemple:
BOUCLES : FOR … NEXT
La  boucle  For  Each...Next :  permet  d’accéder  aux  éléments  d’un  tableau  ou  les  objets  d’une  collection.

Syntaxe:

Exemples:      
ü Afficher  les  éléments  d’un  tableau  dans  des  boites  de  dialogue
ü Afficher  le  nom  des  feuilles  du  classeur  dans  des  boites  de  dialogue
BOUCLES : FOR … NEXT
La  boucle  For  Each...Next
Exercice  3:
1. Considérer  la  plage  des  cellules  de  A1  à  C5
2. Colorier  le  fond  chaque  cellule  de  cette  plage  avec  une  couleur  (ColorIndex)    ET  écrire  dans  la  cellule  la  valeur  
de  la  couleur  utilisée
Rappel:          ActiveCell.Interior.ColorIndex =  1

Résultat

Solution:  
BOUCLES
Remarque:
Quitter  une  boucle  prématurément:

Il  est  possible  de  quitter  une  boucle For prématurément  grâce  à  l'instruction  suivante  :  Exit  For
Il  est  possible  de  quitter  une  boucle Do..Loop prématurément  grâce  à  l'instruction  suivante  :  Exit  Do
FONCTIONS
Une  fonction  est  un  bloc  de  code  regrouper  par  un  nom  et  qui  retourne  une  valeur  à  la  fin  de  l’exécution.  On  peut  
passer  aucun,  un  ou  plusieurs  arguments  à  une  fonction.

Function Nom_Fonction(argument_1,  ...  ,argument_n)


Syntaxe:       ’  Instructions
ü Les  arguments  sont  facultatifs Nom_Fonction =  valeur_de_retour
End  Function

Exemple:
Une  fonction  qui  calcul  le  carre  d’un  nombre
è Spécifier  le  type  de  l’argument  et/ou  du  retour  è

Appeler  la  fonction  dans  une  macro  (procédure)

q Les  fonctions  peuvent  être  utilisées  sur  la  feuille  comme  n'importe  quelle  fonction  Excel.
FONCTIONS
Fonction  Privée  et  publique

q Toutes  les  procédures  et  fonctions  sont  déclarées  par  défaut  publique  « public ».

q Si  une  fonction  /procédure  est  publique,  alors  elle  est  accessible  dans  tous  les  modules  de  
l'application.

q Si  une  fonction  /  procédure  est  privée  « private »,  alors  elle  n’est  accessible  qu’à  l’intérieur  du  
module.
FONCTIONS
Exercice  4:

1. Écrire  une  fonction  qui  prend  en  paramètre  les  références  de  cellules  (lignes  et  colonne)  et  calcule  la  
moyenne  des  valeurs  sur  cette  plage.

Exemple:    ligneDebut=3    ,    ligneFin=7      ,  col=2

Solution:
FONCTIONS
Exercice  4  (suite):

1. Solution  de  1:

2. Écrire  une  fonction  utilisant  la  fonction  de  la  question  précédente  et  permettant  de  calculer  l'écart  
type  sur  une  plage  de  données.
$ %
Rappel:        𝜎" = ∑).$(𝑥) −𝑚)-
%

Astuce:  Utiliser  la  fonction  sqr pour  calculer  la  racine  carrée    :  sqr(x)  = 𝑥

3. Écrire  une  procédure  pour  tester  les  deux  fonctions  précédentes.


ü Demander  à  l’utilisateur  d’entrer  la  valeur  de  ligne1,  ligne2  et  col
Exemple  :    ligne  =  InputBox( ’’  Entrer  l’indice  de  la  ligne  ")
ü Afficher  le  résultat  dans  MsgBox
FONCTIONS
Exercice  4  (suite):

2. Solution  de  2:  

3. Solution  de  3:  


FONCTIONS
Exercice  5:

1. Proposer  une  fonction  qui  renvoie  vrai  si  le  nombre  entier  passé  en  paramètre  est  un  nombre  premier.
Remarque:  
ü Un  nombre  est  premier  s’il  n’est  divisible  que  par  1  et  lui  même
ü 0  et  1  ne  sont  pas  premier
ü Le  reste  de  la  division  de  a  par  b  è r  =  a  mod b

Solution:  

2. En  déduire  une  fonction  permettant  d'obtenir  la  liste  des  n premiers  nombres  premiers.  (retourner  un  tableau)
3. Écrire  une  procédure  qui  :
ü Demande  à  l’utilisateur  d’entrer  le  nombre  n
ü Affiche  les  éléments  du  tableau  dans  des  cellules
FONCTIONS
Exercice  5  (suite):

2. Solution  de  2:  

3. Solution  de  3:  


PARTIE 3

EXCEL
VBA ET L’IHM

IHM:  Interface  Homme  Machine


BOITES DE DIALOGUE : MSGBOX
La  fonction  MsgBox
ü affiche  un  message  dans  une  boîte  de  dialogue,  
ü attend  que  l'utilisateur  clique  sur  un  bouton,  
ü puis  renvoie  un  entier  indiquant  le  bouton  choisi  par  l'utilisateur.

Syntaxe: MsgBox (  [Texte]  ,  [Boutons]  ,  [Titre]  )


ü Texte:  texte  de  la  boite  du  dialogue  (Obligatoire)
ü Boutons:  choix  des  boutons
ü Titre:  titre  de  la  fenêtre  

Exemple:
BOITES DE DIALOGUE : MSGBOX
Les  différentes  possibilités  pour  
l’argument  [Boutons]  de  MsgBox
BOITES DE DIALOGUE : MSGBOX
Exemples:
• Choisir  les  boutons

• Choisir  l’icône

• Choisir  les  boutons  et  l’icône


BOITES DE DIALOGUE : MSGBOX
Les  valeurs  renvoyées  par  MsgBox :  
Lorsque  l’utilisateur  clique  sur  un  bouton,  MsgBox retour  un  nombre  entier,  qui  est  égale  à  :  
BOITES DE DIALOGUE : MSGBOX
Exemples:  
• Supprimer  la  contenue  de  la  cellule  B2  après  confirmation  de  l’utilisateur

• Créer  une  boucle  qui  demande  à  l’utilisateur  s’il  aime  Excel  ou  pas,  la  seul  réponse  acceptée  est  « oui »
BOITES DE DIALOGUE : INPUTBOX
La  fonction  InputBox
ü demande  à  l’utilisateur  de  saisir  une  valeur,  
ü renvoie  le  contenu  de  la  zone  de  texte  sous  la  forme  d'une  chaîne  de  caractère.  

Syntaxe: InputBox (  [Texte]  ,  [Titre]  ,  [Valeur  par  défaut]  )


ü Texte:  texte  de  la  boite  du  dialogue  (Obligatoire)
ü Titre:  titre  de  la  fenêtre  
ü Valeur  par  défaut:  une  valeur  par  défaut  affichée  dans  la  zone  de  texte

Exemple:
FORMULAIRES
§ C’est  un  objet  Excel  qui  facilite  la  saisie,  la  manipulation  et  extraction  des  données  d’une  ou  plusieurs  feuille  
Excel.

§ C’est  un  intermédiaire  entre  l’utilisateur  et  le  classeur

§ Ils  peuvent  être  utilisés  pour  contrôler  les  données  avant  les  enregistrées  dans  un  classeur  ou  une  base  de  
données.

§ Il  est  construit  par  des  éléments  qu’on  appel  contrôleur:  textBox,  case  à  cocher,  …

§ Il  manipule  le  code  VBA.


FORMULAIRES: USERFORM
§ Ajouter  un  « Userform »:  insertion  >  UserForm

§ La  fenêtre  de  l'UserForm ainsi  que  la  "Boîte  à  outils"  apparaissent  :


FORMULAIRES: USERFORM
§ Ajouter  du  code  VBA  à  votre  formulaire:    bouton  droit  sur  votre  formulaire  >  cliquer  sur  code

Quelques  méthodes  et  propriétés  à  appliquer  au  « UserForm »


§ Afficher  le  « UserForm »
§ Modale (Par  défaut)  :  L’utilisateur  ne  peut  pas  accéder  au  classeur  :    NomDuUserForm.Show
§ Non  Modale:  L’utilisateur  a  toujours  l’accès  au  classeur  :    
ü NomDuUserForm.Show 0 OU  NomDuUserForm.Show false  OU  NomDuUserForm.Show vbMobless

§ Masquer  le  « UserForm »  :  NomDuUserForm.Hide


§ Fermer  le  « UserForm »  :  Unload NomDuUserForm
FORMULAIRES: CONTRÔLES
La  zone  de  liste  (ListBox)
§ Il  permet  à  l’utilisateur  de  choisir  une  ou  plusieurs  valeur.
Quelques  méthodes:
Ø NomDeLaListe.AddItem valeur      :  Pour  ajouter  une  valeur  à  la  liste
Ø NomDeLaListe.ListIndex : Retourne  l’indice  de  la  valeur  sélectionnée  par  l’utilisateur
§ Si   NomDeLaListe.ListIndex=-­1  :  aucune  valeur  n’est  sélectionnée
§ Le  premier  élément  dans  la  liste  se  trouve  dans  la  position  0,  le  deuxième  1  ,  …
Ø NomDeLaListe.ListCount:  Retourne  le  nombre  d’ élément  contenu  dans  la  liste
Ø NomDeLaListe.List():  Retourne  la  liste  des  valeurs  dans  la  liste
Ø NomDeLaListe.Remove(i):  Supprime  l’élément  i  de  la  liste

La  liste  déroulante  (ComboBox)


§ Il  permet  à  l’utilisateur  de  choisir  une  seule  valeur.
§ Les  méthodes  et  propriétés  du  ComboBox et  ListBox sont  presque  identique
FORMULAIRES: CONTRÔLES
Les  cases  à  cocher  (CheckBox)
§ Il  permet  à  l’utilisateur  d’activer  ou  de  désactiver  des  options.  
§ Le  contrôle  présente  deux  états  :activé  (coché  :  true)  et  désactivé  (non  coché  :  false).  

Les  boutons  d'option  (OptionButton)


§ Ils  permettent  à  l’utilisateur  de  faire  un  choix  parmi  plusieurs.
§ Si  l’OB  est  coché  alors  sa  valeur  est  égale  à  « true »,  sinon  égale  à  « false ».
FORMULAIRES
§ Très  recommandé  :  Renommer    votre  « Userform »  et  les  contrôles  

Les  évènements
§ À  partir  l'éditeur  de  macros  du  « UserForm »,  on  trouve:
§ La  liste  des  différents  contrôles  ainsi  que  l'UserForm.
§ La  liste  des  événements  disponibles
FORMULAIRES
Exemple:
§ Créer  le  formulaire  suivant,  et  ajouter  un  événement  pour  que  la  valeur  entrée  
sera  enregistrée  dans  la  cellule  A1

§ ÉTAPES:
1. Créer  le  formulaire  en  glissant  les  contrôles  (label,  textBox,  CommandBouton)    
de  la  boite  à  outils

2. Bouton  droit  sur  votre  formulaire  >  cliquer  sur  code


3. Liste  Contrôles:  Cliquer  sur  le  contrôle  de  votre  bouton
4. Liste  Événements:  Choisir  l’événement  click

5. Ajouter  votre  code  


FORMULAIRES
Exercice  1:
§ Une  école  cherche  à  automatiser  l’inscription  des  nouveaux  étudiants.
§ Le  gérant  a  besoin  de  stocker  les  renseignements  concernant
§ Les  étudiants:  Nom,  Prénom,  filière,  Interne/externe
§ Le  payement  des  frais  d’inscription  (les  frais  d’inscription   dépend  de  l’étudiants  si  il  est  interne  
ou  externe);;
§ Interne  :  900  Dh
§ Externe  :  500  Dh
FORMULAIRES
Exercice  1  (suite):
Nous  allons  dans  l’ordre  suivant:
1. Créer  le  formulaire,  y  placer  les  contrôles  nécessaires  et  nommer  ces  contrôles;;
2. Ecrire  un  code  qui  initialisera  le  formulaire.  Mettre,  par  exemple,  dans  les  listes  les  différents  choix  
possibles;;
3. Écrire  une  fonction  qui  teste  la  validité  des  données  du  formulaire  remplis  par  l’utilisateur
ü Le  type  des  données
ü Vérifier  que  l’utilisateur  à  rempli  tous  les  champs
4. Ecrire  un  code  qui  envoie  les  données  du  formulaire  dans  une  feuille  Excel,  dans  un  tableau  qui  
nous  servira  de  base  de  données.
FORMULAIRES
Exercice  1  (suite):
1. Créer  le  formulaire,  y  placer  les  contrôles  nécessaires  et  nommer  ces  contrôles;;
FORMULAIRES
Exercice  1  (suite):
2. Écrire  un  code  qui  initialisera  le  formulaire.  
ü À l’aide  de  la  procédure  évènementielle:  UserForm_Initialize()
UserForm è Initialize

§ Définir  le  prix  à  payer  


ü À  l’aide  des  procédures  évènementielles  
des  OptionButton è click
FORMULAIRES
Exercice  1  (suite):
2. Écrire  un  code  qui  initialisera  le  formulaire.  

Solution:
FORMULAIRES
Exercice  1  (suite):
3. Écrire  une  fonction  qui  teste  la  validité  des  données  du  formulaire  remplis  par  l’utilisateur  en  
retournant  True ou  False
ü Le  type  des  données
ü Vérifier  que  l’utilisateur  a  rempli  tous  les  champs
ü En  cas  d’erreur,  mettre  le  label  en  rouge  :  NomDuLabel.ForeColor =  RGB(255,  0,  0)
FORMULAIRES
Remarque:  Opérateur « like »
§ L’opérateur « like »  est  utilisé  pour  comparer  deux  chaines  de  caractères.

§ Le  caractère * peut  remplacer  :  aucun,  un  ou  plusieurs  caractères  


§ Le  caractère # peut  remplacer  un  caractère  numérique  de  0  à  9  
§ Le  caractère ? peut  remplacer  un  caractère  quelconque  
String  LIKE  pattern :

pattern
[abc] a  ou  b  ou    c
[a-­d] a ou  b  ou  c  ou  d
[369] 3  ou  6  ou  9
[2-­5] 2  ou  3  ou  4  ou    5
[!a2c] Tout caractère  sauf  a  et  2  et  c
[?*#] ?  ou  *  ou  #
FORMULAIRES
Exercice:

Solution  de  3:


FORMULAIRES
Exercice  1  (suite):
4. Écrire  un  code  qui  envoie  les  données  du  formulaire  dans  une  feuille  Excel

Solution:
FORMULAIRES
Exercice  2:
1. Créer  le  formulaire,  y  placer  les  contrôles  nécessaires  et  nommer  ces  contrôles;;
Remplir  le  formulaire  à  partir  de  la  feuille  de  calcul:
2. Ecrire  un  code  qui  initialisera  le  formulaire:  Remplissez  la  liste  des  pays
3. Ecrire  un  code  qui:  à  chaque  changement  de  pays,  la  liste  des  villes   de  ce  pays  s’affiche
4. Ecrire  un  code  qui affiche  la  ville  choisie  par  l’utilisateur
FORMULAIRES
Exercice  2  (suite):
1. Créer  le  formulaire,  y  placer  les  contrôles  nécessaires  et  nommer  ces  contrôles;;
Remplir  le  formulaire  à  partir  de  la  feuille  de  calcul:
2. Ecrire  un  code  qui  initialisera  le  formulaire:  Remplissez  la  liste  des  pays
3. Ecrire  un  code  qui:  à  chaque  changement  de  pays,  la  liste  des  villes   de  ce  pays  s’affiche
4. Ecrire  un  code  qui affiche  la  ville  choisie  par  l’utilisateur

Vous aimerez peut-être aussi