1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub copie()
col = 4
ligne = Range("D" & Rows.Count).End(xlUp).Row
'numero de la colonne de test et calcul du nb de ligne
Dim d, f As Integer 'debut et fin de zone de copie
Data = ActiveSheet.Name
d = 6 'initialisation de la plage a copier
For i = 6 To ligne
' MsgBox d
If Not (Sheets(Data).Cells(i, col) = Sheets(Data).Cells(i + 1, col)) Then
'MsgBox Cells(i, col) & Cells(i + 1, col)
nom = Sheets(Data).Cells(i, col)
Sheets.Add 'ajout de feuille
ActiveSheet.Name = nom
f = i 'valeur différente donc fin de la plage a copier
Sheets(Data).Rows("1:5").Copy 'copie des en-têtes
Sheets(nom).Rows("1:5").PasteSpecial 'changer sheets par le nomveau nom
' MsgBox "zone = " & d & " - " & f
Sheets(Data).Rows(d & ":" & f).Copy 'copie des données
Sheets(nom).Rows("6:" & 6 + f - d).PasteSpecial 'changer sheets par le nomveau nom
d = i + 1 'début de la plage suivante
End If
Next i
End Sub |
Partager