Boucle copier coller ligne condition valeur de la colonne C

bonjour

je suis novice en vba et je suis entrain de faire une macro qui me permettra de reaffecter les données dans chaque feuille selon une condition.

par exemple mon fichier s'appelle "implant" et il se presente dans un tableau tel que celui-ci

colonne A colonne b colonne c

CODE IN LIBELLE PRODUIT CODE GEO

3675201 DONORMYL 1101105

3611738 PREDNISOLONE 4101110

3939775 TEMERIT 1101115

3194631 CORRECTOL 2101120

3780808 RILMENIDINE 1101125

3290381 RULID 1101130

3592254 ARIXTRA 1101135

3447463 HUMEX RHUME 21101140

je souhaiterais copier sur la feuille 2 toutes les lignes dont la valeur de la colonne C est >= 1101105 et inferieur ou egale à 1122750 et je souhaiterais copier sur la feuille 3 toutes les lignes dont la valeur de la colonne C est >= 2101105 et inferieur ou egale à 4124750

et je souhaiterais copier sur la feuille 4 toutes les lignes dont la valeur de la colonne C est >= 21101105 et inferieur ou egale à 28001100

svp quelqu'un pourrait -il m'aider ?

j'ai fais cette macro mais la troisieme condition ne se vérifie pas car les données s'incremente pas dans dans la feuil4 et nul par ailleurs et meme lorsque la condition est remplie.

With Sheets("implant")

Set plage = .Range("C2:C" & .Range("C65000").End(xlUp).Row)

Dim range as plage

For Each c In plage

If c.Value >= "1101105" And c.Value <= "1122750" Then

x = Sheets("feuil2").Range("C65000").End(xlUp).Row + 1

c.EntireRow.Copy Sheets("feuil2").Rows(x)

ElseIf c.Value >= "2101105" And c.Value <= "4124750" Then

x = Sheets("feuil3").Range("c65000").End(xlUp).Row + 1

c.EntireRow.Copy Sheets("feuil3").Rows(x)

ElseIf c.Value >= "21101105" And c.Value <= "28001100" Then

x = Sheets("feuil4").Range("c65000").End(xlUp).Row + 1

c.EntireRow.Copy Sheets("feuil4").Rows(x)

End If

End With

en vous remerciant pour votre aide sonia.kali

223macro-test.xlsx (10.17 Ko)

bonjour,

macro adaptée, à tester

Sub copie()

    With Sheets("implant")
        Set plage = .range("C2:C" & .range("C65000").End(xlUp).Row)
        For Each c In plage
            If c.Value >= 1101105 And c.Value <= 1122750 Then
                x = Sheets("feuil2").range("C65000").End(xlUp).Row + 1
                .Rows(c.Row).Copy Sheets("feuil2").range("A" & x)
            ElseIf c.Value >= 2101105 And c.Value <= 4124750 Then
                x = Sheets("feuil3").range("c65000").End(xlUp).Row + 1
                .Rows(c.Row).Copy Sheets("feuil3").range("A" & x)
            ElseIf c.Value >= 21101105 And c.Value <= 28001100 Then
                x = Sheets("feuil4").range("c65000").End(xlUp).Row + 1
                .Rows(c.Row).Copy Sheets("feuil4").range("A" & x)
            End If
        Next

    End With

End Sub

merci beaucoup, cela fonctionne

Rechercher des sujets similaires à "boucle copier coller ligne condition valeur colonne"