Bonjour
Sub Macro1()
For Each c In Worksheets("Test").Range("B1:B10")
If c.Value = 1 Then
lig=lig+1
c.entirerow.Cut Worksheets("Feuil2").cells(lig,1)
End If
Next c
End Sub
le code ci-dessus parcourt une par une les cellules de la plage B1 à B10,
si une cellule contient la valeur 1
il incrémente un compteur de ligne lig
il coupe la ligne dans laquelle la valeur 1 a été trouvée et la colle en feuil2 en ligne dont le numéro est donné par lig.
c'est ce que tu avais demandé dans ton message initial.
Après je vois que tu as modifié ce code, pour copier sur des feuilles différentes en fonction de la valeur trouvée dans la colonne B
voici une proposition de correction.
Sub Macro2()
dim ligneF(3) ' compteur de ligne sur les feuilles zone1 à 3
For Each c In Worksheets("Test").Range("B2:B9")
select case c.value
case 1,2,3 'si c.value =1 ou 2 ou 3
ligneF(c.value)=ligneF(c.value)+1 'incrémente compteur de ligne pour zone 1 2 ou 3
c.EntireRow.Copy sheets("Zone" & c.value).cells(ligneF(c.value),1) 'copier la ligne dans la feuille zone 1 2 ou 3
end select
Next c
End Sub