1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Dim Lastlig As Long, i As Long
Dim Kol As New Collection
Dim Sh As Worksheet
Application.ScreenUpdating = False
With Sheets("SOURCE") 'Adapter le nom de la feuille
.AutoFilterMode = False 'Supprime le filtre auto
Lastlig = .Cells(Rows.Count, "A").End(xlUp).Row 'Ligne de la dernière cellule remplie de la colonne A
For i = 2 To Lastlig
On Error Resume Next
Kol.Add .Range("A" & i), .Range("A" & i) 'On parcours les cellules de la colonne A et en remplit dans Kol les codes sans doublons
On Error GoTo 0
Next i
For i = 1 To Kol.Count 'On boucle sur tous les codes (lignes de productions)
'-----------------------------------------------------------------------
On Error Resume Next
Set Sh = Sheets(CStr(Kol(i)))
On Error GoTo 0 'On cherche si la feuille existe déjà
If Not Sh Is Nothing Then
Application.DisplayAlerts = False 'Si oui, on la supprime
Sh.Delete
Application.DisplayAlerts = True
End If
'------------------------------------------------------------------------
Set Sh = Sheets.Add(after:=Sheets(Sheets.Count)) 'On ajoute une nouvelle feuille
Sh.Name = Kol(i) 'On la renomme par le code
'------------------------------------------------------------------------
.Range("A1").AutoFilter Field:=1, Criteria1:=Kol(i) 'On filtre sur le code
.Range("A1:A" & Lastlig).SpecialCells(xlCellTypeVisible).EntireRow.Copy Sh.Range("A1") 'On copie toutes les lignes dans la feuille créée
Set Sh = Nothing
Next i
.AutoFilterMode = False 'Supprime le filtre auto
End With |
Partager