Détection des écarts de quantités entre 2 feuilles en VBA

Bonjour tout le monde ,

je suis débutante en VBA et je dévéloppe un petit code qui facilite la détection des écarts des quantités en feuille 1 et feuille 2 .

Disant que dans la feuille 1 j'ai

Ref Quantité

705-101-102 5000

705-123-123 1000

705-101-102 6000

Dans la feuille 2 j'ai :

705-101-102 5000

705-123-123 1000

705-123-123 9000

Donc dans la feuille 3 je veux :

705-101-102 (5000+6000) - 5000 = 6000

705-123-123 1000 - ( 1000 + 9000) = -9000

Merci de trouver ci-joint le fichier excel.

2112-19-2014.xlsm (38.38 Ko)

Bonjour. Bienvenue sur le Forum

Par macro?

Avec une formule matricielle

Cordialement

17classeur1.xls (15.50 Ko)
Amadéus a écrit :

Bonjour. Bienvenue sur le Forum

Par macro?

Avec une formule matricielle

Cordialement

Bonjour Amadéus , merci infiniment

Oui par macro , et c'est que je veux vraiment c'est pas une forme matricielle mais en VBA. Je viens de découvrir que je veux la somme de toutes les quantités de ref A dans la feuille 1 moins la somme de toutes les quantités de la même référence dans la feuille 2 ; et je veux que la différence s'affiche dans Feuill 3.

Je joins le fichier

25verificat.xlsx (24.22 Ko)

Quelqu'un a de réponses ? SVP

Bonsoir , SVP quelqu'un ! je suis vraiment bloquée !!

Bonjour,

A tester.

Cdlt.

20verificat.xlsm (34.38 Ko)
Option Explicit
Option Private Module
Public Sub Calcul_ecarts()
'Quantité Physique - Quantité Papier
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim monDico As Object
Dim c As Range

    Application.ScreenUpdating = False
    Set ws1 = Worksheets("Quantité papier")
    Set ws2 = Worksheets("Quantité Physique")
    Set ws3 = Worksheets("Ecart")
    Set monDico = CreateObject("Scripting.Dictionary")
    ' - quantité papier
    With ws1
        For Each c In .Range("C2", .[C1048576].End(xlUp))
            monDico(c.Value) = monDico(c.Value) - c.Offset(, 1).Value
        Next c
    End With
    ' + quantité physique
    With ws2
        For Each c In .Range("C2", .[C1048576].End(xlUp))
            monDico(c.Value) = monDico(c.Value) + c.Offset(, 1).Value
        Next c
    End With

    With ws3
        .[A1].CurrentRegion.Offset(1, 0).Delete
        .[A2].Resize(monDico.Count, 1) = Application.Transpose(monDico.keys)
        .[B2].Resize(monDico.Count, 1) = Application.Transpose(monDico.items)
        .[A1].Sort Key1:=.[A2], Order1:=xlAscending, Header:=xlYes
        .Activate
        .[A1].Select
    End With

    Set monDico = Nothing
    Set ws1 = Nothing: Set ws2 = Nothing: Set ws3 = Nothing

End Sub

Bonjour ,

Je vous remercie infiniment

et si je veux que une ligne qui figure par exemple dans Feuille 1 et ne figure pas dans Feuille 2 , et que lors d'exécution de macro de calcul des écarts dans Feuille 3 , soit coloriée ?!

Rechercher des sujets similaires à "detection ecarts quantites entre feuilles vba"