Find - première cellule de la ligne

Bonsoir,

Après 3 heures à chercher sans succès je donne ma langue au chat...

J'ai une feuille "pas touche", dans la colonne A des noms et dans la colonne G je cherche à insérer le résultat d'une recherche .

Cette recherche se fait sur la feuille "récap", une fois la donnée trouvée le résultat doit être le contenu de la colonne A de cette même ligne.

Voici ce que j'ai écrit :

With Worksheets("recap").Cells
nomcherche = Sheets("pas touche").Range("A2")
Set Client = .Find(nomcherche, LookIn:=xlValues)
If Not Client Is Nothing Then Worksheets("pas touche").Range("G2") = Cells(Client.Row, 1)
End With

Mais ça ne fonctionne pas, le résultat n'est pas le bon. C'est mon Cells(Client.Row, 1) qui n'est pas juste mais je ne parviens pas à trouver la bonne syntaxe.

Pouvez vous m'aider ?

Ensuite je devrai effectuer cette recherche pour tous les noms de ma colonne A, donc étendre cette "formule" sur toute ma colonne A, et ça je ne sais pas comment m'y prendre....

Un grand merci pour votre aide précieuse et bon week-end.

Bonjour,

Essayez ceci:

Sub Recup_Donnees()
    'Déclaration des variables
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig_f2 As Long, i As Long
    Dim Client As Range
    Dim NomCherche As String

    Set f1 = Sheets("recap") 'attribution de la variable f1 à la feuille "recap"
    Set f2 = Sheets("pas touche") 'attribution de la variable f2 à la feuille "pas touche"
    DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row 'dernère ligne de la colonne A de f2
    For i = 2 To DerLig_f2 'De la ligne 2 jusqu'à la dernière de f2
        With f1.Cells
            NomCherche = f2.Cells(i, "A")
            Set Client = .Find(NomCherche, Lookat:=xlWhole) 'valeur exacte recherchée
            If Not Client Is Nothing Then f2.Cells(i, "G") = f1.Cells(Client.Row, 1)
        End With
    Next i
    'Libération de la mémoire
    Set Client = Nothing
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Dans votre essai, il manquait de préciser le nom "Sheets("recap")"

If Not Client Is Nothing Then Worksheets("pas touche").Range("G2") = Sheets("recap").Cells(Client.Row, 1)

Cdlt

TOP !

Merci beaucoup Arturo83

Rechercher des sujets similaires à "find premiere ligne"