Copier une ligne contenant un mot

Bonjour à tous,

j'ai tenté une macro mais je dois me louper à quelque part....

Mon but :

- je complète la Feuil1

- la macro va chercher sur la Feuil1 toutes les lignes qui contient dans la colonne E, le mot OK

- la macro va me copier toutes les lignes où le mot OK est mentionné en E

- ensuite cela va coller les lignes dans la Feuil2, dans l'idéal depuis la ligne 5, ou alors même mieux, cela me génère un nouveau document Excel

Je sèche

8organisation.xlsm (25.07 Ko)

Bonjour,

A tester

43organisation.xlsm (25.65 Ko)

Ca fonctionne super bien merci beaucoup !

Dernières choses :

- est-ce que je peux ajouter une variable pour que si le terme ok est en minuscule cela prenne aussi. J'ai mis ceci, je suis bon ?

Option Explicit

Sub Test()
    Dim Lig&, DerL&
    DerL = 7
    Feuil2.Range("A7:G" & Range("A" & Rows.Count).End(xlUp).Row).Clear
    For Lig = 7 To Feuil1.Range("F" & Rows.Count).End(3).Row
        If Feuil1.Cells(Lig, 6) = "OK" Then
            Feuil1.Rows(Lig).Copy Feuil2.Range("A" & DerL)
            DerL = DerL + 1
            Feuil2.Select
            End If
        If Feuil1.Cells(Lig, 6) = "ok" Then
            Feuil1.Rows(Lig).Copy Feuil2.Range("A" & DerL)
            DerL = DerL + 1
            Feuil2.Select
            End If
    Next
End Sub

- je peux remplacer Feuil1 par activesheet si je veux ajouter des feuilles ?

Re

En dessous de Option explicit

rajoute cette ligne

Option Compare Text

Ca fonctionne parfaitement merci !

- je peux remplacer Feuil1 par activesheet si je veux ajouter des feuilles et que je veux la même macro sur les feuilles suivantes mais que cela copie uniquement sur la Feuil2 ?

Mon idée serait de mettre dans ThisWorkbook :

Option Explicit
Option Compare Text

Sub Test()
    Dim Lig&, DerL&
    DerL = 7
    Feuil2.Range("A7:G" & Range("A" & Rows.Count).End(xlUp).Row).Clear
    For Lig = 7 To Feuil1.Range("F" & Rows.Count).End(3).Row
        If Feuil1.Cells(Lig, 6) = "OK" Then
            Feuil1.Rows(Lig).Copy Feuil2.Range("A" & DerL)
            DerL = DerL + 1
            Feuil2.Select
            End If
       Next
End Sub

Mais j'ai remarqué que cela ne prend qu'une seule ligne....

Re,

Non place la macro dans un module

Option Explicit
Option Compare Text
Sub Test()
    Dim Lig&, DerL&
    Dim Ws As Worksheet
    Set Ws = ActiveSheet
    DerL = 7
    Feuil2.Range("A7:F" & Range("A" & Rows.Count).End(xlUp).Row).Clear
    For Lig = 7 To Ws.Range("E" & Rows.Count).End(3).Row
        If Ws.Cells(Lig, 5) = "OK" Then
            Ws.Rows(Lig).Copy Feuil2.Range("A" & DerL)
            DerL = DerL + 1
        End If
    Next
End Sub

Merci !!

Rechercher des sujets similaires à "copier ligne contenant mot"