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
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