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
 
Solution
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.

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.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon