Appliquer une macro à plusieurs boutons

Fermé
medestrac - 24 mars 2015 à 10:36
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 24 mars 2015 à 14:46
Bonjour,

Je souhaite intégrer dans un document un bouton multi-états: au premier clic il devient gris et affiche NA, au second clic il devient orange et affiche "En cours", au troisième il devient vert et affiche "Terminé", au quatrième il devient rouge avec "Retard", et enfin au cinquième la boucle est bouclée et on redevient gris avec "NA". J'utilise pour cela une macro sur monBouton.clic, avec un select case sur monBouton.caption.

Je veux dupliquer ce bouton une cinquantaine de fois sur ma page...j'ai donc monBouton0, monBouton1, ...monBouton50. Comment faire en sorte que la macro s'applique à tous les boutons sans me les palucher à la main? Je n'ai que ces boutons sur ma page, pas d'autres objet ou macros.

Merci beaucoup.

A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 24/03/2015 à 11:12
Bonjour
Tu peux utiliser les modules de classe
un petit tuto avec des semaines
https://www.cjoint.com/?3CylpUeQH7b

worbookopen parcours les boutons et appelle à chaque bouton
le module de classe vers semaine qui donne un numéro de semaine quand tu cliqueras sur un bouton avec son N) de semaine te dirigera vers la feuille de la semaine...
a toi d'adapter: ca fait un peu peur la 1) fois qu'on manipule les modumes de classe mais tu 'apercevras que ce n'est pas si compliqué avec un peu d'efforts perso

Michel
0
Merci, mais j'effectue un rapport sous word...et là plus d'OLEObject. Je suis beaucoup moins familier de VBA sous Word que sous Excel.
Je suis tout de même content de (re)découvrir les modules de classes... je les avais oublié avec mon peu d'utilisation de VBA au quotidien.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
24 mars 2015 à 14:46
Bonjour,

Voici un exemple:

Option Explicit
Dim val, valeur
Sub Bouton1_Clic()
mesclics ("Button 1")
Range("A1").Select
End Sub
Sub Bouton2_Clic()
mesclics ("Button 2")
Range("A1").Select
End Sub
Sub mesclics(monbouton As String)
val = val + 1
valeur = val
Select Case valeur
Case Is = 1
 ActiveSheet.Shapes(monbouton).Select
 Selection.Characters.Text = "NA"
Case Is = 2
 ActiveSheet.Shapes(monbouton).Select
Selection.Characters.Text = "En cours"
Case Is = 3
 ActiveSheet.Shapes(monbouton).Select
Selection.Characters.Text = "Terminé"
Case Is = 4
 ActiveSheet.Shapes(monbouton).Select
Selection.Characters.Text = "En retard"
Case Else
val = 0
End Select
End Sub


Je te laisse mettre les couleurs. Le seul problème,c'est quand tu passes d'un bouton à l'autre il continue son cycle. Il faudrait trouver une solution de ce côté!
0