Somme d'une plage variable avec conditions

Bonjour à tous,

J'aimerai réaliser 2 opérations plutôt basique sur un fichier excel et je n'y arrive pas , .

je vous explique ma requête:

J'ai une table de valeurs : j'aimerais faire la somme de chaque ligne en partant de la cellule (2,3) et en allant jusqu'à la dernière ligne remplie de ma table -1 valeur. (c'est à dire l'avant dernière colonne).

Enfin, afficher cette valeur de somme dans une nouvelle colonne qui se situe donc apres ma dernière colonne remplie (logique).

Le problème est que ma table de données est variable que ca soit en colonne ou en ligne..

Néanmoins, le départ de ma somme est toujours le même c'est à dire la cellule (2,3)

Exemple si je me retrouve avec une table de 10 lignes et 8 colonnes :

J'aimerais que mon code somme les cellules de la ligne 2 en commençant de la cellule (2,3) jusqu'à la cellule (2,dernière colonne -1) et affiche la somme dans la 1er colonne non vide de la même ligne.

De même, pour la deuxième ligne, le code somme de la cellule (3.3) à la cellule (3,dernière colonne -1) et ainsi de suite.

J'espère que j'ai été assez clair merci d'avance pour votre aide, c'est vraiment le problème de table variable qui me perd complètement. Je vous joins un fichier exemple.

Merci.

21exemple.xlsx (10.46 Ko)

Bonjour,

Sub Sommes()
    Dim i%, k%
    i = 2
    Application.ScreenUpdating = False
    With ActiveSheet
        Do
            k = .Cells(i, 1).End(xlToRight).Column - 3
            .Cells(i, k + 4) = WorksheetFunction.Sum(.Cells(i, 3).Resize(, k))
            i = i + 1
        Loop While .Cells(i, 1) <> ""
    End With
End Sub

A n'exécuter qu'une fois !...

Re bonjour,

Merci beaucoup, mais je ne comprends pas pourquoi quand je réalise un filtre sur l'avant dernière colonne, le résultat de la somme ne suit pas les lignes qui "bougent".

Je ne sais pas si je suis très clair, mais j'aimerai que les données de la somme soit solidaire de leur ligne respective , est ce possible sous VBA ? Car l'interet est que je puisse directement classé mes productions globales en fonction de l’irradiance mais quand j'effectue un filtre sur l'irradiance la dernière colonne ne suit pas ce filtre.. Puis je changer quelque chose à ce problème ?

Merci beaucoup pour le temps que vous m'accordez.

Hors problème posé !

Tu désactives le filtre et tu le réactives ! 2 clics en étant positionné sur tes données...

Quand ça ne veut pas ,ça ne veut pas ..

Ma première manip ne marchait pas mais en la réitérant effectivement le filtre fonctionne..

Merci pour votre aide !!

Bonne continuation!

Re bonjour,

Effectivement je vais abuser de votre gentillesse mais cela pourra servir à d'autres débutants comme moi :

Si je veux faire la même chose mais en faisant la somme par colonne pour chaque colonne d'une plage variable.

Bien évidemment, j'ai essayé de réadapter votre code mais j'obtiens des sommes en diagonales .. bref cette réponse me permettrait d'avancer pas mal et de savoir faire des choses classiques en VBA dont j'ai besoin au quotidien.

J'ai encore les même conditions en commençant à la cellule (2,3) mais je n'arrive pas à réaliser cette somme en l'affichant dans la Dernière ligne +1 ...

Je vous serais grandement reconnaissant si vous pouviez m'aider une nouvelle fois ..

Bonjour,

Sub SommesCol()
    Dim n%, k%, i%
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row - 1
        k = .Cells(1, .Columns.Count).End(xlToLeft).Column
        Application.ScreenUpdating = False
        For i = 3 To k
            .Cells(n + 2, i) = WorksheetFunction.Sum(.Cells(2, i).Resize(n))
        Next i
        .Cells(n + 2, 1).Resize(, 2).Value = "Total"
    End With
End Sub

Fantastique !

Merci beaucoup !!

Rechercher des sujets similaires à "somme plage variable conditions"