VBA Excel: code pour fonction somme à étendre

Résolu
Amélie -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Ma feuille Excel comporte un tableau avec en colonne A des noms, en ligne 1 le titre des colonnes et à l'intérieur du tableau, des données numériques.
En ligne 2, j'aimerais faire la somme des données de la colonne (ex: en B2, obtenir la somme de B3 à Bn) et appliquer la formule aux autres colonnes du tableau (C2 pour la somme de la colonne C, D2 pour la somme de la colonne D...) sachant que le nombre de lignes et de colonnes peut varier d'un classeur à l'autre; comment faire?

Merci d'avance pour votre aide!

A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Peut être avec ça, en l'adaptant pour le classeur et la feuille :

Sub Totaux()
Dim dercol As Long
Dim derlig As Long
Dim wk As Workbook
Dim ws As Worksheet
Dim i As Long
Dim j As Long

    Set wk = ThisWorkbook     '--- A adapter
    Set ws = wk.Worksheets(1)     '--- A adapter
    
    dercol = ws.Range("A1").End(xlToRight).Column
    derlig = ws.Range("A" & Rows.Count).End(xlUp).Row
    
    For i = 2 To dercol
        For j = 3 To derlig
            ws.Cells(2, i).Value = ws.Cells(2, i).Value + ws.Cells(j, i).Value
        Next j
    Next i
    
    ws.Range(ws.Cells(2, 2), ws.Cells(2, dercol)).Font.Bold = True

    Set wk = Nothing
    Set ws = Nothing
    
End Sub


;0)

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
1
Amélie
 
Super, ça marche!!

Merci Polux31!!!
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
De rien.

;0)
0
Amélie
 
Polux31,

Le code a fonctionné lorsque mon classeur ne contenait qu'une feuille.
En revanche, je ne suis pas parvenue à l'utiliser pour une feuille bien précise d'un classeur qui en contient d'autres.
Comment faire pour l'adapter?

Merci
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Il faut mettre l'indice de la feuille ici :

Set ws = wk.Worksheets(1)

Ou alors le nom

Set ws = wk.Worksheets("Toto") ou Set ws = wk.Worksheets("Feuil3") ...
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
comment faire?
=> En mettant un exemple de ton classeur sur Cjoint.com (sans donnée confidentielle) et mettre le lien dans un poste suivant.
L'idéal serait en feuil1 l'exemple de départ et en Feuil2 le résultat souhaité
A+

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
Amélie
 
Voici le lien: http://cjoint.com/?CLquN02jxCm
En 1ère feuille, le tableau initial, et dans le suivant, le tableau tel que j'aimerais le voir complété. Seule la ligne 2 a été remplie du total de ce que contient la colonne.

Merci
0
Amélie
 
Personne n'a de solution à me proposer??? :(
0