De l'utilisation des macros - généralités

Le
Britannicus
Bonjour,

Pour les formules, pas de soucis. Quand on a bien saisi la bonne syntaxe, le
résultat est immédiat.
Pour les macros, je suis obligé de vous demander les règles de base et si je
me trompe, vous corrigez :
Pour moi, d'une façon simpliste, je vois 2 sortes de macros :
- celles qui sont créées à partir du bouton "outils", qui peuvent être
modifiées et activées par des boutons.
- celles qui sont créées au niveau de la feuille, comme l'exemple ci-dessous
http://cjoint.com/?edwRsjKpBD
et sur lesquelles je bloque. Voici les questions :
Comment les activer ? Je n'arrive pas à avoir les résultats.
Y a t'il d'autres règles (priorité, imbrication) quand une macro au niveau
de la "feuille" et une au niveau "outils" existent ?

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
lSteph
Le #4271061
Bonjour,

Appuie sur Alt+F11 et les portes vont s'ouvrir!

Il y a là un seul VBE (Editeur VBA) mais plusieurs sortes de modules
dans lesquels peuvent venir s'inscrire les macros.
Toutefois comme tu l'a pressenti il y a bien quelques nuances...
----------------------------------------
Petite rétrospective (qu'on me corrige si ma mémoire s'en mélange)
Avant excel 5/95, il y avait seulement des feuilles macros (dites
aujourd'hui macros Excel4)
ces feuilles contenaient en colonne les macros avec leur nom en titre
et les lignes (cellules pour chaque instruction)

d qui se terminaient irrémédiablement par =Retour()
Ces instructions s'écrivaient comme des formules de feuilles mais
constituaient un ensemble utilisable uniquement dans les feuilles
macros.
Les boites de dialogues des premières versions se concevaient dans
Windows puis on pouvait les récupèrer dans excel
De même que les grilles personnalisées (Données grille , aujourd'hui
Données Formulaire), ces dernières devant faire l'objet d'une table
de définition (complexe) réalisée dans une feuille macro.
puis avec excel4 sont apparues les feuilles de boite de dialogue avec
grille de conception que l'on a pu désormais
mettre au point directement dans excel.
Autre nouveauté importante avec excel 5 l'enregistreur de macro qui
écrit les instructions en langage Visual Basic
le premier concept de la version française d'Excel est d'ailleurs en
Français, Langue qui n'est plus reprise dans les versions suivantes.

Depuis 97, (même si un clic sur l'onglet de feuille donne toujours la
possibilité d'insérer des feuilles macros excel4 ou des feuilles de
dialogue, on écrit désormais les macros dans VBE Visual Basic Editor.
De même s'y conçoivent (en place des boites de dialogue) des
formulaires utilisateur appelés Userforms.
-------------------------------------------

.....que tu passes par l'enregistreur ou que tu écrives directement,
le code sera toujours écrit dans un module
Dans VBE regarde sur ta gauche il y a l'explorateur de projet.
Si tu as enregistré une macro en passant par excel Menu outils macro
tu va trouver dans le projet du classeur désigné, un module1, ..2..3
autant que de séances d'enregistrement .
Doubleclique dessus et le module apparait dans l'écran avec le code de
la Sub en question.
( note bien qu'il est écrit "Sub")
Maintenant si tu regarde de plus près dans l'explorateur de projet ,
tu vois qu'il y a aussi
des objets désignés ainsi Feuil1, Feuil2 et aussi ThisWorkbook
De la même façon en doublecliquant dessus on va aller voir le contenu.
A noter en haut à gauche du module de Feuille un déroulant contenant
(Général) et Worksheet
..en haut à gauche du module de Classeur (ThisWorkbook) un déroulant
contenant (Général) et Workbook
sélectionne ce dernier
..en haut à droite apparaissent les évènements liés à l'objet
sélectionné, double clique sur l'un d'eux
et tu verra apparaître dans le module
Private Sub Workbook_open() par exemple

Note cette fois qu'il est écrit "Private Sub", c'est parceque l'on
écrit ici des procédures qui ont une portée réservée à l'objet
concerné.Private se différencie ainsi de Public (qui a une portée
globale)
Ce concept se retrouve de façon plus pointue dans les différentes
possibilités de déclaration de variables.
Il y a ainsi de même classifié pour les évènements le niveau feuil le,
classeur, application...etc

Regarde alors le menu insertion du VBE,
tu peux insérer quoi: Procèdure, Module Standard, Userform, Module de
classe

L'insertion ..
...d'une procèdure s'opère dans le module en cours, cela peut donc
être
Private ou Public et le choix entre Sub , Function et Property (voir +
dans l'aide)

...d'un module standard: pour y écrire des procèdures générales.

...d'un UserForm, dans lequel tu peux disposer des contrôles (Boutons,
TextBox, Listes, CheckBox..etc), en doublecliquant dessus
tu accèdes à son (Private) module, regarde les déroulants en fonction
des contrôles sélectionnés les évènements qui s'y rapportent...co mme
dans la feuille ou le classeur on est dans le code de l'objet.

Le module de Classe lui, aura diverses utilisations
notamment pour appliquer un comportement à tel ou tel type de
contrôle en lui assignant une classe
ou encore prendre en charge les graphiques ou la gestion des
évènements de niveau application.

Pour plus.... consulter un peu l'Aide de VBA sur les notions ici
évoquées
et pour y voir mieux ce qu'on peut faire avec tout cela faire un tour
sur excelabo ou sur le site de DJ.

Cordialement.

lSteph








On 5 avr, 13:36, "Britannicus"
Bonjour,

Pour les formules, pas de soucis. Quand on a bien saisi la bonne syntaxe, le
résultat est immédiat.
Pour les macros, je suis obligé de vous demander les règles de base e t si je
me trompe, vous corrigez :
Pour moi, d'une façon simpliste, je vois 2 sortes de macros :
- celles qui sont créées à partir du bouton "outils", qui peuvent être
modifiées et activées par des boutons.
- celles qui sont créées au niveau de la feuille, comme l'exemple ci- dessoushttp://cjoint.com/?edwRsjKpBD
et sur lesquelles je bloque. Voici les questions :
Comment les activer ? Je n'arrive pas à avoir les résultats.
Y a t'il d'autres règles (priorité, imbrication) quand une macro au n iveau
de la "feuille" et une au niveau "outils" existent ?

Merci d'avance


Britannicus
Le #4269051
Merci lSteph ! Je ne m'attendais pas à une réponse aussi complète. Bravo !
Voilà le genre de message qui ne devrait pas disparaître, mais faire partie
d'une rubrique "à conserver" sur Excellabo par exemple.
Car quelle que soit l'évolution d'Excel, ta réponse sera toujours une
référence pouvant s'enrichir avec le temps.

Cordialement,
Britannicus

"lSteph"
Bonjour,

Appuie sur Alt+F11 et les portes vont s'ouvrir!

Il y a là un seul VBE (Editeur VBA) mais plusieurs sortes de modules
dans lesquels peuvent venir s'inscrire les macros.
Toutefois comme tu l'a pressenti il y a bien quelques nuances...
----------------------------------------
Petite rétrospective (qu'on me corrige si ma mémoire s'en mélange)
Avant excel 5/95, il y avait seulement des feuilles macros (dites
aujourd'hui macros Excel4)
ces feuilles contenaient en colonne les macros avec leur nom en titre
et les lignes (cellules pour chaque instruction)

d qui se terminaient irrémédiablement par =Retour()
Ces instructions s'écrivaient comme des formules de feuilles mais
constituaient un ensemble utilisable uniquement dans les feuilles
macros.
Les boites de dialogues des premières versions se concevaient dans
Windows puis on pouvait les récupèrer dans excel
De même que les grilles personnalisées (Données grille , aujourd'hui
Données Formulaire), ces dernières devant faire l'objet d'une table
de définition (complexe) réalisée dans une feuille macro.
puis avec excel4 sont apparues les feuilles de boite de dialogue avec
grille de conception que l'on a pu désormais
mettre au point directement dans excel.
Autre nouveauté importante avec excel 5 l'enregistreur de macro qui
écrit les instructions en langage Visual Basic
le premier concept de la version française d'Excel est d'ailleurs en
Français, Langue qui n'est plus reprise dans les versions suivantes.

Depuis 97, (même si un clic sur l'onglet de feuille donne toujours la
possibilité d'insérer des feuilles macros excel4 ou des feuilles de
dialogue, on écrit désormais les macros dans VBE Visual Basic Editor.
De même s'y conçoivent (en place des boites de dialogue) des
formulaires utilisateur appelés Userforms.
-------------------------------------------

.....que tu passes par l'enregistreur ou que tu écrives directement,
le code sera toujours écrit dans un module
Dans VBE regarde sur ta gauche il y a l'explorateur de projet.
Si tu as enregistré une macro en passant par excel Menu outils macro
tu va trouver dans le projet du classeur désigné, un module1, ..2..3
autant que de séances d'enregistrement .
Doubleclique dessus et le module apparait dans l'écran avec le code de
la Sub en question.
( note bien qu'il est écrit "Sub")
Maintenant si tu regarde de plus près dans l'explorateur de projet ,
tu vois qu'il y a aussi
des objets désignés ainsi Feuil1, Feuil2 et aussi ThisWorkbook
De la même façon en doublecliquant dessus on va aller voir le contenu.
A noter en haut à gauche du module de Feuille un déroulant contenant
(Général) et Worksheet
..en haut à gauche du module de Classeur (ThisWorkbook) un déroulant
contenant (Général) et Workbook
sélectionne ce dernier
..en haut à droite apparaissent les évènements liés à l'objet
sélectionné, double clique sur l'un d'eux
et tu verra apparaître dans le module
Private Sub Workbook_open() par exemple

Note cette fois qu'il est écrit "Private Sub", c'est parceque l'on
écrit ici des procédures qui ont une portée réservée à l'objet
concerné.Private se différencie ainsi de Public (qui a une portée
globale)
Ce concept se retrouve de façon plus pointue dans les différentes
possibilités de déclaration de variables.
Il y a ainsi de même classifié pour les évènements le niveau feuille,
classeur, application...etc

Regarde alors le menu insertion du VBE,
tu peux insérer quoi: Procèdure, Module Standard, Userform, Module de
classe

L'insertion ..
...d'une procèdure s'opère dans le module en cours, cela peut donc
être
Private ou Public et le choix entre Sub , Function et Property (voir +
dans l'aide)

...d'un module standard: pour y écrire des procèdures générales.

...d'un UserForm, dans lequel tu peux disposer des contrôles (Boutons,
TextBox, Listes, CheckBox..etc), en doublecliquant dessus
tu accèdes à son (Private) module, regarde les déroulants en fonction
des contrôles sélectionnés les évènements qui s'y rapportent...comme
dans la feuille ou le classeur on est dans le code de l'objet.

Le module de Classe lui, aura diverses utilisations
notamment pour appliquer un comportement à tel ou tel type de
contrôle en lui assignant une classe
ou encore prendre en charge les graphiques ou la gestion des
évènements de niveau application.

Pour plus.... consulter un peu l'Aide de VBA sur les notions ici
évoquées
et pour y voir mieux ce qu'on peut faire avec tout cela faire un tour
sur excelabo ou sur le site de DJ.

Cordialement.

lSteph








On 5 avr, 13:36, "Britannicus"
Bonjour,

Pour les formules, pas de soucis. Quand on a bien saisi la bonne syntaxe,
le
résultat est immédiat.
Pour les macros, je suis obligé de vous demander les règles de base et si
je
me trompe, vous corrigez :
Pour moi, d'une façon simpliste, je vois 2 sortes de macros :
- celles qui sont créées à partir du bouton "outils", qui peuvent être
modifiées et activées par des boutons.
- celles qui sont créées au niveau de la feuille, comme l'exemple
ci-dessoushttp://cjoint.com/?edwRsjKpBD
et sur lesquelles je bloque. Voici les questions :
Comment les activer ? Je n'arrive pas à avoir les résultats.
Y a t'il d'autres règles (priorité, imbrication) quand une macro au niveau
de la "feuille" et une au niveau "outils" existent ?

Merci d'avance


Publicité
Poster une réponse
Anonyme