Comment trouver différences

Bonjour, je me tourne vers vous , étant très débutant dans excel j'aurais besoin d'aide.

j'ai toutes les semaines des paiement a effectuer, j'ai donc a comparer deux tableaux (de jours différents) pour trouver les écarts, qui peuvent êtres soit des nouveaux fournisseurs, soit des rajouts sur fournisseur déjà présent, ou des sommes supprimées.

Je ne sais pas comment joindre mon tableau !

Merci de votre aide

Bonjour

,tu devrais envoyer un fichier d'exemple court mais avec la même structure que ton original ...Ca peut aider à t'aider

Voila un exemple de mon fichier.

merci

Bonjour à tous,

Y a le fichier mais pas le résultat souhaité

Encore un fois, il faut tout deviner

Il suffirait pourtant de quelques lignes avec tous les cas pouvant se présenter, c'est pas compliqué non

Vois ma première solution dans ce fil, cela y ressemble grandement.

https://forum.excel-pratique.com/excel/dictionnaire-avec-item-tableau-t69478.html

klin89

re,

un début ici :

P.

Dans mon premier post j'avais pourtant mis cette explication ( surement pas assez clair je te l'accorde)

"j'ai toutes les semaines des paiement a effectuer, j'ai donc a comparer deux tableaux (de jours différents) pour trouver les écarts, qui peuvent êtres soit des nouveaux fournisseurs, soit des rajouts sur fournisseur déjà présent, ou des sommes supprimées."

En tous cas merci de te donner la peine de m'aider.


merci,

mais par exemple :105766 -12712,38 le 28/11 et -12984,49 le 29/11 soit une différence positive de 272.11.

sylvain

Une autre code peut être plus approprié au niveau des montants...

il y a un petit soucis, par exemple le 115151 ou 108837 est sur deux lignes car ce fournisseur a deux RIB différents que j'ai retiré du tableau (confidentiel) donc ce sont deux paiements différents.

encore merci.

re,

sorry mais mes connaissances dans les dictionnaires sont limitées et ne progressent pas donc , je ne peux te proposer que ceci qu'un meilleur spécialiste ici pourra réarranger pour que cela te convienne

P.

Re sylvain21,

A tester :

Option Explicit

Sub Rapprochement()
Dim a, i As Long, w
    a = Sheets(1).Range("a1").CurrentRegion.Value
    'la plus simple façon pour créer un dictionnaire
    'On déterminera la clé avec les valeurs de la 1ère colonne
    With CreateObject("Scripting.Dictionary")
        For i = 2 To UBound(a, 1)
            ReDim w(1 To 4)    'variable tableau de 4 éléments
            'affectation des 2 premiers éléments de la variable tableau
            w(1) = a(i, 1): w(2) = a(i, 2)
            'ajoute la clé et les éléments associés soit un tableau de 4 valeurs
            .Item(a(i, 1)) = w
            'w(1) w(2)sont affectés
            'w(3) w(4)sont vides pour l'instant
        Next
        a = Sheets(2).Range("a1").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            'si la clé existe
            If .exists(a(i, 1)) Then
                'rappel des éléments de la clé concernée
                w = .Item(a(i, 1))
                'Affectation du 3ème élément de la variable tableau qui était vide
                w(3) = a(i, 2)
                'w(4)est toujours vide
            Else
                'sinon (si la clé n'existe pas "rebelotte")
                ReDim w(1 To 4)
                'Affectation du 1er et 3 eme élément
                w(1) = a(i, 1): w(3) = a(i, 2)
                'w(2)reste vide
            End If
            'Au final le 4ème élement est la différence
            w(4) = w(2) - w(3)
            'Mise en mémoire de la clé et de ses éléments
            .Item(a(i, 1)) = w
        Next
        Application.ScreenUpdating = False
        On Error Resume Next
        Application.DisplayAlerts = False
        Sheets("Synthese").Delete
        On Error GoTo 0
        Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Synthese"
        Sheets("Synthese").Cells(1).Resize(1, 4).Value = Array("Fournisseur", "J", "J+1", "Diff")
        Sheets("Synthese").Cells(1).Offset(1).Resize(.Count, 4).Value = _
        Application.Transpose(Application.Transpose(.items))
        With Sheets("Synthese").Cells(1).CurrentRegion
            .Font.Name = "calibri"
            .Font.Size = 10
            .VerticalAlignment = xlCenter
            .BorderAround Weight:=xlThin
            .Borders(xlInsideVertical).Weight = xlThin
            With .Rows(1)
                .BorderAround Weight:=xlThin
                .Interior.ColorIndex = 38
            End With
            .Columns.AutoFit
        End With
        Application.ScreenUpdating = True
    End With
End Sub

La colonne C sur tes 2 feuilles, on en fait quoi

klin89

Sa colonne C (sur le fichier de départ est le montant); j'ai essayé ton code et il s'arrête ici:

w(4) = w(2) - w(3)

edit

oups non ..... ça marche en enlevant la colonne A

Les explications sont un "+" pour tenter de comprendre comment ça tourne Merci !

ps:

Voilà ce qu'il dit avant : ( les montants sont bien en colonne "C" )

"merci,

mais par exemple :105766 -12712,38 le 28/11 et -12984,49 le 29/11 soit une différence positive de 272.11.

sylvain"

et les 2 sociétés ont des comptes différents... si j'ai bien compris

Rechercher des sujets similaires à "comment trouver differences"