La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Macros Visual Basic sur Excel

Présentations similaires


Présentation au sujet: "Macros Visual Basic sur Excel"— Transcription de la présentation:

1 Macros Visual Basic sur Excel
Apprentissage à partir d’exemples

2 Visual Basic sur Excel – Lecture d’un algorithme (macro)
Ouvrir le fichier « exemples.xls » Faire « ALT F11 » pour ouvrir l’interface visual basic. Disposer les deux fenêtres comme ci-dessous. Les algorithmes (macros) se situe dans des « modules ». Double clic sur Module1 pour voir, créer ou modifier une macro. Pour créer un module : « Insertion / Module » Une macro commence par Sub suivi d’un nom avec des parenthèses et fini par End Sub.

3 Visual Basic sur Excel – Lecture d’un algorithme (macro) - pas à pas de la Macro1
Placer le curseur dans la Macro1. Faire « F8 » : Cela exécutera la macro ligne après ligne. La première ligne est en jaune: Sheets(« Feuil1 »).Activate s’exécutera au prochain F8. Sheets(« Feuil1 »).Activate ouvre la feuille 1: tout se fera dorénavant dans cette feuille (jusqu’au prochain Sheets().Activate). Activate est une « méthode » de l’objet Sheets. On peut remarquer que la cellule ligne 2 et colonne 3 est colorié en jaune et contient le mot essai écrit en bleu…

4 Visual Basic sur Excel – Lecture d’un algorithme (macro) - pas à pas de la Macro1
Cells(2,3).Clear efface tout (contenu, attribut…) de la cellule 2ème ligne, 3ème colonne. Cells(ligne,colonne) est un objet sur lequel on peut agir par des méthodes comme clear. Au lieu de cells(2,3), on peut écrire Range(« C2 »). Range est une collection (de cellules par exemple). Range(« C2 ») est la collection de cellules constitué de la seule cellule C2. Cells(2,3).Value = « abc » permet de remplir la même cellule du texte abc. Cells(2,3).Value = 125 met le nombre 125 dans cette cellule Cells(2,3).Value = « =somme(A1:B3) » met la formule dans cette cellule Value est une « propriété » de Cells: Au contraire d’une méthode, on est obligé de préciser cette propriété ( = quelque chose) x = Cells(1,1).value : place dans la variable x le contenu de la cellule 1ère ligne, 1ère colonne

5 Visual Basic sur Excel – Lecture d’un algorithme (macro) - pas à pas de la Macro1
Cells(2,3).Interior.ColorIndex = 3 colorie l’intérieur de la cellule en rouge (3 = rouge) Interior est membre de Range (ou Cells) et ColorIndex est une propriété de Interior. Façon anglo-saxonne de dire la couleur de l’intérieur de la cellule… Le « . » traduit en quelque sorte le lien parent/enfant. Cells(2,3).Font.Size = 14 permet de régler la taille de la fonte. Font (membre de Range ou Cells) a beaucoup de propriétés: Size, Name, Bold, Italic, Underline, Shadow …

6 Visual Basic sur Excel – Lecture d’un algorithme (macro) - pas à pas de la Macro1
En tapant F8 jusqu’à la fin de la macro, on mettra (dans l’ordre) la cellule * dans la police arial, * en gras (bold) * en italic . Bold et Italic sont des propriétés booléennes : elles n’ont que 2 valeurs possibles (True ou False) On peut voir les propriétés ou méthodes des différents objets avec « l’explorateur d’objets » Rechercher la classe « Font » et voir ses propriétés :

7 Visual Basic sur Excel – Explorateur d’’objets
De même pour Range (ou Cells), on peut voir ses propriétés et ses méthodes Pour savoir à quoi cela correspond, on va voir dans l’aide. Par exemple la méthode ClearContents ClearContents efface donc le contenu de la cellule sans changer la mise en forme…

8 Visual Basic sur Excel – Explorateur d’’objets
Dans l’aide, voir la propriété ColorIndex: A quels objets s’appliquent cette propriété? Correspondance entre couleurs et nombre: On avait vu que le rouge est 3, la table ci-dessus donne d’autres correspondances… L’aide donne de nombreux exemples qui aident beaucoup à l’écriture de macro… Sur l’exemple ci-dessus, on peut se passer de Worksheets(« Sheet1 ») signifiant dans quelle feuille du classeur on agit.

9 Visual Basic sur Excel – Lecture d’un algorithme (macro) - Macro1bis
Légères modifications de la Macro1(): Emploi de With … Comparer les 2 macros. Souvent, quand on utilise l’enregistreur de macro, on voit ce genre de programmation. Il faut juste savoir que cela existe !

10 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - Une boucle FOR … NEXT
La Macro2 montre l’emploi d’une boucle FOR … NEXT et le moyen d’effacer une plage de cellules Range(Cells(2,3),Cells(10,5)).Clear va effacer le pavé de cellules allant de (2,3) à (10,5). Cela efface tout (contenu et mise en forme) For i = 2 to 10 …. Next Cette structure permet de répéter plusieurs fois les instructions comprises entre le for et le next. Ici, la variable i prend successivement (à chaque boucle) les valeurs 2, puis 3, puis 4 etc jusqu’à 10 (soit 8 valeurs: l’algorithme fera 8 boucles).

11 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - pas à pas
Exécuter la macro pas à pas (F8)… La zone C2:E10 a bien été effacée. Au prochain F8, on rentre dans la boucle FOR NEXT.

12 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - pas à pas
En plaçant la souris sur i, on peut voir la valeur de cette variable: i=2 pour cette première boucle. I sera égal à 2 jusqu’au Next. Il prendra alors la valeur 3… i 5*i 2 10 En appuyant 3 fois sur F8: on place dans la cellule (2,3) la valeur 2 (car i=2) on place dans la cellule (2,4) le texte «  x 5  = » on place dans la cellule (2,5) la valeur 10 (car 5*i = 10) On arrive à NEXT. On passe à la valeur suivante de i : i sera égal à 3 quand on retournera dans la boucle. Comme 3 < 10, on poursuit dans la boucle…

13 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - pas à pas
En plaçant la souris sur i, on peut voir la valeur de cette variable: i=3 i 5*i 2 10 3 15 En appuyant 3 fois sur F8: on place dans la cellule (3,3) la valeur 3 (car i=3) on place dans la cellule (3,4) le texte «  x 5  = » on place dans la cellule (3,5) la valeur 15 (car 5*i = 15) On arrive à NEXT. On passe à la valeur suivante de i : i sera égal à 4. Comme 4 < 10, on poursuit dans la boucle etc

14 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - pas à pas
Bon an mal an (!) on arrivera à i = 10 i 5*i 2 10 3 15 …. 50 En appuyant 3 fois sur F8: on place dans la cellule (10,3) la valeur 10 (car i=10) on place dans la cellule (10,4) le texte «  x 5  = » on place dans la cellule (10,5) la valeur 15 (car 5*i = 50) On arrive à NEXT. On passe à la valeur suivante de i : i sera égal à 11. Comme 11 > 10, on sort de la boucle.

15 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - pas à pas
On en est à i = 11: Sortie de boucle i 5*i 2 10 3 15 …. 50 11 Cells(2,3).Select : sélectionne la cellule (2,3). Et c’est fini: on a écrit la table des 5

16 Visual Basic sur Excel – Lecture d’un algorithme - Macro2 - pas à pas
Modifier cet algorithme pour obtenir la table des 8.

17 Visual Basic sur Excel – Lecture d’un algorithme - Macro2bis à construire
Créer une nouvelle macro nommée macro2bis qui écrira la table de multiplication du nombre écrit dans la cellule (3,2) comme ci-dessous. Vous aurez besoin de: Aller chercher la valeur de la cellule (3,2) et de la mettre dans une variable (a par ex): Concaténer « x », a et « = » dans une variable b (à mettre dans la colonne 4). Attention à faire partir la table à i = 1. Quand c’est fini, faites fonctionner… Lancer la macro à partir de la feuille Excel: Créer un petit rectangle, y introduire le texte « Macro2bis» et y affecter cette macro2bis (bouton droit sur le rectangle…) et faites fonctionner cette macro,

18 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
Cette macro recherche concernant l’onglet « canton »réalise un filtre: Cette feuille contient un tableau (1,1):(604,4) où chaque enregistrement est une commune de Haute-Garonne avec sa population, son canton et son arrondissement. La liste des cantons par ordre alphabétique est dans (2,6):(56,6). Une zone de liste (contrôle de formulaire) associée à cette liste de cantons. La cellule (1,7) contient le numéro du canton choisi (propriété du contrôle). La cellule (2,7) contient le nom du canton choisi (formule avec index()) Quand on choisit un canton dans cette liste, cela déclenche la macro recherche qui va chercher dans le tableau les communes de ce canton et les afficher colonnes 8 et 9 avec leur population. En plus, cela affiche la population totale du canton.

19 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On se place dans l’onglet canton.

20 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On place dans la variable nommée « cantoncherche » le contenu de la cellule (2,7), c’est-à-dire le nom du canton sélectionné.

21 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On efface tout de la plage (2,8):(50,9) – contenu et format.

22 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On initialise les variables: k = Le N° de la ligne où sera écrit les résultats (nom de la commune et sa population). Au début k sera égal à 2 puis augmentera de 1 à chaque commune trouvée. Somme = population totale.

23 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On boucle sur la variable i qui sera la ligne du tableau où on cherche le canton: On va ainsi parcourir tout le tableau à la recherche du canton «cantoncherche»

24 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On boucle sur la variable i qui sera la ligne du tableau où on cherche le canton: On va ainsi parcourir tout le tableau à la recherche du canton «cantoncherche» La variable prendra successivement les valeurs 2, 3, 4 … jusqu’à 604

25 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
Dans la variable «cantoncourant», on mettra successivement, au gré des valeurs de i: L’Isle-en-Dodon (quand i sera égal à 2), Cintegabelle (i=3), Lanta (i=4) etc.

26 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
Si les variables cantoncherche (ici Castanet-Tolosan) et cantoncourant (L’Isle-en-Dodon quand i=2) sont égales, alors i est une ligne du tableau correspondant au canton cherché. Dans notre exemple, le premier i convenable est 24: Aureville est dans le canton Castanet-Tolosan.

27 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
k=i i=i Dans ce cas (où la ligne i est convenable, ici i=24), il faut marquer le nom de la commune trouvée, ici Aureville (qui est en (i,3) dans la cellule (k,8).

28 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
k=i i=i De même, il faut marquer la population de la commune trouvée, ici 731 (qui est en (i,4) dans la cellule (k,9).

29 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
i=i Et on augmente la variable somme (population totale du canton) de la population de la commune trouvée,

30 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
k=i Et on incrémente de 1 la variable k: la prochaine ligne où on écrira la prochaine commune trouvée sera la ligne 3,

31 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On sort du test.

32 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On passe au i suivant: Voyons dans la prochaine ligne du tableau si le canton convient... Si i = 605, on sort de la boucle For … Next: On a fini notre recherche de canton

33 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
k=i Il nous reste à écrire (en passant une ligne: ligne k+1) le mot total dans la cellule (k+1,8) la population totale du canton (variable somme) dans la cellule (k+1,9)

34 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
On modifie le format de la plage correspondant au total: La police sera en arial 14 gras italique

35 Visual Basic sur Excel – Lecture d’un algorithme - Macro recherche - pas à pas
L’algorithme est fini.

36 FIN


Télécharger ppt "Macros Visual Basic sur Excel"

Présentations similaires


Annonces Google