Macro VBA : affichage ds une feuilles les sommescalculées sur une liste variable

lallamimouna Messages postés 1 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 16 juin 2009 - 16 juin 2009 à 22:22
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011 - 18 juin 2009 à 22:15
Bonjour,

Je suis débutante en Macro execl et j'ai besoin d'aide!!!

je vous explique mon Pb:

J'ai ds un classeur exel  deux feuilles:

-   Feuilles info( contient deux colones: col A qui rassemble une liste  de noms(a, b,c...) , Col B des Qtes)
EX: feuille 1   : info
Colone  A     Colone B
   a                         x
   b                         y
   c                         z
...
....

- Feuilles Suivi(c'est une extraction quotidiennes donc plages variables plus de 600 lignes  ) qui contien  clones A les noms mais sur plusieurs lignes avce les qtes sur la colone B
 
EX:  feuille 2   Suivi

Colone A   Colone B
    a               2
   a               4
   a              4
  b             23
  b            4
c   7
c    23
c    11
c   87
c  55

Je voudrais  faire une macro qui fasse une boucle et qui me calcul ds la cellule x ds la feuille info la somme des Qtes liés au nom : a  se trouvant sur la feuille suivi : à savoir pr l'exemple: 2+4+4=10

et que le resultat de de la macro apres execution soit l'affichage dans les cellules de la colone B de la feuille suivi  DE LA SOMME correspondants à chaque nom.

pour l'instant, je suis juste arriver à copier l'extraction d'un autres classeur fermé à ce classeur .

Merci d'avance pour vos futurs idées!!

1 réponse

Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 juin 2011
18 juin 2009 à 22:15
essaie un truc du genre, ca te donnera au moins la méthode si ce n'est pas totalement juste:

    debut = CInt(InputBox("A partir de quelle ligne ?", , 2))
    parc = debut
    nb_lignessuivi = Sheets("suivi").Cells(65536, "A").End(xlUp).Row
   
    Do While ((parc <= nb_lignessuivi)) 'parcours la 1ere colonne
        valA = Sheets("suivi").Range("A" & parc).value
        nb_lignesinfo = Sheets("info").Cells(65536, "A").End(xlUp).Row 'je compte les lignes
        trouve = false
        parc2 = 1
        'je vérifie sa présence dans toutes les lignes de la feuile info:
        Do While ((parc2 <= nb_lignesinfo) and not(trouve))                   
            valB = Sheets("info").Range("A" & parc2).value
            If (InStr(valB, valA)) Then 'existe deja, je rajoute                                          
                trouve = True
                Sheets("info").Range("B" & parc).value = Sheets("info").Range("B" & parc).value + _
                Sheets("suivi").Range("B" & parc).value
            End If                   
            parc2 = parc2 + 1
        loop
       
        if not(trouve) then 'ben si malgré tou je l'ai pas trouvé, je l'ajoute à la suite
        Sheets("info").Range("A" & nb_lignessuivi+1).value = Sheets("suivi").Range("A" & parc).value
        Sheets("info").Range("B" & nb_lignessuivi+1).value = Sheets("suivi").Range("B" & parc).value
        end if
    Loop
0
Rejoignez-nous