Somme plusieurs cellules d'une feuille [Résolu]

Signaler
Messages postés
3
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
18 juin 2020
-
Messages postés
3
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
18 juin 2020
-
Bonjour,

Dans mon classeur j'ai plusieurs feuilles: Feuil1, Feuil2, Feuil3 etc....

Chaque feuille a une configuration similaire qui comprend 2 colonnes: "colonne Code Article, et colonne TOTAL"

soit:

Feuil1 Feuil2 Feuil3

Code Article TOTAL Code Article TOTAL Code Article TOTAL

XXSS88 8 AAHE09 2 LJHM11 11
LJHM11 4 LJHM11 3 XXSS88 0
AAHE09 1 XXSS88 9 AAHE09 7





Mon souhait est que dans une autre feuille exemple Feuil4 , on stock l’addition du TOTAL de chaque Code Article en parcourant chaque ligne de chaque feuille.

Comme résultat on aurait:

Feuil4

Code Article TOTAL

LJHM11 18 (11+3+4)

AAHE09 10(7+2+1)

XXSS88 17(8+9+0)


NB: les codes articles ne sont pas sur les meme lignes dans les différentes feuilles et dans toutes les feuilles on peux ajouter au fur et à mesure des articles.

Pourriez vous m' aider svp je suis débutant.

CORDIALEMENT

1 réponse

Messages postés
11513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020
659
bonjour,
le contenu de la feuille 4 sera donc complètement recalculé à chaque exécution de la macro, à la demande?
quel est le volume approximatif des données?
>
Messages postés
11513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020

La colone A de la feuille 4 est prérempli par les codes articles comme dans les autres feuilles .

La macro est juste une mise à jour du TOTAL dans la feuille 4, lorsque la colone TOTAL est modifier dans l"une ou toutes les feuill 1, 2 et 3.

Cordialement.
Messages postés
11513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020
659 > Sed
peux-tu partager un fichier exemple?
Messages postés
3
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
18 juin 2020
>
Messages postés
11513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020

oui,ci joint le fichier:

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

cordialement.
Messages postés
11513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020
659 >
Messages postés
3
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
18 juin 2020

suggestion:
Option Explicit
Const nsources As String = "Feuil1/Feuil2/Feuil3"
Const ndest As String = "Feuil4"
Sub cc()
Dim wdest As Worksheet, wsrc As Worksheet, nsrc, nlig As Long, rgdestart As Range
Dim rgart As Range
Set wdest = Worksheets(ndest)
nlig = 2
Do While wdest.Cells(nlig, 1) <> ""
    wdest.Cells(nlig, 2) = 0
    nlig = nlig + 1
Loop
If nlig > 2 Then
    Set rgdestart = Range(wdest.Cells(2, 1), wdest.Cells(nlig - 1, 1))
    For Each nsrc In Split(nsources, "/")
        Set wsrc = Worksheets(nsrc)
        nlig = 2
        Do While wsrc.Cells(nlig, 1) <> ""
            Set rgart = rgdestart.Find(wsrc.Cells(nlig, 1))
            If Not rgart Is Nothing Then
                rgart.Offset(0, 1) = rgart.Offset(0, 1) + wsrc.Cells(nlig, 2)
            End If
            nlig = nlig + 1
        Loop
    Next nsrc
End If
End Sub
Messages postés
3
Date d'inscription
samedi 17 août 2013
Statut
Membre
Dernière intervention
18 juin 2020
>
Messages postés
11513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020

Merci
cela fonctionne exactement comme il faut.
Je marque le sujet comme résolu.