Macro sous total par le bas

Bonjour à tous.

J'ai bidouillé plusieurs macros que j'ai récupéré sur internet pour réaliser une macro qui va insérer des lignes de sous-totaux et regrouper les lignes totalisées. J'ai besoin qu'elle démarre pas le bas de ma feuille à la dernière ligne, mais ca marche pas, quelqu'un sait-il ou ma bidouille a foirée ?

Merci d'avance

Sub SSTOTAL()

Dim DL As Long         'déclare la variable DL (Dernière Ligne)
Dim I As Long         'déclare la variable I (Incrément)
Dim Iprec As Long
Dim strNom As String

Application.ScreenUpdating = False 'masque les rafraîchissement d'écran

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A

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 ligne
                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 e la prochaine section
            Else
                Iprec = i
            End If
            strNom = Range("A" & i + 1).Value
        End If
        i = i + 1
    Loop

Application.ScreenUpdating = True 'affiche les rafraîchissement d'écran

End Sub

bonjour

VBA n'est pas une solution, VBA est un problème (sauf pour quelques hyper spécialistes, donc pas pour moi )

suggestion : créer un fichier miroir FM

en cellule A1 de FM, tu colles avec liaison la cellule A1 de ton fichier d'origine

étire la formule vers la droite et vers la gauche

ensuite tu crées tes calculs dans FM

à chaque mise à jour du fichier d'origine, FM se met à jour.

Bonjour JMD

Je n'ai jamais fait ca ! Pourriez vous me montrer un exemple

re

fais un essais d'abord. ça mérite vraiment un petit apprentissage, car c'est très puissant (et facile) et ensuite on adore les utiliser. Même avec des fichiers de milliers de lignes.

(les collages avec liaison dépendent du poste de travail, donc difficile de mettre sur le net)

Si je colle dans un nouveau fichier les liens vers ma base originale, à quoi ca me sert j'ai toujours pas mes sous-totaux groupés sur le fichier miroir

re

alors passer en xlsx, puis menu Données/sous-totaux

Bonjour à tous,

avec un tcd peut être

P.

Bonjour, merci pour la proposition.

Le TCD n'est pas adapté.

Je m'explique :

En fait, j'ai une base de donnée, de plusieurs millier (centaines de miller même ) de lignes.

Je lance une macro qui va venir me récupérer les colonnes qu'il me faut, et les lignes qu'il me faut. J'ai réussi à faire ca, le reste est plus complexe, d'ou ma demande.

J'arrive ensuite a obtenir une plus petite base de moins de 10 000 lignes (cf le fichier joint dans mon premier poste).

Cette base correspond à un grand livre d'opérations comptables, sur les comptes de frais généraux, cela me sert dans l'analyse de la révision des comptes. Je ne peux pas récupérer un TCD car j'ai besoin de pouvoir écrire mes commentaire, changer des montant ou ajouter des lignes. Ensuite je groupe le compte quand je l'ai vu.

Je suis parti d'une macro pour insérer des sous totaux mais je vais en fait y insérer des formule qui me permettrons d'aller pioche dans ma compta via des liens OLE que j'insérerai dans le code de la macro (ca sera mon boulot pour la suite si on arrive a résoure le problème actuel) donc la macro m'est indispensable, d'autant plus que j'en lance déja une pour arriver à ce stade.

Le but est d'arriver à obtenir un fichier comme ca :

sans titre

Actuellement je bute juste sur le fait que mes lignes s'insèrent en dessous des comptes et pas au dessus.

Je pense qu'il faut juste lancer la macro par le bas du tableau mais je sais pas le faire :s

Ok...

un essai à tester ici mais chez moi les "," ont dû être remplacées par des "."

P.

80sous-totaux.xlsm (80.73 Ko)

Super Patrick, ca fonctionne tres bien.

Ou s'est situé le problème avec les points et virgules ? Je n'ai rien eu à changer de mon coté !

Puis j'ai une remarque par contre,

J'ai voulu ajouter des lignes de codes en dessous de ta macro pour pouvoir mettre en forme mes colonnes etc, mais l'exécution de la macro ne dépasse pas le NEXT.

J'ai pas de message d'erreur, tout fonctionne parfaitement mais j'ai pas le résultat attendu (J'ai du ajouter un sub entre les deux morceaux pour le lancer par la suite) Une idée ?

'COLLAGE SPECIAL FORMAT
    Columns("A:A").Copy
    Columns("A:L").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

'******************************************************
'***                 MISE EN FORME                  ***
'******************************************************

' Centrer les colonnes COMPTE, DATE, JOURNAL
    Columns("A:C").HorizontalAlignment = xlCenter
    Columns("A:C").VerticalAlignment = xlBottom

' Mise en place de la largeur de colonne sur N°PIECE, COMPTE, DATE, JOURNAL
    Columns("A:D").ColumnWidth = 15

' Alignement à gauche avec retrait sur les colonnes LIBELLE, NOM FRS, LIBELLE 2 et COMMENTAIRE avec largeur colonne
    Range("D:E,J:L").HorizontalAlignment = xlLeft
    Range("D:E,J:L").VerticalAlignment = xlBottom
    Range("D:E,J:L").IndentLevel = 1
Rechercher des sujets similaires à "macro total bas"