Somme colonnes par VBA

Ch3ayba

XLDnaute Junior
Bonjour,

Dans l'exemple ci-joint j'aimerai inserer une macro qui me permettera de calculer la somme de chaque colonne, à savoir que dans la réalité dans mon ficher le nombre de lignes et de clonnes sont variable.

Merci d'avance pour votre aide :)
 

Pièces jointes

  • Exemple 1.xls
    14.5 KB · Affichages: 283
  • Exemple 1.xls
    14.5 KB · Affichages: 284
  • Exemple 1.xls
    14.5 KB · Affichages: 297

mth

XLDnaute Barbatruc
Re : Somme colonnes par VBA

Bonjour,

Un petit essai par formule (qui ne te conviendra donc pas si tu veux absolument une macro ? )

En A4 et copiée vers la droite:

Code:
=SOMME(INDIRECT(CAR(COLONNE()+64)&"7:"&CAR(COLONNE()+64)&Derlig))

Avec le nom défini Derlig égal à (par le menu Insertion/Nom/Définir) :
Code:
=EQUIV(9^9;Feuil1!$A:$A;1)

Bien à toi,

mth
 

Pièces jointes

  • Exemple%201(1).xls
    18.5 KB · Affichages: 246
  • Exemple%201(1).xls
    18.5 KB · Affichages: 262
  • Exemple%201(1).xls
    18.5 KB · Affichages: 260

Ch3ayba

XLDnaute Junior
Re : Somme colonnes par VBA

merci pour ton aide, le soucis c'est que moi j'ai déjà une grande macro tout ce qu'il me faut c'est inserer la la somme en bas des colonnes vu que le nombre de lignes n'est pas constant. donc par macro ça sera classe :).

Merci comme pour ton aide. mais si quelqu'un d'autres à une autre solution je suis pronneur :)
 

robyostar

XLDnaute Nouveau
Re : Somme colonnes par VBA

tiens:
Code:
Sub sommeColonnes()
Dim FirstRow As Long, LastRow As Long, LastCol As Long
Dim i As Integer

    
    With ActiveSheet
        FirstRow = Range("A1").End(xlDown).Row
    End With

With ActiveSheet
        LastCol = .Cells(FirstRow, .Columns.Count).End(xlToLeft).Column
    End With
    
    For i = 1 To LastCol
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, i).End(xlUp).Row
    End With
    Cells(LastRow + 1, i).Value = WorksheetFunction.Sum(Range(Cells(FirstRow, i), Cells(LastRow, i)))
    

    Next
End Sub
 

YANN-56

XLDnaute Barbatruc
Re : Somme colonnes par VBA

Bonjour Ch... (Désolé pas facile :)), aux participants, et à ceux qui passeront par ici,

Si tu veux le faire en VBA, ainsi que tu sembles le souhaiter:

Tu crées un Bouton sur ta page avec comme code:

Code:
Private Sub CommandButton1_Click()

With ActiveSheet
 L = .Range("A65536").End(xlUp).Row + 1
 
   For i = 1 To .UsedRange.Columns.Count
  .Cells(L, i).Formula = "=SUM(" & .Range(.Cells(7, i), .Cells(21, i)).Address & ")"
   Next i
 
End With
End Sub

Voir exemple joint.

Attention si le nombre de lignes est différent suivant les colonnes!

Amicalement.

Yann
 

Pièces jointes

  • Exemple Y.xls
    23.5 KB · Affichages: 393

YANN-56

XLDnaute Barbatruc
Re : Somme colonnes par VBA

A la relecture de la discussion;

je ne puis m'empêcher de dire à robyostar que nos méthodes se ressemblent.

(La tienne est un peu plus académique, notamment par la déclaration des variables)

Le plus dans mon Post aura été de dire "Bonjour" et finir par "Amicalement".

Ce n'est qu'un détail, mais il est de bon ton de le pratiquer ici. :) :) :)

Amicalement.

Yann
 

robyostar

XLDnaute Nouveau
Re : Somme colonnes par VBA

:) tout à fait exact yann. et toute mes excuse :). c'est juste que je bossait sur plusieurs choses en même temps donc je suis allé au plus court.

je tacherais de penser au salutation.
pour nos methodes il est vrai qu'elles se ressemblent ( mais je prends en compte la différence de ligne par colonne ;) )

amicalement :p
 

YANN-56

XLDnaute Barbatruc
Re : Somme colonnes par VBA

Re robyostar

Pas de souci! :)

Effectivement tu prends en compte la longueur des colonnes.

J'avais pensé à le faire avec "UsedRange.Rows.Count
mais encore faudrait-il que les Sommes soient écrites sur une même ligne.

Il restera à notre ami à gérer suivant ce qu'il souhaite.

Amicalement, et au plaisir de te croiser à nouveau par ici.

Yann
 

Discussions similaires

Réponses
16
Affichages
504

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia