Retour à la FAQ


Je me pose une question à propos des 2 boutons que l'on peut poser sur une feuille de calcul.
Le premier qui se trouve dans la barre d'outils "Formulaires" et qui crée un bouton nommé Bouton 1.
Le deuxième qui se trouve dans la barre d'outils "Commandes" et qui crée un bouton nommé CommandButton1.
Quelle différence entre les deux ?

Bouton1 et CommandButton1: DIFFERENCE

Réponse de Catherine
Te voilà quelques éléments de réflexion.

D'abord la théorie :
Les boutons de la barre d'outils Formulaire sont tout-à-fait spécifiques à Excel.
Ils ne sont pas branchés sur plein d'événements de VBA, ce qui limite très
sérieusement les possibilités de contrôle sur ce qui se passe dessus. Et
aussi, ils sont très limités en possibilités de présentation, et lourds en
matière de récupération des infos saisies. Ils ne peuvent être utilisés que sur une feuille Excel.

Les contrôles de la barre d'outils Formulaire ne sont plus documentés dans
l'aide de VBA depuis XL97. Ce sont des "objets masqués", c'est-à-dire qu'on
peut continuer à les utiliser mais sans aide sur leurs propriétés et méthodes spécifiques.
Ils sont maintenus pour des raisons de compatibilité ascendante (bien que partielle dans pas mal de cas).
Ils étaient antérieurement conçus pour les DialogSheets des précédentes versions (5 et 95).

Un contrôle de la barre d'outils commandes (on dit aussi un ActiveX ),
c'est un type de contrôle non spécifique à Excel, non spécifique même à VBA (puisqu'on a les mêmes avec VB).
Un complément tout fait qu'on peut charger/acheter pour s'en servir.
Il suffit de savoir quelles propriétés/méthodes permettent de le manipuler,
quelles infos il peut renvoyer, et hop (en théorie) c'est facile à intégrer
dans tes UserForms. Et homogène avec les interfaces d'autres programmes et
boîtes de dialogue en général.

De plus, les ActiveX appartiennent à une collection de VBA :
les MsForms.controls, on récupère ce qu'on a mis dedans avec leur propriété
Value (en gros), ce sont des objets décrits par VBA comme les autres, bref
ça fait un ensemble cohérent de trucs à utiliser dans un ensemble d'applications.

Et en pratique maintenant :
Un bouton à cliquer /bouton de commandede la barre d'outils Formulaire,
c'est tout gris, et on ne peut que cliquer dessus pour déclencher UNE seule
macro (écrite dans un module standard).

Un bouton de commande ActiveX, si tu ne le travailles pas, ressemble
exactement à l'autre :-))) sauf qu'il est plus difficile à utiliser au premier abord :-)))))))))))
MAIS : si tu te penches un peu dessus, tu pourras lui donner la couleur que
tu veux, lui mettre des effets spéciaux, le simple cliquer, le double
cliquer, passer dessus et encore des tas d'autres choses ... Et ce sera
*exactement* le même en word, access etc...
Son code événementiel s'écrit dans la feuille de code de l'objet sur lequel
tu l'as posé (et pas dans un module standard).

De toutes façons, à partir d'Excel 97 on n'a pas le choix : dans les
UserForms, on est obligé d'utiliser les ActiveX, VBA oblige pour l'ensemble
du pack Office. Il n'y a que sur les feuilles de calcul qu'on a encore le
choix, mais là, on peut effectivement comprendre : sur une feuille de
calcul, on est dans Excel, donc on peut utiliser des trucs spécifiques à Excel, non ?

 


[top]