Bonjour à tous,
J’ai le résultat une fonction recherchV dans une cellule.
Je voudrais atteindre la cellule d’origine qui contient le texte en appuyant sur un bouton.
Je n’ai aucune idée sur la solution.
Pourriez vous m’aiguiller ?
Merci d’avance.
Bonjour à tous,
J’ai le résultat une fonction recherchV dans une cellule.
Je voudrais atteindre la cellule d’origine qui contient le texte en appuyant sur un bouton.
Je n’ai aucune idée sur la solution.
Pourriez vous m’aiguiller ?
Merci d’avance.
Bonjour,
Fichier en exemple
Pièce jointe 499310
le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Retrouver_Valeur() Dim Col_Valeur_trouvée As Long, Col_Valeur_Origine As Long, DerLig As Long Dim Valeur_trouvée As String Application.ScreenUpdating = False Col_Valeur_trouvée = 3 'N° de la colonne de la valeur trouvée avec recherchev Col_Valeur_Origine = 2 'N° de la colonne où se trouve la valeur d'origine Valeur_trouvée = [D2] 'Valeur trouvée avec recherchev DerLig = Cells(10000, Col_Valeur_trouvée).End(xlUp).Row Set Empl = Range(Cells(2, Col_Valeur_trouvée), Cells(DerLig, Col_Valeur_trouvée)).Find(Valeur_trouvée, LookIn:=xlValues, lookat:=xlWhole) Cells(Empl.Row, Col_Valeur_Origine).Select End Sub
Modifiez les 3 paramètres en rouge pour l'adapter à votre fichier
Cdlt
bonjour
je te propose de récupérer la plage de recherche dans la formule avec précédents pour y faire un find
un exemple en C3 j'ai la formule =RECHERCHEV("titi";A1:A10;1;0)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub test() Dim cel As Range,mot$,addr$ Set cel = Sheets(1).Range("C3") 'ta cellule ou se trouve ta formule rechercheV ' 'recherche de l'adrresse de la cellule trouvée 'on recupere d'abords l'addresse de la plage de recherche de la formule addr = cel.Precedents(1).Address & ":" & cel.Precedents(cel.Precedents.Count).Address ' mot = cel.Text 'mot recherché obtenue par la formule ' Set c = Sheets(1).Range(addr).Find(mot, LookIn:=xlValues, lookat:=xlWhole) ' MsgBox c.Address End Sub
version 2 avec match vba
version3 avec evaluate de la formule (equiv/match en vba)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub test2() Dim cel As Range, addr$ Set cel = Sheets(1).Range("C3") 'ta cellule ou se trouve ta formule rechercheV 'on recupere l'addresse de la plage de recherche de la formule addr = cel.Precedents(1).Address & ":" & cel.Precedents(cel.Precedents.Count).Address MsgBox Cells(Application.Match(cel.Text, Sheets(1).Range(addr), 0), Range(addr).Column).Address(0, 0) End Sub
bien sur au clic de ton bouton il faudra gérer le "#N/A" que renvoie recherchev quand elle trouve pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub test3() 'base exemple Evaluate("=MATCH( ""titi"",A1:A10,0)") Dim cel As Range, addr$ Set cel = Sheets(1).Range("C3") 'ta cellule ou se trouve ta formule rechercheV 'on recupere l'addresse de la plage de recherche de la formule addr = cel.Precedents(1).Address & ":" & cel.Precedents(cel.Precedents.Count).Address MsgBox Cells(Evaluate("=MATCH( """ & cel.Text & """,Feuil1!" & addr & ",0)"), cel.Precedents(1).Column).Address(0, 0) End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Partager