VBA Excel: Ajouter le total en dernière colonne [Résolu/Fermé]

Signaler
-
 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

Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
143
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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!
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
143
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
Ca marche, merci bcp Mélanie!
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
143
mets le ren résolu stp (en dessous du titre)
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!