VBA Excel: Ajouter le total en dernière colonne
Résolu/Fermé
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!
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:
- Derniere colonne vba
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Trier colonne excel - Guide
- Supprimer dernière page word - Guide
1 réponse
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
16 déc. 2013 à 09:45
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
16 déc. 2013 à 10:07
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!
16 déc. 2013 à 11:12
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
16 déc. 2013 à 11:42
16 déc. 2013 à 11:47
17 déc. 2013 à 15:49
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!