Comparer lignes de 2 feuilles excel

Résolu
laure -  
 laure -
Bonjour,

J'aurais besoin d'aide, je ne suis pas experte d'Excel... je voudrais pouvoir comparer des lignes en faisant ressortir les différences, absences, nouveautés d'un fichier à l'autre.

je m'explique :

je travaille sur les relances clients.
j'ai un tableau avec comme champs :
Numéro facture, Numéro client, Date Facture, Date échéance, nombre de jour de retard, Montant facture, reste dû, niveau de relance.

Chaque mois je fais une importation sur excel (à partir d'un autre logiciel ) de toutes ces données.
Je dispose donc de plusieurs feuilles avec à chaque fois un tableau en date du « ... »
Chaque mois j'ai un nouveau tableau ou de nouvelles factures impayées apparaissent, d'autres disparaissent (factures payées) et d'autres dont le « reste dû » diminue (facture payée en partie).
Je souhaiterais avoir une bonne visualisation d'un mois à l'autre des factures qui ont été payées (lignes disparues), les nouvelles et l'évolution du « reste dû ». J'espère avoir été assez claire... merci d'avance !

7 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Je ne vois que l'utilisation d'une macro pour réaliser ceci.

    Tes numéros de facture sont bien en colonne A? Sont ils uniques ou y a t'il des doublons de n° de facture?
    0
    1. laure
       
      Merci pour ta réponse pijaku oui j'ai bien les n° de facture en colonne a et il n'y a pas de doublon
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Premier essai
    Sub trier_factures()
    Dim Dico1 As Object, Dico2 As Object, Tabl1, Tabl2, i As Long
    
    Set Dico1 = CreateObject("Scripting.Dictionary")
    Set Dico2 = CreateObject("Scripting.Dictionary")
    With Sheets("Mois précédent")
        Tabl2 = .Range("A3", .Range("H" & Rows.Count).End(xlUp))
        For i = LBound(Tabl2) To UBound(Tabl2)
            If Not Dico1.Exists(Tabl2(i, 1)) Then Dico1.Add Tabl2(i, 1), Tabl2(i, 7)
        Next
    End With
    
    With Sheets("Extraction")
        Tabl1 = .Range("A3", .Range("A" & Rows.Count).End(xlUp))
        For i = LBound(Tabl1) To UBound(Tabl1)
            If Not Dico2.Exists(Tabl1(i, 1)) Then Dico2.Add Tabl1(i, 1), Tabl1(i, 1)
        Next
        For i = LBound(Tabl1) To UBound(Tabl1)
            If Not Dico1.Exists(Tabl1(i, 1)) Then
                .Range("A" & i + 2).Interior.ColorIndex = 36
            Else
                .Range("A" & i + 2).Interior.ColorIndex = 3
                .Range("I" & i + 2).Value = CDbl(Dico1.Item(Tabl1(i, 1))) - CDbl(.Range("G" & i + 2).Value)
            End If
        Next
    End With
    
    With Sheets("Mois précédent")
        For i = LBound(Tabl2) To UBound(Tabl2)
            If Not Dico2.Exists(Tabl2(i, 1)) Then
                .Range("A" & i + 2).Interior.ColorIndex = 35
            End If
        Next
    End With
    End Sub
    
    0
    1. laure
       
      Merci beaucoup je vais essayé ca dans l'après midi si j'ai 5min. merci!
      0
    2. laure
       
      Ca me met le message d'erreur suivant :

      Erreur d'exécution '16'
      Expression trop complexe

      pour la ligne :
      .Range("I" & i + 2).Value = CDbl(Dico1.Item(Tabl1(i, 1))) - CDbl(.Range("G" & i + 2).Value)
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Erreur d'exécution '16'
    Expression trop complexe

    Pour moi c'est du jamais vu...
    Je ne connais pas ce message d'erreur...
    Peux tu stp, me passer une copie de ton fichier, en supprimant les infos confidentielles (noms de société etc...) que je puisses y regarder de plus près? Le format de tes données notamment...
    utilises le site que j'ai moi même utilisé plus haut : https://www.cjoint.com/
    Tu va sur ce site, créées un lien vers ton fichier, copies ce lien et viens le coller dans une réponse...
    0
    1. laure
       
      ok, par contre je viens de m'aperçevoir que j'ai des doublons.
      je vais essayer d'arranger ça avant
      0
  4. laure
     
    Bonjour,

    Voici mon fichier. Je n'ai cependant pas la possibilité de supprimer les doublons de factures...

    http://cjoint.com/?BCiqnPsAaMr
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Désolé Laure, je ne peux pas ouvrir les fichiers .xlsm...
      Peux tu stp l'enregistrer sous : type classeur excel 97-2003 et me le transférer à nouveau?
      Merci
      0
    2. laure
       
      http://cjoint.com/?BCiqB5Az2DP

      :)
      0
    3. laure
       
      la première colonne ne sert à rien c'était pour moi ^^
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Fichier reçu.
    Cependant, je dois revoir le code car tu as une colonne supplémentaire... La colonne A n° n'était pas prévue...
    0
    1. laure
       
      tu peux la supprimer, ce que j'avais fais lors du test
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      OK.
      reste néanmoins le problème des doublons de factures.............
      J'y regarde, mais ça semble compromettre le truc!
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      effectivement, les doublons m'empêchent d'obtenir la différence entre le reste dû ce mois-ci et le reste dû du mois précédent...

      Par contre, j'arrive bien à colorer les factures :
      - nouvelles
      - disparues

      https://www.cjoint.com/?BCirjJK7bB2
      0
  7. laure
     
    Bonjour pijaku, merci pour ton aide !
    je reviens sur le sujet,
    après reflexion j'aimerai créer une nouvelle feuille en distinguant :
    - les nouvelles factures (nouveau n° de facture pas présents dans la feuille "mois précédent"
    - les factures payées (factures disparues)
    - les factures impayées (inchangées)

    peux-tu m'aider??
    0
    1. laure
       
      serait-il possible de le réaliser à l'aide d'un tableau croisé dynamique???
      ou bien la macro est obligatoire?
      0
  8. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    0
    1. laure
       
      oui
      0