Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

XL2007 : Cells.find

2 réponses
Avatar
le Nordiste
Bonjour,

Je suis sous excel 2007.
J'ai deux fichiers REQ.txt et Analyse.xlsx
Je d=E9sire trouver dans REQ.txt les valeurs de la colonne A de
Analyse.xlsx
Mon code -ci-dessous- me retourne syst=E9matiquement "vide",
m=EAme si la valeurs cherch=E9e est pr=E9sente dans REQ.txt


For Each cellule In Range("a2:a2000")
'valeur =E0 rechercher
Windows("Analyse.xlsx").Activate
strCherch=E9 =3D cellule.Value
'o=F9 la trouver
Windows("REQ.txt").Activate
Set PrestaTrouv=E9 =3D Range("A1:U92014").Find(What:=3DstrCherch=E9,
After:=3DActiveCell, LookIn:=3DxlFormulas, _
LookAt:=3DxlWhole, SearchOrder:=3DxlByRows, _
SearchDirection:=3DxlNext, MatchCase:=3DFalse,
_
SearchFormat:=3DFalse).Activate
If PrestaTrouv=E9 Is Nothing Then MsgBox "Found" Else
RangeObj.Select
Next cellule

Remercierments anticip=E9s pour votre aide

2 réponses

Avatar
Jac
Bonjour le nordiste,

et si par macro tu mettais en place un recherchev, quitte à faire
ensuite un copier / coller les valeurs ?

Jac

le Nordiste avait énoncé :
Bonjour,

Je suis sous excel 2007.
J'ai deux fichiers REQ.txt et Analyse.xlsx
Je désire trouver dans REQ.txt les valeurs de la colonne A de
Analyse.xlsx
Mon code -ci-dessous- me retourne systématiquement "vide",
même si la valeurs cherchée est présente dans REQ.txt


For Each cellule In Range("a2:a2000")
'valeur à rechercher
Windows("Analyse.xlsx").Activate
strCherché = cellule.Value
'où la trouver
Windows("REQ.txt").Activate
Set PrestaTrouvé = Range("A1:U92014").Find(What:=strCherché,
After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:úlse,
_
SearchFormat:úlse).Activate
If PrestaTrouvé Is Nothing Then MsgBox "Found" Else
RangeObj.Select
Next cellule

Remercierments anticipés pour votre aide


Avatar
michdenis
Bonjour,

J'ai testé cette macro réalisée à partir de la tienne.

Elle fonctionne très bien !

Cette macro doit être placé dans un module de ton classeur
qui n'est pas le fichier "texte". Tu dois adapter le nom des
objets dans la procédure.

Attention, si ton fichier provient d'une importation, il est possible
que certaines cellules contiennent le caractère ascii 160 (espace insécable)
qui n'est pas visible à l'oeil mais qui fausse le résultat de la recherche.

'-----------------------------------------
Sub test()
Dim Cellule As Range
Dim StrCherché As String
With Worksheets("Feuil3")
For Each Cellule In .Range("A2:A2000")
StrCherché = Cellule.Value
With Workbooks("REQ.txt")
With .Worksheets("REQ")
With .Range("A:D")
Set found = .Find(What:=StrCherché, _
After:Îllule, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:úlse, _
SearchFormat:úlse)
End With
End With
End With
If Not found Is Nothing Then
'Si tu veux sélectionner la cellule,
'la feuille où sont tes données doit
'être la feuille active.
MsgBox "Trouvé"
Else
MsgBox "Non trouvé"
End If
Next
End With
End Sub
'-----------------------------------------



"le Nordiste" a écrit dans le message de groupe de discussion
:
Bonjour,

Je suis sous excel 2007.
J'ai deux fichiers REQ.txt et Analyse.xlsx
Je désire trouver dans REQ.txt les valeurs de la colonne A de
Analyse.xlsx
Mon code -ci-dessous- me retourne systématiquement "vide",
même si la valeurs cherchée est présente dans REQ.txt


For Each cellule In Range("a2:a2000")
'valeur à rechercher
Windows("Analyse.xlsx").Activate
strCherché = cellule.Value
'où la trouver
Windows("REQ.txt").Activate
Set PrestaTrouvé = Range("A1:U92014").Find(What:=strCherché,
After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:úlse,
_
SearchFormat:úlse).Activate
If PrestaTrouvé Is Nothing Then MsgBox "Found" Else
RangeObj.Select
Next cellule

Remercierments anticipés pour votre aide