Recherche VBA sur une ligne

bonjour

j'ai un code vba qui me permet de chercher un mot dans une feuille et de copier les données situes sous le mot cherche

cela fonctionne pas trop mal

sauf que j'aimerai que cette recherche s'effectue que sur la ligne A9 ou que a partir de la ligne a9 de la feuille

voici le code VBA en question

Sub copy()
'copie 

 Dim Cel As Range, Lig As Long

    With Sheets("Accueil").Cells
        Set Cel = .Find("Age", LookIn:=xlValues)
        If Not Cel Is Nothing Then
            Lig = .Cells(.Rows.Count, Cel.Column).End(xlUp).Row
            With Cel
                Range(Cells(.Row, .Column), Cells(Lig, .Column)).copy
                Sheets("Prepa").Range("F3").PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
            End With
        End If
    End With

    Set Cel = Nothing

End Sub

Voici une solution a essayé ??

Si c'est ce que j'ai compris..

Il te fera la recherche que sur la ligne 9.

    Sub copy()
    'copie

     Dim Cel As Range, Lig As Long

        With Sheets("Accueil").Cells
           Rows("9:9").Select
            Set Cel = .Find("Age", LookIn:=xlValues)
            If Not Cel Is Nothing Then
                Lig = .Cells(.Rows.Count, Cel.Column).End(xlUp).Row
                With Cel
                    Range(Cells(.Row, .Column), Cells(Lig, .Column)).copy
                    Sheets("Prepa").Range("F3").PasteSpecial Paste:=xlPasteValues
                    Application.CutCopyMode = False
                End With
            End If
        End With

        Set Cel = Nothing

    End Sub

merci pour ta proposition

mais cela ne semble pas etre la solution aux problème , cela ne change rien

et en utilisant range ?

oui , par contre tu as bien compris le problème , il faut trouver un mot a partir de la ligne 9 de la page d'acceuil

ma macro ne fonctionne pas car

le mot se trouve parfois Egalement dans des lignes précédentes ligne 6 ou ligne 7

et donc il commence la copie en ligne 6

Bonjour,

Essaie comme cela

Sub copy()
Dim Cel As Range, MaPlage As Range
Dim Lig As Long
    With Sheets("Accueil")
        'Définition de la plage de recherche
        Set MaPlage = .Range("A9", .Cells(Rows.Count, Columns.Count))
        'Recherche dans la plage
        Set Cel = MaPlage.Find("Age", LookIn:=xlValues)
        If Not Cel Is Nothing Then
            'Copie depuis la cellule trouvée jusqu'à la dernière ligne renseignée
            .Range(Cel, .Cells(Rows.Count, Cel.Column).End(xlUp)).copy
            'Collage à partir de F3 dans la feuille "Prepa"
            Sheets("Prepa").Range("F3").PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
        End If
    End With
    Set Cel = Nothing: Set MaPlage = Nothing
End Sub

A+

bonjour

oui c'est cela fonctionne parfaitement merci

Rechercher des sujets similaires à "recherche vba ligne"