Appliquer une macro à plusieurs boutons

medestrac -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
medestrac
 
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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