c- Menu personnalisé
PROGRAMMATION D'EXCEL (1)
On peut aussi créer un menu personnalisé :
Comme on l'a vu, Excel est un tableur très puissant qui dispose d'un très grand nombre de
fonctions (mathématiques, manipulation de texte, mise en forme ...); il peut aussi être 1. Cliquer avec le bouton droit de la souris sur la zone de menu (partie grise) , puis
programmé pour réaliser des tâches répétitives, ce qui est l'objet de cette étude. choisir Personnaliser, une boite de dialogue apparaît.
2. Cliquer sur l’onglet Commandes puis sur la « catégorie » Nouveau Menu.
I- MACRO-COMMANDES 3. Faire glisser l’expression « Nouveau Menu » de la fenêtre « Commandes : » vers le
menu en haut de l’écran (à droite de « ? »).
4. Faire un clic droit sur ce nouveau menu, lui choisir le nom Menu perso puis cliquer
Ce sont des commandes regroupant plusieurs actions élémentaires; si, par exemple, on « Nouveau Groupe ».
utilise souvent des titres écrits en police Times New Roman, de taille 20, caractères gras 5. Cliquer dans la fenêtre « catégorie » Macros puis faire glisser « commandes »
et de couleur rouge, il est fastidieux de devoir répéter la même séquence d'opérations à Élément de menu personnalisé dans le carré qui va apparaître lorsque la souris
chaque fois. On va voir sur cet exemple comment créer une nouvelle commande et passera sur «Menu perso » au menu.
comment l'utiliser. 6. Sélectionner ce nouveau menu avec le bouton droit et lui donner le nom de gras
rouge en lui affectant la macro Macro1.
1- Création de la macro (enregistrement) 7. Fermer la fenêtre de personnalisation.
a- Enregistrement et test de la Macro
Ecrire un texte dans une cellule quelconque, valider, la sélectionner mais au lieu de ctrl
Aller au menu et choisir Outils/Macro/Nouvelle macro... puis cliquer sur OK (elle a aller au menu Menu perso /Gras rouge.
s'appellera Macro1): un nouveau bouton apparaît qui servira à indiquer que Exercice: créer de la même façon Macro2 qui imposera l'écriture en Arial, Normal, 10,
l'enregistrement est terminé; en attendant, tout ce qu'on fera sera transformé en noir sera accessible par Ctrl e et au menu Menu perso /Police normale.
programme.
Faire vérifier par le professeur.
Réaliser les opérations permettant d'obtenir le résultat voulu (Times New Roman gras
20 rouge) puis cliquer sur le bouton de fin. 2- Analyse du programme
Tester la macro: écrire une phrase dans une cellule, valider, sélectionner cette cellule
puis exécuter Outils/Macro/Macros..., choisir Macro1 et Exécuter. Cette nouvelle Exécuter Outils/ Macro/Macros... et sélectionner Macro1 puis cliquer sur Modifier.
commande fonctionne-t-elle ? .................. .
Le programme en Visual Basic correspondant aux macros apparaît alors. Il peut être ainsi
b- Touche de raccourci amélioré, transformé... On remarque plusieurs points sur sa structure:
On va maintenant la rendre facile d'accès grâce à une touche de raccourci: exécuter Des commentaires peuvent être écrits, ils doivent être précédés d'une apostrophe.
Outils/ Macro/Macros... et sélectionner Macro1 puis cliquer Options: écrire a dans le La macro correspond à une procédure correspondant au mot clef sub.
cadre à côté de Ctrl+ et valider OK puis Fermer. Un système d'indentation, c'est à dire de décalages permet de mettre en évidence des
blocs.
Ecrire un texte dans une cellule quelconque, valider, la sélectionner puis faire CTRL a, Ce programme manipule des objets eux-mêmes composés d'autres objets et de
la macro a-t-elle été exécutée ? .............. . propriétés.
Le contenu d'un objet (autre objet ou propriété) est nommé en faisant précéder son nom
Faire vérifier par le professeur. du nom de son propriétaire et d'un point. Ex Gertrude.Cheveux.Couleur indique la
couleur (propriété) des cheveux (objet) de Gertrude (objet). (Ici Selection.Font.Size
indique la taille (propriété) de la police (objet) de la sélection).
2nd 12 MPI 2001 / 2002 Page 1 / 3 Programmation d'Excel (1)
Imprimer la page puis encadrer les blocs, souligner les mots clefs, entourer les objets et
les propriétés de deux couleurs différentes. II- LES BARRES D'OUTILS
Faire vérifier par le professeur. Cette fois on va créer une barre d'outils de façon à disposer de boutons qui ne soient pas
liés à une feuille comme ceux que l'on vient de construire, mais qui soient toujours
On va maintenant simplifier ces programmes: chaque macro est ici composée de plusieurs disponibles.
blocs qui font presque la même chose car l'enregistrement a pratiquement créé un bloc
par action ! On peut donc regrouper toutes ces actions. Attention ! il est interdit de modifier les barres d'outils d'Excel !
Effacer le premier bloc With ... End With dans Macro1. Cliquer avec le bouton droit de la souris sur la zone de menu (partie grise) , puis choisir
Supprimer des lignes de code, dans l'autre bloc de façon à ce que la macro fonctionne Personnaliser, une boite de dialogue apparaît : cliquer sur l’onglet Barres d’outil puis
toujours. sur Nouvelle ; donner le nom Menu perso à cette barre et cliquer sur OK. Une barre vide
apparaît.
Faire vérifier par le professeur. Cliquer sur l’onglet Commandes et choisir la catégorie Graphique, puis cliquer sur le
2- Création d'une macro (sans enregistrement). bouton Nuage de points et le faire glisser dans notre barre d'outils; elle est déjà
moins vide!
Aller à la fin de la page Module1 et taper les lignes suivantes:
Choisir maintenant la catégorie Macros ; choisir le smily (sourire jaune) et le faire glisser
' Ma Macro à moi dans la barre: comme il n'a pas de fonction rattachée, d’un clic droit il faut lui affecter
' une macro (sélectionner Macro1).
Sub essai()
Cliquer avec le bouton droit sur ce nouveau bouton de la barre d'outil et choisir Modifier
With Selection.Font
l'image d'un bouton dans le menu : on peut ainsi faire un choix. Ou bien, choisir
.Name = "WingDings"
Editeur de bouton, faire un dessin et valider. Fermer la fenêtre de personnalisation et
.Size = 30
tester les fonctions de cette nouvelle barre d'outil (vérifier en particulier que, comme les
.Bold = True
autres, elle peut être placée en haut de la fenêtre).
End With
End Sub
Faire vérifier par le professeur.
Retourner à la feuil1 et tester cette nouvelle macro appelée essai ; la rajouter au menu
Menu perso.
Faire vérifier par le professeur.
2nd 12 MPI 2001 / 2002 Page 2 / 3 Programmation d'Excel (1)
III BREVES NOTIONS DE PROGRAMMATION
Une fonction est déclarée par le mot clef Function et se termine par End Function et,
On étudie dans ce paragraphe quelques rudiments de Visual Basic qui peuvent permettre contrairement à la procédure elle donne un résultat. Par exemple:
d'améliorer les macros réalisées ; il ne s'agit pas d'un véritable cours de programmation
qui prendrait des semaines et serait loin du but de cette option !
Argument
On a vu Selection et Font qui sont des objets qui ont des noms très clairs, ce qui n'est
pas toujours le cas ; de plus le nombre de ces objets est très grand et il est quasi Function degre(x)
impossible de les retenir tous ! C'est pourquoi, comme on l'a déjà vu, on utilisera souvent degre = x / 3.14159265 * 180 Résultat
l'enregistreur de macros pour trouver quels sont ces objets. End Function
Cette notion d'objet est très importante puisque c'est grâce à eux que l'on peut modifier
les propriétés de cellules, de feuilles, ... Ces modifications sont obtenues en donnant Cette fonction convertit un nombre qu'on lui donne en radians (rangé dans x) en degrés.
des valeurs aux propriétés avec le signe égal (=). Taper ces trois lignes dans module1 (à la suite des macros) puis revenir à feuil1 et écrire
dans une cellule =degre(pi()/4) résultat ............... .
Par exemple, Selection.Font.Size = 20 affecte la valeur 20 à la propriété Taille de l'objet
Font de la sélection. Faire vérifier par le professeur.
Exemples d'objets: Il est aussi possible de réaliser des tests (Si... Alors... Fin Si) des boucles (Pour i =
debut à fin... Suivant) ...
Selection la zone sélectionnée Essayer l'exemple ci-dessous (taper ces lignes puis lancer la macro nommée lescarrés :
Range ensemble de cellules Range("D1:D5").Select
Sheets une feuille Sheets("Feuil3").Select Sub lescarrés()
For i = 1 To 10
D'une façon générale, l'enregistrement permet de trouver des noms et le fichier d'aide x=i*i
donne des explications: le curseur étant sur le mot à propos duquel on cherche de l'aide, s = "B" & Format(i)
appuyer sur F1 au clavier. Malheureusement, s'il est vrai que l'aide est en français, les Range(s).Select
mots clefs sont en anglais ! ActiveCell.Value = x
Next
En plus des cellules, une procédure peut manipuler des grandeurs quelconques End Sub
(nombres, textes ...) dans des variables. Ces variables sont composées de lettres et ont
un type qui correspond à ce qu'on y range. Ce type peut être Entier, réel (Double), Faire vérifier par le professeur.
texte (Chaîne) et autres.
Exemple: x = 2,5 x contient la valeur 2,5 qui est de type Double. Si, ensuite on écrit y =
2*x, y vaudra 5.
Ceci est utile pour stocker des résultats intermédiaires lors de la réalisation d'opérations
plus compliquées que le choix d'une couleur ou d'une police !
Les procédures ne sont pas seules à réaliser des successions d'actions, il existe aussi des
fonctions auxquelles on s'est déjà habitué dans le tableur.
2nd 12 MPI 2001 / 2002 Page 3 / 3 Programmation d'Excel (1)