Cbasie
Messages postés4Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention29 décembre 2012
-
7 mars 2011 à 09:29
Cbasie
Messages postés4Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention29 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
A voir également:
Récupération de l'adresse du bouton ayant appelé une macro
AlKatou
Messages postés95Date d'inscriptionvendredi 7 février 2003StatutMembreDernière intervention28 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 ?
Cbasie
Messages postés4Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention29 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.