Recupérer Target.row sur une range spécifiée

[Résolu/Fermé]
Signaler
-
 pagesalex -
Bonjour,

J'ai écris un code qui lorque je fais un click droit sur une cellule un message affiche son contenu :


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Target.Value <> "" Then
a = Target.value
MsgBox (a)
End If
Cancel = True

End Sub

Dans l'idéal je voudrais que "a" soit égale a la position de la valeur dans une autre liste de données.

J'espère avoir été clair ... Merci de votre aide !

3 réponses

Messages postés
33473
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2021
3 718
Bonjour,


J'espère avoir été clair ... Merci de votre aide !

Heu.... non pas vraiment....


je voudrais que "a" soit égale a la position de la valeur dans une autre liste de données.

"a" est égale, d'après ton code à la valeur de la cellule sélectionnée.....
Tu voudrais (si j'arrive à décrypter ta demande...) que, si la cellule contient la valeur 10 .... ça te retourne la valeur contenue dans une liste (dont on ne sait rien au passage.....) à la dixième position ??

Peux tu expliquer un peu mieux (et plus...) ce que tu souhaites obtenir ?
et aussi....nous indiquer comment se présentent les données ? (où elles se trouvent, sous quelle forme... etc...)
Tu peux même fournir un fichier ...ça peut aider à comprendre tes explications.

https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers




J'ai des noms dans une liste sur une feuille Base de données dans une autre feuille plusieurs nom dans 5 colonne différentes par exemple si je click sur mon nom dans cette feuille cela va m'afficher le numéro de téléphone qui se trouve dans la feuille base de données
En théorie
Messages postés
33473
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2021
3 718
Ah... tu veux "rechercher" une valeur dans une autre feuille en fonction de la valeur sur laquelle tu as cliqué ?
C'est bien ça cette fois ?

Si oui.... va voir ce que fait la méthode FIND
https://www.commentcamarche.net/faq/36886-methode-find-dans-vba-recherche-de-donnees-sous-excel
Mon problème est résolu je poste le code si ça peut servir.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Target.Value <> "" Then
a = Application.WorksheetFunction.Match(Target.Value, Worksheets("Base de données").Range("AA:AA"), 0)
MsgBox (a)
End If
Cancel = True

End Sub