Macros et Fichiers *.bas et *.cls
Le
Albert

Bonjour
J'ai des fichiers EXCEL avec des macros, je peux voir et selectionner les
macros avec alt/F8 ou alt/F11 etc
J'ai une macro sur feuil1 nommé ««Private Sub Worksheet_Change(ByVal Target
As Range)»» cette macro n'apparait pas avec alt/F8.
Quand j'exporte les macros des Modules un fichier «toto.bas» est créé.
Quand j'exporte la macro de feuil1 un fichier «titi.cls» est créé.
Une explication serait appréciée.
Merci
--
albertri-at-videotron.ca.invalid
J'ai des fichiers EXCEL avec des macros, je peux voir et selectionner les
macros avec alt/F8 ou alt/F11 etc
J'ai une macro sur feuil1 nommé ««Private Sub Worksheet_Change(ByVal Target
As Range)»» cette macro n'apparait pas avec alt/F8.
Quand j'exporte les macros des Modules un fichier «toto.bas» est créé.
Quand j'exporte la macro de feuil1 un fichier «titi.cls» est créé.
Une explication serait appréciée.
Merci
--
albertri-at-videotron.ca.invalid
Quand tu exportes un "MODULE STANDARD", fichier créé est un fichier .bas. Tous les autres
modules des feuilles, ThisWorkbook, crée un fichier .cls, parce que tous ces modules sont
des modules de classe (classe -> cls). La principale différente entre un module de classe
et un module standard, c'est que le module de classe représente un "objet" qui appartient
au modèle objet VBA d'Excel. Tu peux voir la liste des objets dans l'explorateur d'objets
de la fenêtre VBA (raccourci clavier : F2). Ces objets sont identifiés à l'aide d'une
icône particulier. Dans la boîte de saisie recherche de la fenêtre de l'explorateur
d'objets, tape "Range" et regarde son icône. Chaque objet a la même icône. Tu as aussi une
icône particulier pour les méthodes (représente une action qu'un objet peut exécuter) et
un autre pour les propriétés. La bibliothèque a sa propre icône... etc.
Les modules standards sont utilisés pour y inscrire le code et les variables applicables à
tous les modules du classeur, par conséquent pouvant être appelé par toutes les procédures
des modules de classe. Cela dépend si une procédure est déclarée "Private" ou "Public".
Private Sub Worksheet_Change(ByVal Target As Range)
Cette procédure événementielle appartient seulement à chacun des modules "Feuille" d'un
classeur.
Tous les objets ont un module de classe, mais seulement certains de ces objets ont un
module qui est accessible par les usagers. Comme ces modules contiennent des macros
événementielles, l'usager a besoin d'une interface pouvant définir les actions à être
exécutées suite à certaines manipulations de l'usager. De plus lorsque tu introduis des
contrôles émanant de la barre des outils "Contrôle", tu peux aussi utiliser et programmer
les événements de ces contrôles appartenant à chaque feuille...dans le module de la
feuille.
"MichD" news:lr66i0$1eb$
Merci
C'est la meilleure courte explication que j'ai eu à ce jour.
J'ai compris la différence entre un Module et un Module de Classe.
Mon seul problème, les objets, quand j'étais technicien dans les années 50
les objets je pouvais les voir et toucher.
Avec la venue des circuits intégrés, il ne fallait pas chercher les
composants discrets, mais voir le résultats donné par l'ensemble des
composants.
À l'arrivée de Windows 3.1 les objets c'était abstrait pour moi et ça le
demeure encore avec W7 et Office 10.
Quand je fais F2, la liste des centaines d'objets qui défile me laisse
perplexe.
J'ai un petit trou à combler.
Merci beaucoup
Albert
--
albertri-at-videotron.ca.invalid
Un module est un conteneur pour des fonctions et procédures (routines).
Un module de classe est un type (de variable objet) : on instancie une
variable objet de type "ModuleDeClasse" qui définit ses champs,
propriétés et méthodes (ces noms font référence à des éléments de
syntaxe)
Un module de classe permet aussi de définir une interface via la clause
/Implements/. Un même objet peut avoir plusieurs interfaces et une seule
implémentation, ou à l'inverse plusieurs objets peuvent partager la même
interface pour des implémentations différentes. La clause /Implements/
peut ainsi être utilisée pour rendre /privée/ (dans un sens faible) les
propriétés/méthodes d'un objet.
L'"explorateur d'objets" présente en fait l'ensemble des déclarations
plutôt que les objets (ie l'ensemble des modules, qui sont des objets,
mais aussi toutes les constantes publiques, y compris les éléments des
types énumérés, les types, les méthodes etc.)
C'est pourquoi cette liste est très volumineuse.
Merci de vos commentaires additionnels
albert