Vérifier une liste de références par système de vrai/faux

Tod87

XLDnaute Nouveau
Bonsoir,

Dans mon fichier, j'ai une liste de références dans une colonne A qui corresponde chacune à des entrées/sorties de stocks.

Comment puis-je faire pour vérifier qu'une référence X qui est par exemple l'entrée en stock corresponde à la même référence X de sa sortie de stocks.

En gros faire correspondre une (ou plusieurs entrées) à une ou plusieurs sorties sur une même référence, par un système de VRAI/FAUX qui me permettrait de savoir si la sortie effectuée correspond bien a l'entrée effectuée et ceci sur la même référence

Je vous joins un exemple dans le fichier ci-dessous :

Dans cet exemple j'aimerais savoir s'il m'est possible d'afficher dans une colonne un VRAI/FAUX qui me permettrait de voir en un seul coup d'oeil si les entrées correspondent aux sorties sur les mêmes références.

Ici dans l'exemple vous allez me dire que oui vu que ce sont toutes les mêmes références mais parfois je n'arrive pas à faire correspondre les références car ces dernières changent d'une "entrée" à une "sortie" et c'est ce qui m'intéresserait, c'est trouver quand les références entrées/sorties ne "collent" pas.

Je suis preneur de toutes idées.

Merci par avance
 

Pièces jointes

  • Copie de Classeur1.xlsx
    31.6 KB · Affichages: 57
  • Copie de Classeur1.xlsx
    31.6 KB · Affichages: 55
  • Copie de Classeur1.xlsx
    31.6 KB · Affichages: 55

homepyrof53

XLDnaute Occasionnel
Re : Vérifier une liste de références par système de vrai/faux

Bonsoir,

Voici une macro

Code:
Sub test()
Dim tab_ref As Object
Set tab_ref = CreateObject("scripting.dictionary")
Sheets("Feuil5").Select


l = 2
While Cells(l, 1) <> ""
    ref = Cells(l, 2)
    If tab_ref.exists(ref) = False Then tab_ref(ref) = Array(0, 0)
    tmp = tab_ref(ref)
    qte = Abs(Cells(l, 3))

    Select Case Trim(Cells(l, 1))
        Case "entrée"
            tmp(0) = tmp(0) + qte
        Case "sortie"
            tmp(1) = tmp(1) + qte
    End Select
    tab_ref(ref) = tmp
    l = l + 1
Wend
'-----------------------------------------------
'                ecriture resultat
'-----------------------------------------------
l = 2
For Each cle In tab_ref
    Cells(l, 7) = cle
    Cells(l, 8) = tab_ref(cle)(0)
    Cells(l, 9) = tab_ref(cle)(1)
    l = l + 1
Next


End Sub


Il te suffira de modifier l'écriture du résultat
A+
 

Discussions similaires

Réponses
2
Affichages
957

Statistiques des forums

Discussions
312 107
Messages
2 085 355
Membres
102 874
dernier inscrit
Petro2611