Sub RecupererDonnees()
Dim TbDonnees(), TbResultat(), LgResultat&, LgDonnee&, TypeCategorie As String, Categorie As String
Dim Couleur As Long
TbDonnees = [B4].Resize([B1000000].End(xlUp).Row - 3, 3).Value
ReDim TbResultat(1 To UBound(TbDonnees, 1), 1 To 4)
TbResultat(1, 1) = "Type Catégorie": TbResultat(1, 2) = "Catégorie": TbResultat(1, 3) = "Sous-Catégorie"
LgResultat = 1: Couleur = 5
For LgDonnee = 1 To UBound(TbDonnees, 1)
If TbDonnees(LgDonnee, 3) <> "" Then
TypeCategorie = TbDonnees(LgDonnee, 3)
Categorie = TbDonnees(LgDonnee, 1)
Couleur = Couleur + 1
If Couleur > 12 Then Couleur = 5
ElseIf TbDonnees(LgDonnee, 1) <> "" Then
LgResultat = LgResultat + 1
TbResultat(LgResultat, 1) = TypeCategorie
TbResultat(LgResultat, 2) = Categorie
TbResultat(LgResultat, 3) = TbDonnees(LgDonnee, 1)
TbResultat(LgResultat, 4) = Couleur 'LgResultat + 4
End If
Next LgDonnee
With [K3:N1000000]
.ClearContents
With .Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End With
[K3].Resize(LgResultat, 4).Value = TbResultat
MsgBox [K3].Resize(LgResultat, 4).Address
For Each C In Range("N4:N" & LgResultat + 2)
With Range("K" & C.Row & ":M" & C.Row).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = C.Value 'xlThemeColorAccent5
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
C.Value = ""
Next C
End Sub