Récupération de l'adresse du bouton ayant appelé une macro

Résolu
Cbasie Messages postés 4 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 29 décembre 2012 - 7 mars 2011 à 09:29
Cbasie Messages postés 4 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 29 décembre 2012 - 7 mars 2011 à 11:06
bonjour à tous,
je suis en train d'améliorer une application existante qui comprend environ 369 boutons (!!).
Or ces boutons font preseque tous la même chose : disons que l'on pourrait simplifier à trois sub génériques.
Mon probleme est de savoir quel bouton a activé telle ou telle sub : comme un bouton est un objet shape, je peux savoir son adresse par exemple Topleft. Malheureusement, je ne sais pas comment récupérer cette adresse dans la sub activée par le bouton !
Quelqu'un aurait il une idée sur la manière de faire ?
Merci de votre aide
Count Basie

2 réponses

AlKatou Messages postés 95 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 novembre 2017
7 mars 2011 à 09:57
salut,

369 boutons, ça rigole pas

déjà tu es sous quel VB ?
comment ça tes boutons sont des shapes ? car si l'on considère que tu es sous VB5/6, le composant shape n'a pas évènements donc comment est géré par exemple un click dessus ?


AlKa
3
Cbasie Messages postés 4 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 29 décembre 2012
7 mars 2011 à 11:06
bonjour
je suis sous VBA excel 2003
C'est bien un shape : j'ai fait cette petite boucle pour vérifier :

Dim sh As Shape
Dim i As Integer, j As Integer
For Each sh In Worksheets("Saisie").Shapes
If sh.Type = msoFormControl Then
j = 0
If sh.FormControlType xlButtonControl And Left(sh.AlternativeText, 4) "RPTx" Then
if union ( sh.TopLeftCell, range("A283:IV533") in range("A283:IV533") then j = 1
i MsgBox(sh.Name & " " & sh.TopLeftCell.Address & " " & sh.Type & " " & sh.AlternativeText & " Cch " & j, vbOKCancel)
If i = vbCancel Then Exit For
End If
End If
Next

là avec cette boucle, j'ai tout les boutons donc le texte commence par RPTx dans une zone de cellule et je connais l'adresse TopLeftCell.address

Mais c'est dans la macro qui est appelée par l'un de ces boutons "RPTx .." que j'aimerais récupérer ce topLeftCell.address. Je crois que le bouton clické appelle la macro de OnAction.

As tu une idée là dessus ?
0
Rejoignez-nous