VBA: Find (valeur exacte)

Bonjour à tous,

En voulant répondre à un autre poste, je rencontre un problème avec Find,

Je me demande si cette fonction est bien adaptée à la demande

ou si il manque une option sur la ligne

Set c = Rows(1).Find(Cells(3, i), LookIn:=xlValues)

détail sur fichier

Bonne journée

Claude

643question-find.zip (13.96 Ko)

Bonjour Claude,

Pour une recherche sur une ligne je ne sais pas, en général je m'en suis plutôt servis pour des recherches sur une colonne dans ce genre là :

typ = Worksheets("Menuiserie").Range("E9").Value

With Worksheets("Biblio_Men_PVC").Range("E5:E2000")
    Set c = .Find(typ, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstaddress = c.Address
        Do
           ' traitement
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstaddress
    End If
End With

Donc si on prend la ligne en question dont tu parles, pour moi ta proposition me semble "valide", donc effectivement, c'est peut-être la fonction Find elle-même qui n'est pas adaptée.

Ceci dit, étant au travail, je n'ai pas eu le temps de regarder le fichier en question, peut-être ce week-end si j'ai le temps.

Cordialement,

Bonjour

Ffind garde les "réglages" précédents

Pour cela que dans les find que je fais j'ai toujours l'option Lookin et LookAt

Donc ta ligne devient

Set c = Rows(1).Find(Cells(3, i), LookIn:=xlValues), Lookat:=xlWhole)

Extrait de l'aide

Notes

Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucun paramètre pour ces arguments lors du prochain appel de la méthode, les paramètres enregistrés sont utilisés. Le fait de définir les paramètres de ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments de façon explicite chaque fois que vous utilisez cette méthode.

Bonjour,

En essayant avec cette ligne, cela te convient ?

Set c = Rows(1).Find(Cells(3, i), LookIn:=xlValues, lookat:=xlWhole)

edit: banzai plus rapide

re,

Me semblait bien qu'il manquait un argument,

maintenant, c'est correct.

merci à tous

Claude

Rechercher des sujets similaires à "vba find valeur exacte"