Lettrage automatique

chermiti

XLDnaute Occasionnel
bonjour les amis,

j'ai un fichier excel qui regroupe les débit et les crédits, mon travail consiste à balancer chaque paiement avec les factures respectives, je fais ce travail manuellement mais il me prend beaucoup de temps, pouvez vous s'il vous plait m'aider pour trouver une application ou une macro afin de faire le lettrage comme mentionnée dans le fichier ci joint

merci d'avance
 

Pièces jointes

  • LETTRAGE AUTOMATIQUE.xlsx
    36.1 KB · Affichages: 946

chermiti

XLDnaute Occasionnel
Re : Lettrage automatique

Bonjour le fil, le forum,

Voici une tout autre méthode qui étudie toutes les combinaisons jusqu'à un maximum de 5 débits :

Code:
Sub Rapprochement()
'permet de rapprocher jusqu'à 5 débits
Dim durée#, P As Range, debit, credit, lettrage
Dim i&, cred As Single, a&, n&, b&, c&, d&, e&, f&
durée = Timer
Set P = ActiveSheet.UsedRange
P.Sort ActiveSheet.[A1], xlAscending, Header:=xlYes 'tri par dates
debit = P.Columns("E") 'matrice, plus rapide
credit = P.Columns("F")
P.Columns("H").Offset(1) = "" 'RAZ
lettrage = P.Columns("H")
For i = 2 To P.Rows.Count
  If credit(i, 1) > 0 Then
    cred = credit(i, 1)
    '---1 débit---
    For a = 2 To i - 1
      If lettrage(a, 1) = 1 Then GoTo 2
      If CSng(debit(a, 1)) <> cred Then GoTo 2
      n = n + 1
      lettrage(i, 1) = 1
      lettrage(a, 1) = 1
      P(i, "H") = n
      P(a, "H") = n
      GoTo 1
2   Next a
    '---2 débits---
    For a = 2 To i - 2
      If lettrage(a, 1) = 1 Then GoTo 3
      For b = a + 1 To i - 1
        If lettrage(b, 1) = 1 Then GoTo 4
        If CSng(debit(a, 1) + debit(b, 1)) <> cred Then GoTo 4
        n = n + 1
        lettrage(i, 1) = 1
        lettrage(a, 1) = 1
        lettrage(b, 1) = 1
        P(i, "H") = n
        P(a, "H") = n
        P(b, "H") = n
        GoTo 1
4     Next b
3   Next a
    '---3 débits---
    For a = 2 To i - 3
      If lettrage(a, 1) = 1 Then GoTo 5
      For b = a + 1 To i - 2
        If lettrage(b, 1) = 1 Then GoTo 6
        For c = b + 1 To i - 1
          If lettrage(c, 1) = 1 Then GoTo 7
          If CSng(debit(a, 1) + debit(b, 1) + _
            debit(c, 1)) <> cred Then GoTo 7
          n = n + 1
          lettrage(i, 1) = 1
          lettrage(a, 1) = 1
          lettrage(b, 1) = 1
          lettrage(c, 1) = 1
          P(i, "H") = n
          P(a, "H") = n
          P(b, "H") = n
          P(c, "H") = n
          GoTo 1
7       Next c
6     Next b
5   Next a
    '---4 débits---
    For a = 2 To i - 4
      If lettrage(a, 1) = 1 Then GoTo 8
      For b = a + 1 To i - 3
        If lettrage(b, 1) = 1 Then GoTo 9
        For c = b + 1 To i - 2
          If lettrage(c, 1) = 1 Then GoTo 10
          For d = c + 1 To i - 1
            If lettrage(d, 1) = 1 Then GoTo 11
            If CSng(debit(a, 1) + debit(b, 1) + _
              debit(c, 1) + debit(d, 1)) <> cred Then GoTo 11
            n = n + 1
            lettrage(i, 1) = 1
            lettrage(a, 1) = 1
            lettrage(b, 1) = 1
            lettrage(c, 1) = 1
            lettrage(d, 1) = 1
            P(i, "H") = n
            P(a, "H") = n
            P(b, "H") = n
            P(c, "H") = n
            P(d, "H") = n
            GoTo 1
11        Next d
10      Next c
9     Next b
8   Next a
    '---5 débits---
    For a = 2 To i - 5
      If lettrage(a, 1) = 1 Then GoTo 12
      For b = a + 1 To i - 4
        If lettrage(b, 1) = 1 Then GoTo 13
        For c = b + 1 To i - 3
          If lettrage(c, 1) = 1 Then GoTo 14
          For d = c + 1 To i - 2
            If lettrage(d, 1) = 1 Then GoTo 15
            For e = d + 1 To i - 1
              If lettrage(e, 1) = 1 Then GoTo 16
              If CSng(debit(a, 1) + debit(b, 1) + _
                debit(c, 1) + debit(d, 1) + _
                  debit(e, 1)) <> cred Then GoTo 16
              n = n + 1
              lettrage(i, 1) = 1
              lettrage(a, 1) = 1
              lettrage(b, 1) = 1
              lettrage(c, 1) = 1
              lettrage(d, 1) = 1
              lettrage(e, 1) = 1
              P(i, "H") = n
              P(a, "H") = n
              P(b, "H") = n
              P(c, "H") = n
              P(d, "H") = n
              P(e, "H") = n
              GoTo 1
16          Next e
15        Next d
14      Next c
13    Next b
12  Next a
    lettrage(i, 1) = 1
    P(i, "H") = "Pas trouvé"
    DoEvents 'pour l'affichage
  End If
1 Next i
MsgBox "Durée " & Format(Timer - durée, "0.0 \s")
End Sub
25 crédits ne sont pas trouvés, bien sûr maintenant F27 est trouvé...

Fichier joint.

A+

bonjour JOB 75,

merci infiniment pour ce travail, ça était très bénéfique pour moi, reste juste une question, pour cette macro est ce que c'est le maximum de prendre 5 débits ou on peut prendre d'autres

cordialement
 

decotinho

XLDnaute Nouveau
Re : Lettrage automatique

Bonjour à tous, je souhaite lettrer mes écritures bancaires et Regarde la pièce jointe rappro esquisse test 2.xlsxcomptables , tout en impactant mon solde rapproché

une fois les écritures rapprochés automatiquement, elles doivent être déplacées dans une autre feuille

dans l'attente d'un retour favorable de votre part
 
Dernière modification par un modérateur:

Abderrahmane

XLDnaute Nouveau
Bonjour les amis,

J'ai un fichier excel qui regroupe les débit et les crédits, mon travail consiste à balancer chaque paiement avec les factures respectives, j'ai fait le résultat manuellement mais il me prend beaucoup de temps, pouvez vous s'il vous plait m'aider pour trouver une application ou une macro afin de faire le lettrage comme mentionnée dans le fichier ci joint

merci d'avance


NB: j'ai consulté les autres publications qui ressemble a mon fichier mais autant débutant j'arrive pas a résoudre le problème
 

Pièces jointes

  • LETTRAGE AUTOMATIQUE.xlsx
    14.1 KB · Affichages: 24

GADENSEB

XLDnaute Impliqué
Hello
J'avais lancé un sujet similaire

XL 2016 - POINTAGE LETTRAGE AVEC MISE EN COULEUR
Hello Le forum Je recherche à réaliser une macro XLA pour le pointage de comptes Objectif :. MSGBOX : pour choisir la colonne MONTANT et la Colonne LETTRAGE Créer un lettrage/rapprochement pour chaque ENTITE (colonneA) Exemple pour Entité AA : -6 et -4 sont l'addition de 10 Dans la colonne...
www.excel-downloads.com
www.excel-downloads.com
mais je n'ai pas vraiment eu de succés lol

Le code présent est super, est-ce que vous croyez qu'il peut être adapté à ma demande ?
bonne soirée
sébastien
 

Pièces jointes

  • RAPPROCHEMENT LETTRAGE - V2- avec imput box .xlsm
    18.1 KB · Affichages: 26

Discussions similaires

Réponses
4
Affichages
332
  • Question
Microsoft 365 Teams
Réponses
7
Affichages
474
  • Résolu(e)
Microsoft 365 Lettrage
Réponses
9
Affichages
1 K

Statistiques des forums

Discussions
314 495
Messages
2 110 224
Membres
110 708
dernier inscrit
novy16