Comment créer de nouvelles feuilles pour chaque ligne dans Excel ?
Dans les tâches de gestion de données ou de création de rapports, il peut parfois être nécessaire de séparer chaque enregistrement d'un tableau dans sa propre feuille de calcul. Par exemple, si vous maintenez une liste de détails d'étudiants dans Excel, avec chaque ligne représentant des informations pour un étudiant différent, vous pourriez souhaiter générer une feuille distincte pour chaque étudiant, chacune contenant leurs données spécifiques. Sinon, vous pouvez simplement vouloir diviser chaque ligne — quel que soit son contenu — afin que chacune soit placée dans une nouvelle feuille de calcul individuelle. Créer manuellement et copier les données dans de nouvelles feuilles peut être chronophage et sujet aux erreurs, surtout si vous travaillez avec un grand ensemble de données. Automatiser ce processus permet de gagner beaucoup de temps et réduit le risque d'erreurs. Ce guide vous explique deux solutions pratiques pour créer de nouvelles feuilles pour chaque ligne dans Excel et détaille les avantages et inconvénients de chaque méthode pour vous aider à choisir la meilleure approche pour votre situation.
Créer de nouvelles feuilles pour chaque ligne avec du code VBA
Créer de nouvelles feuilles pour chaque ligne avec l'utilitaire Split Data de Kutools pour Excel
Créer de nouvelles feuilles pour chaque ligne avec du code VBA
L'utilisation de VBA (Visual Basic for Applications) est un moyen efficace d'automatiser les tâches Excel qui seraient autrement fastidieuses et répétitives. Avec VBA, vous pouvez rapidement créer de nouvelles feuilles de calcul pour chaque ligne de vos données, soit en regroupant les lignes selon une colonne (comme un nom d'étudiant), soit en créant une feuille pour chaque ligne, indépendamment du contenu. Cette approche convient aux utilisateurs familiers avec l'éditeur VBA et qui préfèrent une solution hautement personnalisable. Cependant, elle nécessite de modifier et exécuter du code, ce qui peut ne pas convenir aux utilisateurs n'ayant pas d'expérience en VBA ou ne disposant pas des permissions pour exécuter des macros dans leur environnement.
1. Appuyez sur "Alt" + "F11" pour ouvrir la fenêtre Microsoft Visual Basic for Applications, qui vous permet d'accéder au code VBA pour automatiser les opérations Excel.
2. Dans la fenêtre Microsoft Visual Basic for Applications, cliquez sur Insert > Module pour ajouter un nouveau module de code. Ensuite, copiez et collez le code suivant dans la fenêtre Module.
Code VBA : créer une nouvelle feuille pour chaque ligne basée sur une colonne
Sub parse_data()
'Update by Extendoffice 2018/3/2
Dim xRCount As Long
Dim xSht As Worksheet
Dim xNSht As Worksheet
Dim I As Long
Dim xTRrow As Integer
Dim xCol As New Collection
Dim xTitle As String
Dim xSUpdate As Boolean
Set xSht = ActiveSheet
On Error Resume Next
xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
xTitle = "A1:C1"
xTRrow = xSht.Range(xTitle).Cells(1).Row
For I = 2 To xRCount
Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
Next
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCol.Count
Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
Set xNSht = Nothing
Set xNSht = Worksheets(CStr(xCol.Item(I)))
If xNSht Is Nothing Then
Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
xNSht.Name = CStr(xCol.Item(I))
Else
xNSht.Move , Sheets(Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Next
xSht.AutoFilterMode = False
xSht.Activate
Application.ScreenUpdating = xSUpdate
End Sub
Explication des paramètres et conseils d'utilisation :
- A1:C1 est la plage d'en-tête de votre tableau de données. Ajustez cette référence pour correspondre à votre zone d'en-tête de données réelle si nécessaire.
- Le code collecte les valeurs uniques de la colonne spécifiée (par défaut, la colonne A). Chaque valeur unique obtient sa propre feuille de calcul avec les lignes correspondantes.
- Si votre tableau est plus large ou commence à partir d'une autre ligne, mettez à jour
xTitle
et les références de cellules en conséquence. - Si votre feuille de calcul contient des formules faisant référence à d'autres feuilles, vérifiez les références après avoir divisé.
3. Appuyez sur la touche F5 ou cliquez sur Exécuter pour lancer le code. De nouvelles feuilles de calcul seront créées après toutes les feuilles existantes dans le classeur actuel, chacune nommée en fonction de la valeur unique de la colonne choisie. Consultez la capture d'écran ci-dessous pour un exemple de résultat :
Si vous souhaitez simplement diviser chaque ligne dans sa propre feuille de calcul, indépendamment du contenu des colonnes, vous pouvez utiliser le code VBA alternatif suivant. Cela élimine la nécessité de spécifier une condition de colonne.
Code VBA : Créer directement une nouvelle feuille pour chaque ligne
Sub RowToSheet()
Dim xRow As Long
Dim I As Long
With ActiveSheet
xRow = .Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To xRow
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
.Rows(I).Copy Sheets("Row " & I).Range("A1")
Next I
End With
End Sub
Après avoir exécuté ce code dans le module, chaque ligne de la feuille active — y compris la ligne d'en-tête — sera copiée dans une nouvelle feuille de calcul créée. Notez que la ligne d'en-tête est également dupliquée ; si vous souhaitez éviter cela, vous devrez peut-être supprimer ou ajuster manuellement les feuilles de sortie par la suite.
Dépannage et conseils pratiques :
- Si vous rencontrez une erreur telle que "Indice hors limite", assurez-vous que les noms de vos feuilles ne contiennent pas de caractères invalides ou de noms en double.
- Les grands ensembles de données peuvent entraîner un grand nombre de feuilles, ce qui peut ralentir Excel ou rendre la navigation difficile. Considérez si le fractionnement par ligne est nécessaire pour les très grands tableaux.
- Gardez toujours une sauvegarde de vos données avant d'exécuter du code VBA pour éviter toute perte de données involontaire.
Avantages : Gratuit ; hautement personnalisable.
Inconvénients : Nécessite l'activation de VBA/macros et une certaine familiarité avec l'éditeur VBA ; potentiel d'erreurs de code avec des données complexes ou inhabituelles.
Adapté pour : Utilisateurs ayant besoin de flexibilité de script, et pour des tâches ponctuelles ou irrégulières.
Créer de nouvelles feuilles pour chaque ligne avec l'utilitaire Split Data de Kutools pour Excel
Si vous préférez une approche simple et conviviale sans écrire de code, l'utilitaire Split Data de Kutools pour Excel est fortement recommandé. Cette fonction vous aide à diviser les données en nouvelles feuilles de calcul rapidement avec quelques clics seulement, simplifiant considérablement le processus de gestion des feuilles de calcul. Kutools est particulièrement utile pour les utilisateurs qui gèrent régulièrement de grands tableaux complexes ou qui préfèrent les interfaces graphiques à la programmation manuelle. Notez que Kutools est un add-in Excel et doit être installé à l'avance.
1. Sélectionnez le tableau contenant les données que vous souhaitez diviser en feuilles individuelles. Ensuite, cliquez sur l'onglet Kutools Plus et sélectionnez Split Data. Reportez-vous à la capture d'écran ci-dessous pour plus de clarté :
2. Dans la boîte de dialogue Diviser les données en plusieurs feuilles de calcul, choisissez les paramètres appropriés en fonction de vos besoins de division.
A. Pour créer de nouvelles feuilles basées sur des valeurs de colonne :
B. Pour créer directement de nouvelles feuilles pour chaque ligne :
Après exécution, un nouveau classeur sera généré contenant toutes les nouvelles feuilles de calcul — chacune peuplée en fonction des paramètres que vous avez sélectionnés.
Création de nouvelles feuilles pour chaque ligne basée sur des valeurs de colonne :
Création d'une nouvelle feuille pour chaque ligne sans tenir compte des valeurs de colonne :
Précautions et conseils pratiques :
- Avant d'utiliser l'utilitaire Split Data, assurez-vous qu'il n'y a pas de lignes vides dans votre tableau, car cela pourrait entraîner des feuilles vides.
- Revoyez les conventions de nommage des feuilles pour éviter des noms de feuilles en double ou invalides ; Kutools ajustera automatiquement en cas de conflit de noms.
- Le processus peut générer un grand nombre de feuilles de calcul si votre tableau est très volumineux, alors considérez cela avant de continuer.
Avantages : Facile à utiliser sans codage requis ; adapté pour le traitement par lots et les tâches fréquentes.
Inconvénients : Nécessite l'installation de l'add-in Kutools.
Adapté pour : Tous niveaux d'utilisateurs Excel, en particulier ceux traitant de la segmentation répétitive des données.
Kutools pour Excel - Boostez Excel avec plus de 300 outils essentiels. Profitez de fonctionnalités IA gratuites en permanence ! Obtenez-le maintenant
Démo : Créer de nouvelles feuilles pour chaque ligne avec l'utilitaire Split Data de Kutools pour Excel
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!