OVH Cloud OVH Cloud

affecter macro excel

3 réponses
Avatar
Julien
bonjour,
je dispose de nombreux fichiers excel identiques
j'ajoute par macro dans ces classeurs
-une macro copie_colonnes dans un module1 ok!
-une zone de texte sur tout les onglets ok!

mais je voudrais affecter à cette zone de texte le lancement de copie_colonnes
le problèmeest que la macro ne se lance pas sauf si je la copie dans le code
de chaque feuille et je ne peux pas.

merci

3 réponses

Avatar
Nicolas B.
Bonjour,

Il est possible de recopier le code nécessaire à chaque bouton
automatiquement par VBA.
Des exemples sont disponibles ici :
http://frederic.sigonneau.free.fr/VBE.htm

Et plus particulièrement celui-là :
http://frederic.sigonneau.free.fr/code/VBE/AjoutBoutonPlusCodeParVBA.txt


Une autre solution consisite à passer par une barre d'outils, qui sera
donc visible à partir de toutes les feuilles du classeur :

Voici un exemple à adapter :

Sub AjoutBarreOutils()
Dim cb As CommandBar
Dim ce As CommandBarControl

Set cb = Application.CommandBars.Add("myControlBar")
cb.Visible = True
Set ce = cb.Controls.Add(Type:=msoControlEdit)

ce.Caption = "myControlEdit"
ce.OnAction = "MacroTest"
End Sub

Sub MacroTest()
MsgBox Application.CommandBars("myControlBar").Controls(1).Text
End Sub


A+
Nicolas B.

bonjour,
je dispose de nombreux fichiers excel identiques
j'ajoute par macro dans ces classeurs
-une macro copie_colonnes dans un module1 ok!
-une zone de texte sur tout les onglets ok!

mais je voudrais affecter à cette zone de texte le lancement de copie_colonnes
le problèmeest que la macro ne se lance pas sauf si je la copie dans le code
de chaque feuille et je ne peux pas.

merci


Avatar
Julien
merci pour l'aide
le bouton se place bien sur les feuilles
mais il n'y a pas d'action car le code se met dans le module comme demandé,
si je met le code du bouton dans les feuilles ou se trouvent le bouton cela
fonctionne

il me faudrait un moyen de pouvoir lancer la procedure en la laissant dans
le module
Avatar
Julien
je n'ai plus besoin d'aide je viens de trouveer la solution, il suffisait de
forcer le lien vers la macro :
Selection.OnAction = adresse
adresse = ActiveWorkbook.Name & "!lancement"


je vous recmercie encore