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
| Sub ExportEmployes()
Dim ws As Worksheet
Dim newWs As Worksheet
Dim employe As String
Dim lastRow As Long
Dim i As Long
Dim j As Long
Set ws = ThisWorkbook.Sheets("Feuil1") 'Nom de la feuille contenant les données
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 'Dernière ligne de la colonne "Code Employé"
For i = 2 To lastRow 'Boucle pour parcourir chaque ligne (en commençant à la ligne 2 pour ignorer les en-têtes)
employe = ws.Cells(i, 1).Value 'Récupération du code employé
On Error Resume Next 'Ignorer les erreurs (si la feuille existe déjà)
Set newWs = ThisWorkbook.Sheets(employe) 'Tentative de sélectionner la feuille correspondant au code employé
If Err.Number <> 0 Then 'Si la feuille n'existe pas
Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) 'Création d'une nouvelle feuille
newWs.Name = employe 'Renommage de la nouvelle feuille avec le code employé
ws.Rows(1).Copy newWs.Rows(1) 'Copie des en-têtes dans la nouvelle feuille
End If
On Error GoTo 0 'Réactivation des erreurs
j = newWs.Cells(newWs.Rows.Count, 1).End(xlUp).Row + 1 'Dernière ligne vide de la colonne "Code Employé" dans la nouvelle feuille
ws.Rows(i).Copy newWs.Rows(j) 'Copie des données dans la nouvelle feuille
Next i
End Sub |
Partager