Macro excel " SUBTOTAL "

Résolu/Fermé
Olive0185 Messages postés 17 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 25 septembre 2008 - 30 juil. 2008 à 11:39
Olive0185 Messages postés 17 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 25 septembre 2008 - 31 juil. 2008 à 08:10
Bonjour,
Encore et encore bloqué. Cette fois-ci c'est pour effectuer des sous-totaux.
Dans une colonne de chiffre, j'ai inséré des cellules vides afin d'effectuer le sous-total des cellules du dessus et par la suite j'ai fait l'enregistrement de macro afin d'avoir le sous total. Mais le problème est que cette colonne peut varier en nbr de cellule.
Dc voici la macro que j'ai créé :

For i = Range("G65536").End(xlUp).row To 2 Step -1

Cells(i, 7).Select
If Cells(i, 7).Value = "" Then
ActiveCell.Formula = "=SUBTOTAL(9,G2:G" & ActiveCell.row - 1 & ")"
Selection.NumberFormat = "#,##0.00"
Cells(i, 7).Font.Italic = True
Cells(i, 7).Font.Bold = True
End If
Next

Le problème est que le premier sous total est correct mais les suivants repartent depuis G2 alors que je voudrais qu'il démarre de la cellule juste après le sous total précédent.

Merci d'avance et si je ne suis pas assez clair, dites le moi.
A voir également:

2 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
31 juil. 2008 à 05:37
Bonjour,
Effectivement c'est pas clair, tu commence par le bas de la feuille mais tu commence ton 1er sous.total en haut de la feuille? Ensuite tu emploi la fonction soustotal en mode somme, c'est plus simple de faire direct Somme ?
Tu veux que tes sous-totaux calcul entre chaque cellules vides ?
si oui,
Sub SB4()
Dim i As Long
Dim e As Long
Dim Plage As String
    e = 2
    For i = 2 To Range("G65536").End(xlUp).Row + 1
        If Cells(i, 7).Value = "" Then
            Plage = Range(Cells(e, 7), Cells(i - 1, 7)).Address
            Cells(i, 7).FormulaLocal = "=SOMME(" & Plage & ")"
            Cells(i, 7).NumberFormat = "#,##0.00"
            Cells(i, 7).Font.Italic = True
            Cells(i, 7).Font.Bold = True
            e = i + 1
        End If
    Next
End Sub

A+
0
Olive0185 Messages postés 17 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 25 septembre 2008 6
31 juil. 2008 à 08:10
Et franchement ça marche impéccable. Je te remercie " lermite222 " pour ton aide. Dsl si je n'était pas assez clair.
Problème Résolu.
0