Bonjour,
Quelqu'un pourrait-il m'aider pour ajouter des sous-totaux en vba ?
Le code ci-après me génère un tableau en xl de 8 colonnes avec des données filtrées récupérées d'une base de données.
Je souhaiterais qu'à chaque changement de catégorie (colone M), un sous-total soit créé sur les colonnes Q et R.
Je sais qu'il est possible de le faire en xl mais je préfèrerais obtenir un valeur calculée par le code vba.
Merci d'avance pour une piste.
Quelqu'un pourrait-il m'aider pour ajouter des sous-totaux en vba ?
Le code ci-après me génère un tableau en xl de 8 colonnes avec des données filtrées récupérées d'une base de données.
Je souhaiterais qu'à chaque changement de catégorie (colone M), un sous-total soit créé sur les colonnes Q et R.
Je sais qu'il est possible de le faire en xl mais je préfèrerais obtenir un valeur calculée par le code vba.
Code:
Sub ChoixAF1()
Dim AFclient As String
Dim AFexercice As String
Dim AFcategorie As String
Dim AFdonnees As Variant
Dim Item As Integer
Dim Col As Byte
Dim AFclientCompare As String
Dim AFexerciceCompare As String
Dim AFcategorieCompare As String
Dim ligneReport As Integer
Application.ScreenUpdating = False
With Worksheets("AF") 'avec la feuille "AF"
AFclient = .Range("K2") 'on affecte les valeur aux variables
AFexercice = .Range("L2")
AFcategorie = .Range("M2")
AFdonnees = .Range("B8:I" & .Range("B1048576").End(xlUp).Row) 'on remplit un tableau
.Range("K8:R" & .Range("K1048576").End(xlUp).Row + 1).ClearContents 'on efface les données
For Item = 1 To UBound(AFdonnees, 1) 'pour chaque ligne de ce tableau
AFclientCompare = AFdonnees(Item, 1) 'on récupére les valeurs à comparer
AFexerciceCompare = AFdonnees(Item, 2)
AFcategorieCompare = AFdonnees(Item, 3)
If AFclientCompare = AFclient And AFexerciceCompare = AFexercice And AFcategorieCompare = AFcategorie Then 'si egalité
ligneReport = .Range("K1048576").End(xlUp).Row + 1 'on détecte la derniere ligne vide de la colonne K
For Col = 1 To UBound(AFdonnees, 2) 'pour chaque colonne du tableau
.Cells(ligneReport, Col + 10) = AFdonnees(Item, Col) 'sinon on colle telquel
Next Col
End If
Next Item
End With
Application.ScreenUpdating = True
End Sub
Merci d'avance pour une piste.