VBA : Faire une somme sur une colonne inconnue (variable)

Résolu
Jerome -  
 Jerome -

Bonjour,

Je me permets de vous solliciter car je souhaiterais faire une somme sur une colonne que je ne connais pas. En effet, j'ai créé une variable pour définir ma première colonne vide.

SA = Range("B1").End(xlToRight).Column + 1 

Je crée des données via une recherchev et sur la première cellule vide de cette colonne (SA) je voudrais faire une somme des données de cette même colonne.

Je me rends donc sur ma cellule SA puis sur la dernière cellule de cette colonne :

    Cells(1, SA).Select
    Selection.End(xlDown).Select

Mais je ne vois pas comment rentrer la plage de la somme puisque la colonne est inconnue

Je vous remercie pour votre aide

Cordialement
Windows / Chrome 95.0.4638.54

2 réponses

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     

    Bonjour,

    Si vous êtes en vba, avec ces 2 lignes à adapter selon besoin! 

    Set MaPlage = Range("A2:A600")' mettre les info de votre colonne
    
    MaSomme = Application.WorksheetFunction.Sum(MaPlage)

    Pas clair ;

     Je crée des données via une recherchev et sur la première cellule vide de cette colonne (SA) je voudrais faire une somme des données de cette même colonne.

    Si première cellule vide est le numéro de la colonne alors cette colonne est donc vide et de ce fait la somme sera zéro… !


    0
    1. Jerome
       

      Bonjour Le Pingou,

      Je vous remercier pour votre prompt retour. 

      J'ai essayé ceci qui fonctionne bien en MSGBox mais que j'aimerais avoir sur ma cellule derligneSA :

      SA = Range("B1").End(xlToRight).Column + 1

          Cells(1, SA).Select
          derligneSA = Cells(Rows.Count, SA).End(xlUp).Row
          MsgBox derligneSA                              'Ca retrouve bien le dernière cellule
          Set MaPlage = Range(Cells(2, SA), Cells(derligneSA, SA))
          MaSomme = Application.WorksheetFunction.Sum(MaPlage)     
          MsgBox MaSomme         ' ca me fait bien la somme

      Sauriez vous comment faire s'il vous plait ?

      Un grand merci

      Cordialement

      0
      1. ozone_ Messages postés 1823 Statut Membre 511 > Jerome
         

        Bonjour à vous deux,

        Peut être que ceci est la solution :

        SA = Range("B1").End(xlToRight).Column + 1
        
        ' Permet de convertir en lettre SA
        SAcol = Split(Cells(1, SA).Address, "$")(1)
        
        Cells(1, SA).Select
        derligneSA = Cells(Rows.Count, SA).End(xlUp).Row
        MsgBox derligneSA                              'Ca retrouve bien le dernière cellule
        
        Set MaPlage = Range(Cells(2, SA), Cells(derligneSA, SA))
        MaSomme = Application.WorksheetFunction.Sum(MaPlage)
        MsgBox MaSomme         ' ca me fait bien la somme
        
        Cells(derligneSA, SA).Formula = "=SUM(" & SAcol & "2:" & SAcol & derligneSA - 1 & ")"
        0
      2. Jerome > ozone_ Messages postés 1823 Statut Membre
         

        Bonjour ozone_,

        Merci pour ta proposition. Par contre la dernière ligne

        =SUM(" & SAcol & "2:" & SAcol & derligneSA - 1 & ")"

        se met en rouge quand je la colle en VBA

        Cordialement

        0
      3. Jerome > ozone_ Messages postés 1823 Statut Membre
         

        Re,

        Au temps pour moi ça fonctionne nickel :-)

        Merci +++

        0
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     

    Bonjour,

    Je vois que ozone_ est intervenu, donc pour moi je quitte le poste.


    0
    1. Jerome
       

      Re bonjour,

      Oui en effet merci également pour votre aide

      Cordialement 

      0