Faire une recherche et obtenir le # de ligne

dolphin

XLDnaute Occasionnel
Bonsoir cher Forum,

J'aimerais effectué une recherche dans un onglet qui comprend un longue liste. Ma recherche se fera sur un critère d'un mot ( qui peut contenir des lettres et/ou des chiffres). Lorsqu'il retrouvera ce mot, j'aimerais obtenir le numéro de la ligne où il est inscrit.


Mon problème, j'ai essayé par plusieurs moyen de le faire par le .find et le résultat n'est pas toujours bon. Car j'ai des mots qui se ressemble énormément, seul la dernière lettre est différente. Donc je n'obtiens pas le bon résultat, il me renvoie le premier trouvé dans la liste.


Pourrais-je le faire avec une boucle où je définierais la plage ( a & lig: a500 ). Lig sera défini à 1. Lorsqu'il trouvera le premier mot, j'aimerais faire un test selon une condition

if trouvé.value = nom_recherche then
lig_trouvé = trouvé.row
fin de la boucle
else
lig = trouvé.row +1


donc si le mot ne correspond pas exactement à ce que je recherche, je redefinirai la variable lig en fonctionne de celui qui m'a déjà trouvé par l'opération .find et j'effectuerais une nouvelle recherche .fin avec une plage modifié ( soit la ligne après celui retrouvé.


En espérant, que je suis assez précise dans mes explication. J'aimerais avoir votre idée sur le type de boucle à utiliser et à quoi ressemblerais le code.


Merci de votre aide, elle est grandement apprécié


Bonne soirée



:)
 
T

Temjeh

Guest
Bonjour le forum
Et longue vie à ce site

J'ai eu cette idée (je ne suis pas un pro mais tu peut débuter avec ca ...

Cells.Find(What:='Carotte', After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
, SearchFormat:=False).Activate
MsgBox 'Mot trouvé à cette adresse: ' & ActiveCell.Address
End If

...cherche dans toute la feuille 'Carotte' et donne l'adresse (ActiveCell.Address)


Moi à 40 ans



Dieu nous a donné deux extrémités :
l'une pour s'asseoir, l'autre pour réfléchir.
La vie dépend de celle qu'on utilise :
face on gagne, pile on perd.

[Paul-Emile Victor]


A++

Temjeh
 

salim

XLDnaute Occasionnel
Bonsoir

Bon c'est pas l'algorithme du siècle mais bon .... j'inscrit le numéro de ligne sur la colonne B et j'effectue la recherche sur la colonne A elle s'effectue que le mot soit écrit en minuscule ou en majuscule.

Option Explicit
Option Compare Text

Sub TestRecherche()
Dim Plage As Range, B&, Recherche$, L&
Recherche = 'MaRecherche'
L = Range('A65536').End(xlUp).Row
'Set Plage = Sheets(1).Range(Cells(1, 1), Cells(500, 1))'si tu veux que la recherche soit figée sur une plage
Set Plage = Sheets(1).Range(Cells(1, 1), Cells(L, 1)) 'si tu veux que la recherche soit dynamique
For B = 1 To Plage.Count
If Plage(B) Like Recherche Then
Plage(B).Offset(0, 1) = Plage(B).Row
End If
Next B
End Sub

salim
[file name=Dolphin_20060126032703.zip size=12141]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Dolphin_20060126032703.zip[/file]

bon j'ai édité pour essayé d'enlevé les smiley qui se mette dans le code mais ça marche pas mais j'ai mis un fichier joint .

Message édité par: salim, à: 26/01/2006 03:31
 

Pièces jointes

  • Dolphin_20060126032703.zip
    11.9 KB · Affichages: 12

Discussions similaires

Réponses
2
Affichages
86

Statistiques des forums

Discussions
312 492
Messages
2 088 895
Membres
103 982
dernier inscrit
krakencolas