Résolu XL 2013 Affecter à un bouton macro le code vba d'un user form

Chrystel01

XLDnaute Occasionnel
Bonjour,

J'actualise actuellement un fichier créé par un informaticien parti… Il avait créé beaucoup de macros affectées à des userform.
Lorsque je créé un bouton de macro et sélectionne "affecter une macro", je ne vois pas tous les codes affectés aux userform ?
Comment faire pour affecter le code existant non pas à des userform mais à des boutons de macro ?

Merci pour votre aide

Bonne journée


Chrystel
 
Ce fil a été résolu! Aller à la solution…

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Chrystel,
peut être une piste :
Pouvez vous vérifier si les dites macros sont déclarées en Sub et non Private Sub.
Les Private Sub ne sont pas visible lorsqu'on fait un Affecter macros.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Pas clair tout ça. Un bouton de macro ça n'existe pas. Il y a les boutons de formulaire et les bouton ActiveX, c'est tout.
Alors quelques informations pour vous permettre de repréciser ce que vous voulez.
1) — Une macro (d'un module standard en principe) ne peut être affectée qu'à un objet dessiné de formulaire, c'est à dire de la rubrique "Contrôles de formulaire" de la commande Insérer du groupe Contrôles du menu Développeur.
2) — Tous autres objets, y compris les contrôles ActiveX, ont une procédure attitrée dans le module de l'objet qui les porte, de nom généralement de la forme Private Sub NomDeLObjet_Click(), mais il peut y en avoir d'autres en plus, pour d'autres actions.
3) — Une telle procédure peut néanmois appeler une macro d'un module standard, mais elle ne lui est pas affectée, c'est cette procédure …_Click qui l'invoque explicitement dans son code.
En conclusion, pour voir ce que font les boutons d'un UserForm, consultez la programmation de celui ci.
 
Dernière édition:

Chrystel01

XLDnaute Occasionnel
Sylvanu et Dranreb,

Je vous remercie pour vos retours

Effectivement, toutes les macros existantes sont de type "Private Sub CommandButton_Click()"
car elles étaient affectées à un user form par mon prédécesseur.
Mais je ne veux pas du user form.

Je crée un bouton de formulaire de la rubrique "Contrôles de formulaire et souhaite y affecter la macro qui avait été affectée à la base au user form.
Quand dans le code j'enlève le "private" devant le sub, je ne la vois toujours pas quand j'affecte une macro au bouton ?.

Merci de votre aide

Chrystel
 

Dranreb

XLDnaute Barbatruc
Je ne suis pas sûr de l'attribut assumé si on ne le précise pas, mais vous pourriez préciser Public. Toutefois comme il s'agit d'un module objet, elle en deviendrait une méthode, c'est à dire un truc nécessitant, pour l'exécuter, de préciser devant le nom de l'objet suivi d'un point.
Le mieux ce serait de les transférer dans un module standard.
 
Ce message a été identifié comme étant une solution!

sylvanu

XLDnaute Barbatruc
Supporter XLD
Si vos macros dans dans des userforms, elles ne seront pas visibles sur un Affecter macros dans une feuille.
Comme le dit Dranreb, je pense que c'est le seul moyen. Un transfert en module standard, et sans le Private.
 
Ce message a été identifié comme étant une solution!

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas