Somme d'une colonne vba

Résolu
NLAH Messages postés 135 Statut Membre -  
NLAH Messages postés 135 Statut Membre -
Bonjour,

je suis debutante en vba, je souhaiterai creer une macro qui permet de:
-sommer la valeur d'une colonne et par la suite la recuperer dans un autre tableau,pour vous clarifier ce que je voulais, vous trouvez ci-joint un fichier excel contient 2 tableaux le premier contient mes données et le 2eme tableau c'est les resultats obtenues apres l'excution de mon macro:

https://www.cjoint.com/c/GFlo2lmZiFj

je vous remercie en avance

1 réponse

  1. Lucien
     
    Tu dois d'abord enregistrer ton fichier .xlsx avec le Type
    "Classeur Excel (prenant en charge les macros)" pour
    pouvoir y mettre une ou plusieurs macros.

    Ensuite mets ce code dans Module1 :

    
    Sub Essai()
      [L2].Formula = "=SUMIF(C$2:C$5,K2,F$2:F$5)"
      [L2].AutoFill [L2:L4], xlFillValues
    End Sub
    
    

    Merci de me dire si ça te convient.
     
    0
    1. NLAH Messages postés 135 Statut Membre 2
       
      merci tout d'abord pour votre temps que vous m'avez consacré pour me repondre. Votre code fonctionne que pour la somme, alors que moi je voulais qu'il m'affiche le tabeleau complet avec la colonne K et L, je dois pas normalement saisir les données dans la colonne K. J'espere que vous m'avez compris.
      0
    2. Lucien > NLAH Messages postés 135 Statut Membre
       
       
      En effet, tes nouvelles informations permettent de mieux comprendre
      ta demande initiale ; voici donc le nouveau code VBA correspondant :

      
      Option Explicit
      
      Sub Essai()
        Dim dlig As Long
        dlig = Range("K" & Rows.Count).End(xlUp).Row
        Range("K1:L" & dlig).Clear: [F1].Copy [L1]
        dlig = Range("C" & Rows.Count).End(xlUp).Row
        Range("C1:C" & dlig).AdvancedFilter 2, , [K1], True
        [L2].Formula = "=SUMIF(C$2:C$" & dlig & ",K2,F$2:F$" & dlig & ")"
        dlig = Range("K" & Rows.Count).End(xlUp).Row
        [L2].AutoFill Range("L2:L" & dlig), 4
      End Sub
      
      

      Si ton problème est réglé, merci de passer le sujet en résolu.
       
      0
    3. NLAH Messages postés 135 Statut Membre 2
       
      Bonjour Lucien,

      je vous remercie infiniment ça marche tres bien, j'ai SVP une autre qst, est ce que si possible en vba d'ajouter aussi la colonne A, je voulais affecter pour chaque somme, les cellules correspondante de la clolonne A.
      vous trouvez ci-joint ce que je voulais:
      https://www.cjoint.com/c/GFmjHkXI7rh
      Merci
      0
    4. Lucien > NLAH Messages postés 135 Statut Membre
       
       
      Ta demande n'est pas très claire, et je ne suis même pas sûr de savoir
      si cette demande est pour ton 1er fichier ou pour ton 2ème fichier !

      --------------------------------------------------------------

      1) Pour le 1er fichier que tu as transmis

      Si tu veux rajouter en colonne J la colonne A, on peut déjà mettre "Lib CdC"
      en J1, mais ensuite, ça va bloquer ! voici pourquoi :

      Pour l'article d qui est seul, c'est le libellé 1514-a (en C5 et A5).
      Pour l'article b qui est seul, c'est le libellé 1513-a (en C3 et A3).

      Pour l'article a qui est en C2 et C4, quel libellé faudrait-il mettre en J2 ?
      Le libellé de A2 (1513-a) ou le libellé de A4 (1514-a) ?

      Je ne vois pas de solution, sauf peut-être à choisir par exemple le 1er libellé
      rencontré, donc 1513-a ; mais peut-être préfères-tu choisir le dernier libellé,
      donc 1514-a ? C'est un choix arbitraire que je ne peux pas faire à ta place !

      --------------------------------------------------------------

      2) Pour le 2ème fichier que tu as transmis

      Sur la 1ère feuille "INTERVALLE", tes dates en colonne D étaient au format
      Standard => les dates apparaissaient sous la forme de numéros de série ;
      j'ai corrigé cela en mettant le format date jj-mmm-aa (le même que tu as
      utilisé pour les dates de ta feuille "Sheet1", colonne D).

      Sur la 2ème feuille "Sheet1", il y avait en I2 le nombre 84675,35 ; j'ai mis
      cette formule à la place : =SOMME(F:F) en mettant aussi un format de
      nombre avec 2 chiffres après la virgule et séparateur de milliers =>
      84 675,35 ; si tu changes ta colonne F (modif ou ajout de montants),
      I2 affichera la bonne somme.

      Voici ton nouveau fichier : https://mon-partage.fr/f/fxAlhVEI/

      --------------------------------------------------------------

      « ... ajouter aussi la colonne A, je voulais affecter pour chaque somme,
      les cellules correspondantes de la colonne A »

      Si tu veux que je t'aide davantage, tu dois mieux préciser ta demande !

      a) Est-elle pour le 1er fichier transmis ? ou pour le 2ème fichier ?

      b) Quand tu parles de tes données, précise leur emplacement :
          sur quelle feuille ? en cellule B5 (par exemple) ; autre exemples :
          colonne "Date cpt" ; D6 à D10 (si la dernière ligne sera toujours
          la ligne 10) ; à partir de D6, ou D6 à dernière (si la dernière
          ligne est variable car ajout de données).

      c) Pour une copie de données, préciser source et destination ; exemple :
          source : feuille "INTERVALLE", colonne A (Lib CdC)
          cible : feuille "Sheet1", à partir de K5

      d) Complément d'info à donner pour le point c) :
          Si on doit copier seulement une partie des données source,
          quel critère utiliser pour choisir lesquelles ? exemples :
          les lignes dont les libellés commencent par "1516-"
          les lignes de telle date à telle date
          les lignes "1516-..." de telle date à telle date
       
      0
    5. NLAH Messages postés 135 Statut Membre 2
       
      d'abord je te rermercie pour votre interet de m'aider.
      j'arrive pas a acceder a votre fichier :s

      je vais vous expliquer avec un exemple:

      Pour l'article d qui est seul, c'est le libellé 1514-a en M4
      Pour l'article b qui est seul, c'est le libellé 1513-a en M3
      Pour l'article a qui est en C2 et C4, je dois affiché les deux libelle: l'un dans la colonne M2 ET L'autre dans la colonne N2.
      0