KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Conseils Excel : Diviser les données en plusieurs feuilles de calcul / classeurs selon la valeur d’une colonne

AuteurXiaoyang Date de modification

Lorsque vous gérez de grands jeux de données dans Excel, il peut être très utile de diviser les données en plusieurs feuilles de calcul en fonction des valeurs d’une colonne spécifiée. Cette méthode améliore non seulement l’organisation des données, mais renforce également leur lisibilité et facilite l’analyse.

Imaginez que vous disposiez d’un vaste registre de ventes comprenant de nombreuses entrées, telles que le nom du produit et la quantité vendue au premier trimestre. L’objectif ? Répartir ces données en feuilles de calcul distinctes, une par produit, pour analyser individuellement les performances commerciales.

Diviser les données en plusieurs feuilles de calcul selon la valeur d’une colonne

Diviser les données en plusieurs classeurs selon la valeur d’une colonne avec un code VBA

Fractionner les données en plusieurs feuilles de calcul selon la valeur d'une colonne


Diviser les données en plusieurs feuilles de calcul selon la valeur d’une colonne

Généralement, vous pouvez trier préalablement votre liste de données, puis les copier-coller une par une dans de nouvelles feuilles de calcul. Toutefois, cette approche exige beaucoup de patience en raison du grand nombre d’opérations de copier-coller nécessaires. Dans cette section, nous vous présentons deux méthodes simples pour accomplir cette tâche efficacement dans Excel, vous permettant ainsi de gagner du temps et de réduire les risques d’erreurs.

Diviser les données en plusieurs feuilles de calcul selon la valeur d’une colonne avec un code VBA

1. Maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre du module.

Sub Splitdatabycol()
'updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
Dim xWS As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3. Appuyez ensuite sur la touche F5 pour exécuter le code. Une boîte de dialogue s’affiche alors afin que vous sélectionniez la ligne d’en-tête ; cliquez ensuite sur OK. Voir la capture d’écran :
fractionner les données en feuilles de calcul avec du code VBA pour sélectionner la ligne d'en-tête

4. Dans la deuxième boîte de dialogue, veuillez sélectionner les données de la colonne que vous souhaitez utiliser comme critère de division, puis cliquez sur OK. Voir la capture d’écran :
fractionner les données en feuilles de calcul avec du code VBA pour sélectionner la plage de données

5. Toutes les données de la feuille active sont réparties dans plusieurs feuilles de calcul, en fonction des valeurs de la colonne sélectionnée. Les nouvelles feuilles prennent pour nom les valeurs figurant dans les cellules divisées et sont insérées à la fin du classeur. Voir la capture d’écran :
fractionner les données en feuilles de calcul avec du code VBA pour obtenir le résultat

 

Diviser les données en plusieurs feuilles de calcul selon la valeur d’une colonne avec Kutools pour Excel

Kutools pour Excel propose une fonctionnalité intelligente : Diviser les données, directement dans votre environnement Excel. Fractionner des données en plusieurs feuilles de calcul n’est désormais plus un défi ! Notre outil intuitif divise automatiquement votre jeu de données selon la valeur choisie dans une colonne ou selon un nombre de lignes, garantissant que chaque élément se trouve exactement là où vous en avez besoin. Dites adieu à la fastidieuse tâche d’organisation manuelle de vos feuilles de calcul et adoptez une méthode plus rapide, sans erreur, pour gérer vos données.

Remarque:Pour appliquer cette Diviser les données, commencez par télécharger le Kutools pour Excel, puis utilisez la fonctionnalité rapidement et facilement.

Après avoir installé Kutools pour Excel, sélectionnez la plage de données, puis cliquez sur KUTOOLS PLUS > Diviser les données pour ouvrir la boîte de dialogue Diviser les données en plusieurs feuilles de calcul.

  1. Sélectionnez l’option Spécifier la colonne dans la section Critère de division, puis choisissez, dans la liste déroulante, la valeur de la colonne sur laquelle vous souhaitez fractionner les données.
  2. Si vos données comportent des en-têtes et que vous souhaitez les inclure dans chaque nouvelle feuille fractionnée, cochez l’option Inclure les titres. (Vous pouvez indiquer le nombre de lignes d’en-tête en fonction de votre jeu de données. Par exemple, si vos données contiennent deux lignes d’en-tête, saisissez 2.)
  3. Vous pouvez ensuite définir le critère de fractionnement « Nom de la feuille de calcul ». Dans la section Nom des feuilles de calcul créées, sélectionnez la règle « Nom de la feuille de calcul » dans la liste déroulante « Règles ». Vous pouvez également ajouter un Préfixe ou un Suffixe aux noms des feuilles.
  4. Cliquez sur le bouton OK. Voir la capture d’écran :
    fractionner les données en feuilles de calcul avec Kutools pour définir les opérations

Les données de la feuille de calcul sont désormais réparties sur plusieurs feuilles dans un nouveau classeur.
fractionner les données en feuilles de calcul avec Kutools pour obtenir le résultat


Diviser les données en plusieurs classeurs selon la valeur d’une colonne avec un code VBA

Parfois, plutôt que de diviser les données en plusieurs feuilles de calcul, il est plus avantageux de les répartir dans des classeurs distincts selon une colonne clé. Découvrez notre guide pas à pas pour automatiser cette opération à l’aide d’un code VBA, en fractionnant vos données en plusieurs classeurs selon les valeurs d’une colonne spécifiée.

1. Maintenez la touche ALT + F11 enfoncée pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre du module.

Sub SplitDataByColToWorkbooks()
    ' Updateby Extendoffice
    Dim lr As Long
    Dim ws As Worksheet
    Dim vcol, i As Integer
    Dim myarr As Variant
    Dim title As String
    Dim titlerow As Integer
    Dim xTRg As Range
    Dim xVRg As Range
    Dim xWS As Workbook
    Dim savePath As String
    ' Set the directory to save new workbooks
    savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
    Application.DisplayAlerts = False
    Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", Type:=8)
    If TypeName(xTRg) = "Nothing" Then Exit Sub
    Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", Type:=8)
    If TypeName(xVRg) = "Nothing" Then Exit Sub
    vcol = xVRg.Column
    Set ws = xTRg.Worksheet
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = xTRg.Address(False, False)
    titlerow = xTRg.Row
    ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
    myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
    ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
    For i = 2 To UBound(myarr)
        Set xWS = Workbooks.Add
        ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
        ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
        xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
        xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"

        xWS.Close SaveChanges:=False
    Next i
    ws.AutoFilterMode = False
    Application.DisplayAlerts = True
    ws.Activate
End Sub
Remarque: Dans le code ci-dessus, vous devez remplacer le Chemin du fichier par votre propre chemin d’enregistrement des Séparer le classeur dans ce script :savePath = «C:\Users\AddinsVM001\Desktop\multiple files\».

3. Appuyez ensuite sur la touche F5 pour exécuter le code. Une boîte de dialogue s’affiche alors afin que vous sélectionniez la ligne d’en-tête ; cliquez ensuite sur OK. Voir la capture d’écran :
fractionner les données en classeurs avec du code VBA pour sélectionner la ligne d'en-tête

4. Dans la deuxième boîte de dialogue, veuillez sélectionner les données de la colonne que vous souhaitez utiliser comme critère de division, puis cliquez sur OK. Voir la capture d’écran :
fractionner les données en classeurs avec du code VBA pour sélectionner la plage de données

5. Après le fractionnement, toutes les données de la feuille active sont réparties en plusieurs classeurs selon les valeurs de la colonne. Tous les classeurs séparés sont enregistrés dans le dossier que vous avez spécifié. Voir la capture d’écran :
fractionner les données en classeurs avec du code VBA pour obtenir le résultat

Articles associés :

  • Diviser les données en plusieurs feuilles de calcul par nombre de lignes
  • Diviser efficacement un grand Plage de données en plusieurs feuilles Excel selon un nombre spécifique de lignes peut rationaliser la gestion des données. Par exemple, fractionner un jeu de données toutes les 5 lignes en plusieurs feuilles le rend plus facile à gérer et mieux organisé. Ce guide propose deux méthodes pratiques pour accomplir cette tâche rapidement et facilement.
  • Fusionner deux tableaux ou plus en un seul sur la base de Colonne clé
  • Supposons que vous disposiez de trois tableaux dans un classeur et que vous souhaitiez désormais les fusionner en un seul tableau en vous appuyant sur les Colonne clé correspondants afin d’obtenir le résultat illustré dans la capture d’écran ci-dessous. Cette tâche peut s’avérer délicate pour la plupart d’entre nous, mais ne vous inquiétez pas : cet article présente plusieurs méthodes permettant de résoudre ce problème.
  • Fractionner des chaînes de texte délimitées en plusieurs lignes
  • Généralement, vous pouvez utiliser la fonctionnalité « Convertir le texte en colonnes » pour fractionner le contenu d’une cellule en plusieurs colonnes à l’aide d’un délimiteur spécifique, comme une virgule, un point, un point-virgule, une barre oblique, etc. Toutefois, il arrive parfois que vous deviez diviser ce même contenu délimité en plusieurs lignes tout en répétant les données des autres colonnes, comme le montre la capture d’écran ci-dessous. Disposez-vous de solutions efficaces pour réaliser cette opération dans Excel ? Ce tutoriel vous présente plusieurs méthodes performantes pour accomplir cette tâche facilement.

Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile

  • Activez l’édition 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, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels