Bonsoir,
J'ai bricolé une macro avec un bou de code récupéré sur internet.
La macro fonctionne bien, par contre j'aimerai savoir comment faire pour modifier celle-ci afin qu'elle commence par la fin de mon tableau de données.
En fait j'ai besoin d'insérer les lignes de sous totaux au dessus et pas en dessous de mes valeurs à sous-totaliser. Le tout se groupe actuellement, il faut donc que les lignes groupées soient en dessous de la ligne sous total.
Voici la macro ; si besoin je peux mettre à disposition le fichier xls.
Sub SOUS_TOTAUX()
Dim i As Long
Dim Iprec As Long
Dim strNom As String
i = 1
Do While Range("A" & i).Value <> "" 'Boucle sur tant que la colonne A n'est pas vide
If strNom <> Range("A" & i).Value Then 'Si nom de la ligne <> du nom precedent
If strNom <> "" Then
Rows(i).Insert 'insere une ligne
Range("H" & i).FormulaLocal = "=somme(H" & Iprec & ":H" & i - 1 & ")" 'insere la somme SOUS TOTAL
Range("A" & i).Value = strNom 'Ajoute le compte en A
Range("A" & i).Font.Bold = True 'Met en gras
Range("A" & i).Interior.ColorIndex = 33 'met en bleu la cellule
Range("A" & i).Font.ColorIndex = 2 'met en blanc le texte de la ligne
Rows(Iprec & ":" & i - 1).Group 'Regroupe les lignes
Iprec = i + 1 'mémorise la ligne de début de la prochaine section
Else
Iprec = i
End If
strNom = Range("A" & i + 1).Value
End If
i = i + 1
Loop
Range("H" & i).FormulaLocal = "=somme(H" & Iprec & ":H" & i - 1 & ")"
Range("C" & i).Value = strNom
Range("C" & i).Font.Bold = True
Rows(Iprec & ":" & i - 1).Group
End Sub
Merci beaucoup pour votre aide