Somme des colonnes pour chaque ligne

Bonjour forum

Je voudrai calculer la somme des colonnes (de V1 à Vn) et pour chaque ligne dans chacun des tableau (ci-joint le fichier).

Je veux donc stocker la somme pour chacune des ligne à la colonne (total général).

Ci-dessous l'extrait de mon code. Dans dans mes tableaux, je ne connais pas d'avance le nombre de colonnes (les V1...Vn) ou de ligne et je donc je détermine d'abord le nbre de colonnes/lignes pour mettre dans ma boucle. ais le code me sort aucun résultat.

Je vous remercie d'avance et bonne journée.

Option Explicit

Sub Calcul_col()

    Dim ligne As Integer

    Dim Sum, DCol, i As Long

    Sum = 0

    ligne = 8 'les données démarrent à partir de la ligne 8

    DCol = Cells(7, Columns.Count).End(xlToLeft).Column ' Nombre de colonne=4

    Do While Cells(ligne, DCol - 1).Value <> Null 'les données commencent à partir de la colonne 2

            For i = DCol - 1 To 2 Step -1 ' Boucle sur les colonnes de la Dernière trouvée a la colonne n°2

                If Cells(7, i) = "Total général" Then Sum = Sum + Cells(ligne, DCol - 1).Value 'somme des lignes
            Next i 'Prochaine Ligne

    'je range la somme pour chaque dans la colonne total général

    Sheets("Feuil1").Cells(ligne, DCol - 1).Value = Sum
    ligne = ligne + 1

    Loop

End Sub
 

Bonjour,

Kers a écrit :

ci-joint le fichier

Je n'ai rien vu qui y ressemble, en ce qui me concerne !?

Désolé

ci-joint le ficher

22test1.xlsx (8.87 Ko)

Bonjour,

en transformant tes plages en Tableau (menu Insertion) et en insérant tes colonnes à gauche de colFin plus besoin de vba.

eric

44test1-1.xlsx (10.81 Ko)

Bonjour,

Proposition :

Sub TotalGénéral()
    Dim t%, tt%, n%, i%, k%
    With ActiveSheet
        tt = .Cells(.Rows.Count, 1).End(xlUp).Row: t = 1
        Do While t < tt
            Do While .Cells(t, 1) = ""
                t = t + 1
            Loop
            n = .Cells(t, 1).End(xlDown).Row
            k = .Cells(t, 1).End(xlToRight).Column
            For i = t + 1 To n
                .Cells(i, k) = WorksheetFunction.Sum(.Range(.Cells(i, 2), .Cells(i, k - 1)))
            Next i
            t = n + 1
        Loop
    End With
End Sub

Pour traiter tous les tableaux de la feuille quels que soient leur emplacement et leur largeur, à condition que leur première colonne soit en A et leur première ligne une en-tête et la colonne Total la dernière : détecte 1re ligne de tableau et dernière colonne, additionne de 2e ligne à fin tableau, les colonnes de B à celle qui précède Total...

Cordialement.

NB- La proposition d'Eric est certainement aussi à prendre en considération...

38kers-test1.xlsm (20.29 Ko)

Bonjour MFerrand et Eric,

Merci beaucoup, vos deux propositions me vont très bien.

Je me suis adapté avec ton programme MFerrand .

Merci a vous.

Bonne journée et bon début de semaine.

Rechercher des sujets similaires à "somme colonnes chaque ligne"