VBA Excel: code pour fonction somme à étendre

Résolu/Fermé
Amélie - Modifié par Amélie le 16/12/2013 à 13:26
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 18 déc. 2013 à 18:01
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 17/12/2013 à 15:49
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
Super, ça marche!!

Merci Polux31!!!
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 déc. 2013 à 15:57
De rien.

;0)
0
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
18 déc. 2013 à 18:01
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 16/12/2013 à 18:32
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
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
Personne n'a de solution à me proposer??? :(
0