VBA Excel: Ajouter le total en dernière colonne

Résolu/Fermé
Amélie - 16 déc. 2013 à 09:12
 Amélie - 17 déc. 2013 à 15:49
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!
A voir également:

1 réponse

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 déc. 2013 à 09:45
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
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
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 déc. 2013 à 11:12
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
Ca marche, merci bcp Mélanie!
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 déc. 2013 à 11:47
mets le ren résolu stp (en dessous du titre)
0
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