Additioner des valeurs non unique sur plusieurs feuille exce

Bonjour,

Je suis débutant sur Excel et je ne sais pas si mon titre exprime bien ce que j'aimerais faire.

Pour le travail je dois créer un outil prédictif à partir d'extraction SAP, là où je bloque c'est que je dois additioner des entrées et des sorties d'articles ( une feuille pour les sorties, une feuille pour les entrées) sur une troisième feuilles.

Le problème est que un article peut apparaitre plusieurs fois, une ligne pour chaques sorties faites.

Et surtout je n'ai pas le même nombre d'article sortie et entré.

Il faut que sur la troisième feuilles, il n'y ai une seule ligne par numéro d'article avec l'addition de ses entrées et sorties donc additionant les deux tableaux certains article étant seulement sorties ou entrés..

Je sais que la solution dois surement passer par une recherche V de ce que j'ai pu voir avec les problèmes similaires mais je ne sais pas du tout l'utiliser

Si quelqu'un connait une fonction utilisable ou comment s'y prendre j'aimerais bien que l'on me l'explique car je vais devoir utiliser des formules comme ça plusieurs fois dans mon outil.

Je vous remercie par avance de votre aide !

Je vous est mis un échantillon car j'ai plus de 170 000 reférences en tout à traiter.

Bonsoir Stome, le forum

A tester :

Sub test()
Dim a, i As Long
    a = Sheets(2).Range("b1").CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        .Item("N° d'article") = "Quantité"
        For i = 2 To UBound(a, 1)
            .Item(a(i, 1)) = .Item(a(i, 1)) + a(i, 2)
        Next
        a = Sheets(1).Range("c1").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            .Item(a(i, 1)) = .Item(a(i, 1)) + a(i, 2)
        Next
        'restitution
        If .Count > 1 Then
            Sheets(3).Range("a1").Resize(.Count, 2).Value = _
            Application.Transpose(Array(.keys, .items))
        End If
    End With
End Sub

klin89

Re Stome,

le code réajusté :

Option Explicit
Sub test()
Dim a, b(), i As Long
    a = Sheets("Reintegration").Range("b1").CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        .Item("N° d'article") = "Quantité"
        For i = 2 To UBound(a, 1)
            .Item(a(i, 1)) = .Item(a(i, 1)) + a(i, 2)
        Next
        a = Sheets("Sortie").Range("c1").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            .Item(a(i, 1)) = .Item(a(i, 1)) + a(i, 2)
        Next
        'pour eviter Application.Transpose
        ReDim b(1 To .Count, 1 To 2)
        For i = 0 To .Count - 1
            b(i + 1, 1) = .keys()(i)
            b(i + 1, 2) = .items()(i)
        Next
        'restitution
        If .Count > 1 Then
            Sheets(3).Range("a1").Resize(UBound(b, 1), UBound(b, 2)).Value = b
        End If
    End With
End Sub

klin89

Une solution bien plus simple aurait été de regrouper les entrées et sorties sur le même tableau (même feuille), et ensuite de faire un tableau croisé dynamique.

Tu rajoute une colonne qui te permet de distinguer entré et sortie et un filtre par dessus histoire de visualiser aux choix les entrée ou les sortie

Edit : A partir de la version 2013 d'Excel tu peux garder tes 2 feuilles et utiliser les modèles de données.

Merci beaucoup de vos réponse cela va mettre d'une grande aide !

C'est super sympa

Rechercher des sujets similaires à "additioner valeurs unique feuille exce"