Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment créer de nouvelles feuilles pour chaque ligne dans Excel?

Supposons que vous ayez une table de score avec le nom de tous les élèves dans la colonne A. Maintenant, vous voulez créer de nouvelles feuilles basées sur ces noms dans la colonne A, et faire par feuille contient les données d'un étudiant unique. Ou créez simplement une nouvelle feuille pour chaque ligne de la table sans tenir compte du nom dans la colonne A. Dans cet article, vous obtiendrez des méthodes pour y parvenir.

Créer de nouvelles feuilles pour chaque ligne avec le code VBA

Créez de nouvelles feuilles pour chaque ligne avec l'utilitaire Split Data de Kutools for Excel


Créez facilement de nouvelles feuilles pour chaque ligne ou en fonction d'une valeur de colonne spécifique dans Excel:

Si vous avez Kutools for Excel, son utilité - Diviser les données peut vous aider à créer rapidement de nouvelles feuilles en fonction de valeurs spécifiques ou à créer de nouvelles feuilles pour chaque ligne d’Excel. Voir la capture d'écran:

Kutools for Excel: avec plus que 200 compléments Excel pratiques, libre d'essayer sans limitation dans les jours 60. Téléchargez et essai gratuit maintenant!


Créer de nouvelles feuilles pour chaque ligne avec le code VBA


Avec les codes suivants, vous pouvez créer une nouvelle feuille en fonction des valeurs de colonne ou simplement créer de nouvelles feuilles pour chaque ligne dans Excel.

1. presse autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur insérer > Module. Puis collez le code suivant dans le Module fenêtre.

Code VBA: créer une nouvelle feuille pour chaque ligne en fonction de la 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

Note: A1: C1 est la gamme de titres de votre table. Vous pouvez le changer en fonction de vos besoins.

3. presse F5 clé pour exécuter le code, puis de nouvelles feuilles de calcul sont créées après toutes les feuilles de calcul du classeur en cours comme ci-dessous capture d'écran:

Si vous souhaitez créer directement de nouvelles feuilles pour chaque ligne sans tenir compte de la valeur de la colonne, vous pouvez utiliser le code suivant.

Code VBA: Créez 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 l'exécution du code, chaque ligne de la feuille de calcul active sera placée dans une nouvelle feuille de calcul.

Note: La ligne de titre sera également placée dans une nouvelle feuille avec ce code VBA.


Créez de nouvelles feuilles pour chaque ligne avec l'utilitaire Split Data de Kutools for Excel

En fait, la méthode ci-dessus est compliquée et difficile à comprendre. Dans cette section, nous vous présentons la Diviser les données utilité de Kutools for Excel.

Kutools for Excel : avec plus de 300 compléments Excel pratiques, gratuit pour essayer sans limitation dans 60 jours.

1. Sélectionnez la table que vous devez utiliser pour créer de nouvelles feuilles, puis cliquez sur Kutools Plus> Spit Data. Voir la capture d'écran:

2. dans le Diviser les données en plusieurs feuilles de travail boîte de dialogue, s'il vous plaît faites comme suit.

A. Pour créer de nouvelles feuilles basées sur la valeur de la colonne:

1). Veuillez sélectionner le Colonne spécifique option et spécifiez une colonne à partir de laquelle vous souhaitez fractionner les données dans la liste déroulante;

2). Si vous souhaitez nommer les feuilles de calcul avec des valeurs de colonne, sélectionnez Valeurs de la colonne le Règles la liste déroulante;

3). Clique le OK bouton. Voir la capture d'écran:

B. Pour créer directement de nouvelles feuilles pour chaque rangée:

1). Sélectionner Lignes fixes option, entrez le numéro 1 dans la boîte;

2). Sélectionner Numéros de ligne du Règles la liste déroulante;

3). Clique le OK bouton. Voir la capture d'écran:

un nouveau classeur est créé avec toutes les nouvelles feuilles à l'intérieur. Voir les captures d'écran ci-dessous.

Création de nouvelles feuilles pour chaque ligne en fonction de la valeur de la colonne:

Créer une nouvelle feuille pour chaque ligne sans tenir compte de la valeur de la colonne:

Créez de nouvelles feuilles pour chaque ligne avec l'utilitaire Split Data de Kutools for Excel

Kutools for Excel comprend plus de 300 outils maniables Excel. Gratuit pour essayer sans limitation dans les jours 60. Téléchargez l'essai gratuit maintenant!



Outils de productivité recommandés

Office Tab

étoile d'or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d'or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d'or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d'écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    ComplianceHound · 2 months ago
    This is great code. Many thanks to brain-boxes at OfficeExtend !! Is there anyway this code could be slightly adapted to to create separate sheets for each *column* instead of row? I've attached a picture of what I'm trying to achieve. Is this possible? Kind regards.
  • To post as a guest, your comment is unpublished.
    Sam · 3 months ago
    Great code, but could I get some help if I my data is on column G instead of column A? what do I need to change to have the Column G data in different tab?

    Thanks
  • To post as a guest, your comment is unpublished.
    Michele · 5 months ago
    Hi, is there a way to keep the heading row on each new worksheet? (circled in red on my attachment)

    The code takes all the rows from my master worksheet and transfers them into new worksheets, which is great. But I want to keep my "master" header value (circled in red) at the top of each new worksheet. Thanks!



    I'm referring to this code from above:

    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
  • To post as a guest, your comment is unpublished.
    BK TAN · 8 months ago
    Hello, I think there is something useful here for my situation, but I'm able to to do VBA or script, hope you can help.
    I have a template w/ many cells to fill with data, and there will be a search key (non unique) that I would like to enter into the template. Based on the search key, the data is searched and corresponding data on the matched key is fetched and filled into the template. The filled template is saved into a new worksheet. There maybe more than 1 match entries. I need the script to continue search down the list, until all matches are picked, and the certain number of new worksheets created.
  • To post as a guest, your comment is unpublished.
    Beatriz · 1 years ago
    Hello I tried to use your code but I get an error
    Run-timeerror '1004':
    Application-defined or object-defined error
    I have no knowledge of VBA (or any technology for that matter) but if a press debug it highlights line 11 xRCount=xSht.Cells(xSht.Rows.Count,1). End(xIUp).Row
    I am working with a large file that has 127 columns and 337 rows (rows will vary columns won't) and it is a list with I'd numbers and their details.
    I did change the range as you noted but still doesn't work I'm using Excel 2010 could you please tell me how to make it work if possible
    Thank you
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Beatriz,
      The code is updated with the problem solving. Please try it again. Thank you for your comment.