[vba] savoir la ligne du bouton activé

Résolu
biomano -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai une macro qui m'affiche un certains nombre de bouton "connexion" en fonction du nombre de résultats de ma recherche. Mais j'aimerais connaitre la ligne du bouton sur lequel je clique. Est ce possible?

c'est pas un truc du genre ActiveButton.Row ?
j'ai testé mais sans résultat. je n'y arrive pas.

pourriez vous m'aider svp?

cordialement,

biomano

5 réponses

biomano
 
j'ai testé avec Activecell.Row sans succés.
il n'y a pas un équivalent pour un bouton selectionné?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
tu dis : j'ai une macro qui m'affiche un certains nombre de bouton "connexion"
Peux t'on voir le code de cette macro afin de voir comment sont créés tes "boutons"?
0
biomano
 
j'ai testé ça:

[H12].Offset(, -7).Select


mais ne marche que pour des cellules.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
0
biomano
 
je sais que tu avais posté une réponse mais elle ne s'affichait pas et là non plus elle ne s'affiche pas. je ne sais pas d'ou vient le pb d'affichage
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Je te demande simplement de mettre le code de ta macro, celle qui créé les boutons...
Tu copies ton code et viens ici le coller dans une réponse...
0
biomano
 
désolé, voici le code de la macro:
  
Dim k As Integer
k = Application.WorksheetFunction.CountA(Range("A2:A65536"))
For i = 2 To k + 1
  ActiveSheet.Buttons.Add(Cells(1, 8).Left, Cells(i, 1).Top, Cells(2, 1).Width, Cells(2, 1).Height).Select
    Selection.OnAction = "connexion"
    Selection.Characters.Text = "connexion"

Next
0
biomano
 
en fait, ça me compte le nbre de résultat et ça m'affiche un bouton connexion pour chaque résultat dans la colonne H.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
La ligne correspondante à ton bouton est donc :
Selection.Top/Cells(2, 1).Height + 1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Salut pijaku .. tu a tester ?
1°) pourquoi employer une WorksheetFunction qui du reste risque de ne pas donner le bon résultat, vaut mieux faire..
    k = Range("A65536").end(Xlup).row

Ensuite, tes boutons sont issus des outils Formulaire et n'ont presque pas de possibilité, vaudrait mieux employer des boutons ActiveX.
un exemple pour créer ces boutons, si tu ne comprend pas le traitement par classe c'est pas obliger, y a une propriété qui permet de connaitre la ligne du bouton mais zut.. je reviens pas dessus.
A+
--
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut Lermitte222
Oui j'ai testé, sur une petit fichier créé par mes soins. Cela fonctionne pas trop mal. Pourquoi? Qu'est ce qui te choque dans ce code?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
je ne sais pas comment tu à testé mais moi j'ai l'erreur "non gérer"
Pas oublier que 1°) la macros doit être dans un module général. 2°) connaitre la ligne dans la macro connexion
Explique !! :-)
A+
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Dans un module :
Sub NumérosBoutons()
Dim Ctrl As Shape

    For Each Ctrl In ActiveSheet.Shapes
        MsgBox Ctrl.Top / Cells(2, 1).Height + 1
    Next Ctrl
End Sub

me donne bien les lignes correspondantes aux boutons? Ce qui réponds bien au sujet proposé.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Excuses, sais pas comment j'ai fais mais je viens de retester et effectivement ça fonctionne.
Malgré tout, je ne trouve pas que ce soit une solution fiable, le moindre changement de hauteur de ligne perturbe le calcul.
Je persiste et signe.. préférable d'employer des boutons AvtiveX
A+
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Malgré tout, je ne trouve pas que ce soit une solution fiable, le moindre changement de hauteur de ligne perturbe le calcul. Tout à fait d'accord. Je l'ai fait dans ce sens car on peut être sur (du moins au départ) que les hauteurs de ligne correspondent aux hauteurs de boutons. Le code fonctionnera bien jusqu'à effectivement une modif de hauteur...
Je persiste et signe.. préférable d'employer des boutons AvtiveX je persiste et signe volontiers avec toi!! Je hais les Shapes... On n'en vient à bout que trop difficilement...
0