Ventilation fichier Excel

Bonjour à tous
après de longues heures de recherche, je jette l'éponge :)
Je ne trouve pas la solution pour ventiler le fichier joint.
Le but est, à partir des données de l'onglet "Extract", de générer des onglets selon la colonne "J".
ces onglets devront suivre l'ordre en création de la colonne "K"
Exemple : chaque ligne comportant "Magasin" devra se retrouver dans l'onglet "Magasin"
comme celui-ci comporte l'ordre 1, il sera le 1er onglet à être créé
etc
Je souhaite recopier les colonnes A à I (avec en tête)

17classeur2-sauv.xlsm (180.92 Ko)

je vous remercie d'avance pour votre aide et bienveillance
Lolo

Bonjour,

Utilise cette macro :

Sub AddSheets()
Dim Arr
Arr = Feuil1.Range("A1:A18").Value
        With ActiveWorkbook
        For i = 1 To UBound(Arr)
            .Sheets.Add after:=.Sheets(.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = Arr(i, 1)
            If Err.Number = 1004 Then
              Debug.Print Arr(i, 1) & " already used as a sheet name"
            End If
         Next
        End With
    Application.ScreenUpdating = True
End Sub

A+

Bonjour Galopin01

Merci beaucoup pour ta réponse.

cela crée bien les onglets mais cela ne reporte pas les données

Re...

Sub AddSheets()
Dim Arr, i
Arr = Feuil1.Range("A1:A18").Value
        With ActiveWorkbook
        For i = 1 To UBound(Arr)
            .Sheets.Add after:=.Sheets(.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = Arr(i, 1)
               Feuil3.Range("$A$1:$K$1851").AutoFilter Field:=10, Criteria1:=Arr(i, 1)
               Feuil3.Range("A1:I1851").Copy [A1]
            If Err.Number = 1004 Then
              Debug.Print Arr(i, 1) & " already used as a sheet name"
            End If
         Next
        End With
    Application.ScreenUpdating = True
End Sub

Super, merci bcp !!

Bonjour à tous,

Une variante.....un peu tardive....

En supposant que ton tableau soit trié (colonne ordre), comme dans l'exemple joint....

Sub test()
 Dim dico As Object, cell As Range, nom As Range, temp As Variant
 Dim sh As Worksheet, j As Integer, NomFeuille As String

  Set dico = CreateObject("Scripting.Dictionary")
   Application.ScreenUpdating = False
    With Sheets("Extract")
     Set nom = .Range("J2:J" & .Range("J" & Rows.Count).End(xlUp).Row)
      For Each cell In nom
       dico(cell.Value) = ""
      Next cell
     temp = dico.keys

     For Each sh In ThisWorkbook.Worksheets
      Application.DisplayAlerts = False
       If sh.Name <> "Exécute" And sh.Name <> "Opérations" And sh.Name <> "Extract" Then sh.Delete
      Application.DisplayAlerts = True
     Next sh

     For j = 0 To UBound(temp)
      NomFeuille = temp(j)
       Sheets.Add after:=ThisWorkbook.Worksheets(Worksheets.Count)
        With ActiveSheet
        .Name = NomFeuille '...........................................
          With Sheets("Extract")
          .Range("A1").CurrentRegion.AutoFilter Field:=10, Criteria1:=temp(j)
          .Range("A1").CurrentRegion.Copy [A1]
          End With
        End With
     Next j
   .Range("A1").CurrentRegion.AutoFilter Field:=10
   .Activate
 End With
End Sub
13lolo19100.xlsm (193.45 Ko)

Cordialement,

Rechercher des sujets similaires à "ventilation fichier"