VBA Excel: code pour fonction somme à étendre

Résolu
Amélie -  
Polux31 Messages postés 7219 Statut Membre -
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!

2 réponses

  1. Polux31 Messages postés 7219 Statut Membre 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
    1. Amélie
       
      Super, ça marche!!

      Merci Polux31!!!
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      De rien.

      ;0)
      0
    3. 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
    4. Polux31 Messages postés 7219 Statut Membre 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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. 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
    2. Amélie
       
      Personne n'a de solution à me proposer??? :(
      0