2 pièce(s) jointe(s)
[Tableau structuré] Amélioration code répartition tableau suivant colonne
Bonjour,
Confronté à une situation à gérer rapidement, j'ai cherché sur le net et adapté le code ci-après qui me donne le résultat escompté :P :
Code:
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
| Option Explicit
Sub Repartition()
Dim Dico, k, i
Dim C As Range
Dim n As Integer, LigneC As Integer
Set Dico = CreateObject("Scripting.dictionary")
Application.ScreenUpdating = False
With Worksheets("DetailOperation")
For Each C In Range("Tab_Operations[Ref]")
If Not Dico.Exists(C.Value) Then Dico.Add C.Value, C.Offset(0, 1).Value
Next C
k = Dico.keys
i = Dico.items
For n = 0 To Dico.Count - 1
LigneC = 5
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = k(n)
For Each C In Range("Tab_Operations[Ref]")
If C = k(n) Then
C.Offset(0, 1).Resize(, 7).Copy ActiveSheet.Range("A" & LigneC)
LigneC = LigneC + 1
End If
Next C
Next n
End With
End Sub |
:fleche: Ce code, appliqué sur le tableau structuré ci-dessous, fait une répartition et crée une feuille pour chaque REF tout en copiant les données correspondant et se trouvant sur la même ligne.
:fleche: Le résultat que j'obtiens pour chaque REF :
Ma question
:fleche: Est-ce la meilleure façon de traiter ce genre de problème ? Surtout qu'il s'agit de tableau structuré avec ses propriétés ListObject et autres
:fleche: Comment améliorer ce code de façon à faire apparaître également les entêtes de chaque colonne ?
Merci d'avance pour vos remarques.