Faire une somme sur une plage qui varie

Valdesh35 Messages postés 13 Statut Membre -  
Raymond PENTIER Messages postés 58229 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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 785
     
    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
  2. Valdesh35 Messages postés 13 Statut Membre
     
    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
  3. Valdesh35 Messages postés 13 Statut Membre
     
    Ma somme se fait de la ligne 2 à la dernière ligne, qui n'est pas nécessairement la ligne 2
    0
  4. via55 Messages postés 14396 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. Valdesh35 Messages postés 13 Statut Membre
       
      Super :) je vais essayer :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Raymond PENTIER Messages postés 58229 Date d'inscription   Statut Contributeur Dernière intervention   17 494
     
    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