Faire une somme sur une plage qui varie

Valdesh35 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Petit problème de macro ajd.

J'extrait un fichier Excel qui a toujours la même forme EN COLONNE : nom d'établissement en colonne A, Chiffre d'affaire en colonne B, mais qui varie sur le nombre de ligne (+/- d'établissements selon les régions de France)

Ma macro :
Mettre dans la colonne A juste après le dernier établissement : "TOTAL" ==> Ca j'ai réussi.
Faire une somme dans la colonne B juste après la dernière valeur (et donc à gauche de mon total) ==> Facile de faire une somme en VBA sur une plage définie, mais comment sur une dynamique ? Dans un cas c'est une somme de B2:B8 dans un autre de B2:B12 etc ... (toujours B2 car en B1 j'ai mon intitulé de colonne "Chiffre d'affaire"

Un grand merci pour votre aide future !!

Bonne journée à tous.
Valentin

5 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Si tu as réussi à écrire Total sur une ligne (toi seul sait comment puisque tu ne donnes pas le code) , c'est que tu connais ce numéro de ligne.
Et ta somme se fait de la ligne 2 à la ligne précédant cette ligne.

0
Valdesh35 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Patrice de ta réponse,

Concernant le TOTAL sur la dernière ligne :
Selection.End(xlDown).Offset(1, 0).Select
==> Selection de la dernière ligne puis placement sur la cellule la plus à gauche
ActiveCell.FormulaR1C1 = "TOTAL"
==> Saisie de "TOTAL"

Maintenant j'aimerai qu'a gauche de TOTAL la somme ce fasse
0
Valdesh35 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Ma somme se fait de la ligne 2 à la dernière ligne, qui n'est pas nécessairement la ligne 2
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Valdesh

' pour obtenir le n° de la dernière ligne remplie en colonne B
ligne = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
'Pour faire la somme à partir de B2
Total = Application.WorksheetFunction.Sum(Range("B2:B" & ligne))

Cdlmnt
Via
0
Valdesh35 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Super :) je vais essayer :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
Pourquoi se compliquer la vie en écrivant une macro, alors qu'une simple formule suffit ?
Pour commencer tu insères une ligne à la place de l'actuelle ligne 2,
puis en A2 tu écris "TOTAL"
et en B2 tu écris =SOMME(A3:A999)
0