VBA Excel: Ajouter le total en dernière colonne

Résolu
Amélie -  
 Amélie -
Bonjour,

Ma feuille Excel comprend un tableau avec un nombre de colonnes pouvant varier d'un jour à l'autre.
Je cherche un code permettant d'ajouter automatiquement après la dernière colonne du tableau:
1. en 1ère ligne (par exemple N1 si le tableau s'arrête en M) la mention "Total",
2. en 2ème ligne (N2 dans l'exemple) la somme des colonnes précédentes à partir de la D mais sur la même ligne (D2, E2, F2... à M2 dans l'exemple).
3. et étendre cette formule jusqu'à la dernière ligne du tableau.

Merci de votre aide!

1 réponse

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    
    sub total
    
    
    
    Range("A1").End(xltoRight).Offset(1, 0).Select 'trouve la dernière colonne du tableau
    Activecell.value = "Total" 'Ajoute le total
    
    dercol = activecell.column  'permet de récupérer le numéro de ladernière colonne
    derligne = cells(65347,1).End(xlUp).Row 'trouve la dernière ligne du tableau
    
    cells(2,dercol).select 'on sélectionnes la 2ème ligne de la dernière colonne
    ActiveCell.FormulaR1C1 = "=SUM(R2C4:RC[-1])" 'on fait une somme de D2 à l'avant dernière colonne
    cells.copy 'on copie
    range(cells(2,dercol),cells(derligne,dercol).select 'on sélectionne jusqu'à la fin du tableau
    Activesheet.paste 'on colle la formule
    
    
    
    end sub
    
    
    1
    1. Amélie
       
      Bonjour Mélanie,

      Merci pour le code, mais il génère des erreurs: j'ai ajouté une parenthèse en ligne 14 avant .select.
      Puis on m'indique une "erreur '1004': Impossible de coller les informations car les zones copier et de collage sont de forme et de taille différentes (...)" Concrètement, lorsque je me mets sur la feuille concernée, rien n'a été ajouté et elle apparaît entièrement sélectionnée.

      Merci pour votre aide!
      0
    2. melanie1324 Messages postés 1561 Statut Membre 156
       
      Pardon, il y avait effectivement deux petits pbs.
      J'ai testé et ce code devrait mieux aller :

      Sub total()



      Range("A1").End(xlToRight).Offset(0, 1).Select 'trouve la dernière colonne du tableau
      ActiveCell.Value = "Total" 'Ajoute le total

      dercol = ActiveCell.Column 'permet de récupérer le numéro de ladernière colonne
      derligne = Cells(65347, 1).End(xlUp).Row 'trouve la dernière ligne du tableau

      Cells(2, dercol).Select 'on sélectionnes la 2ème ligne de la dernière colonne
      ActiveCell.FormulaR1C1 = "=SUM(R2C4:RC[-1])" 'on fait une somme de D2 à l'avant dernière colonne
      ActiveCell.Copy 'on copie
      Range(Cells(2, dercol), Cells(derligne, dercol)).Select 'on sélectionne jusqu'à la fin du tableau
      ActiveSheet.Paste 'on colle la formule



      End Sub
      0
    3. Amélie
       
      Ca marche, merci bcp Mélanie!
      0
    4. melanie1324 Messages postés 1561 Statut Membre 156
       
      mets le ren résolu stp (en dessous du titre)
      0
    5. Amélie
       
      Mélanie,

      Saurais-tu, par hasard, comment adapter le code pour que la somme apparaisse non plus en colonne mais en ligne à partir de B2? Concrètement: en B2 obtenir la somme de B3 à la dernière ligne de la colonne B du tableau, et appliquer la formule aux autres colonnes du tableau (en C2 avoir la somme de la colonne C et ainsi de suite) sachant que le nombre de lignes et de colonnes peut varier d'un classeur à l'autre.
      Je t'en remercie par avance!
      0