XL pour MAC Lettrage, Macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ANA95

XLDnaute Nouveau
Supporter XLD
Bonjour,

Je dois effectuer un lettrage débit crédit sur une feuille Excel pour voir les montants qui me restent à pointer, et je n'y arrive pas. Je ne suis pas très formée sur Excel et je suis tombée sur ce forum, si quelqu'un pourriez m'aider, je serais reconnaissante.

J'ai entendu parler des macros, mais pour être franche, j'en ai essayé, mais vu mes connaissances, je regarde les exemples et je ne sais pas quoi faire.
 

Pièces jointes

en lâchant le langage comptable et en adoptant celui d'excel, que voulez-vous faire précisément sur ce tableau ?
Merci
Bonjour, dans les colonnes débit crédit il y a des montants égaux et je veux les montants différents entre ces colonnes afin de trouver mon écart.
En gros, je veux que Excel m'indique qu'elles sont les montants équivalents entre les deux colonnes.
Merci
 
Bonjour, dans les colonnes débit crédit il y a des montants égaux et je veux les montants différents entre ces colonnes afin de trouver mon écart.
En gros, je veux que Excel m'indique qu'elles sont les montants équivalents entre les deux colonnes.
Merci
Bonjour, dans les colonnes débit crédit il y a des montants égaux et je veux les montants différents entre ces colonnes afin de trouver mon écart.
En gros, je veux que Excel m'indique qu'elles sont les montants équivalents entre les deux colonnes.
Merci
 
Bonjour @ANA95 😉 et à tous les autres 🙂,

Quand on fait un lettrage, c'est principalement par rapport aux comptes clients (ou fournisseurs) et ça concerne les factures et paiements des factures.
Dans votre classeur, je ne reconnais pas la colonne qui identifie les comptes client (ou fournisseur).
Quelle est donc cette colonne indispensable ?

Pour illustrer : Une société vend un service à abonnement mensuel à 99€ et facture 1 000 clients par mois. On a une liste de 900 paiements de 99€. A quels clients des mille clients doit-on faire correspondre ces paiements si on n'a pas les références du client pour chaque facture et chaque paiement ?

D'autre part si le client (et rien ne l'en empêche - c'est du vécu) peut payer plusieurs factures en un seul paiement ou bien payer une partie seulement d'une facture voire pour un paiement les deux en même temps, alors le lettrage devient plus que "coton".
 
Dernière édition:
Bonjour @ANA95 😉 et à tous les autres 🙂,

Quand on fait un lettrage, c'est principalement par rapport aux comptes clients (ou fournisseurs) et ça concerne les factures et paiements des factures.
Dans votre classeur, je ne reconnais pas la colonne qui identifie les comptes client (ou fournisseur).
Quelle est donc cette colonne indispensable ?

Pour illustrer : Une société vend un service à abonnement mensuel à 99€ et facture 1 000 clients par mois. On a une liste de 900 paiements de 99€. A quels clients des mille clients doit-on faire correspondre ces paiements si on n'a pas les références du client pour chaque facture et chaque paiement ?

D'autre part si le client (et rien ne l'en empêche - c'est du vécu) peut payer plusieurs factures en un seul paiement ou bien payer une partie seulement d'une facture voire pour un paiement les deux en même temps, alors le lettrage devient plus que "coton".
Bonjour , en effet, c'est un compte d'attente, on encaisse de l'argent qu'on ne sait pas à qui ça appartient et ensuite on le débite. Le pb, c'est que ce compte n'a pas été contrôlé depuis des années et là, on me le demande de le faire. Ce n'est pas un compte lettrable du coup, j'ai fait une extraction et je veux simplement voir les somme qui n'ont pas été débités ou crédités. pour que je puisse les analyser et les sortir de ce compte.
Merci
 
Bonjour ANA95, le forum,

J'ai adapté la macro du fichier du lien de mon post #2.

Pour obtenir une durée de traitement acceptable, pour chaque crédit > 0, JE NE TRAITE QUE LES 50 DERNIERS DEBITS :
VB:
Sub Rapprochement()
'permet de rapprocher jusqu'à 5 débits
Dim durée#, P As Range, rc&, debit, credit, lettrage
Dim i&, j&, cred As Single, a&, n&, b&, c&, d&, e&, f&
durée = Timer
Set P = ActiveSheet.ListObjects(1).DataBodyRange
rc = P.Rows.Count
P.Sort [D1], xlDescending, Header:=xlYes 'tri par dates
debit = P.Columns("I") 'matrice, plus rapide
credit = P.Columns("J")
P.Columns("K").ClearContents 'RAZ
Range("N2,N4").ClearContents
Range("N3") = "=COUNT(K:K)"
lettrage = P.Columns("K")
For i = 1 To rc
  Range("N2") = i & "/" & rc 'comptage
  If credit(i, 1) > 0 Then
    j = IIf(i > 50, i - 50, 1) 'LES 50 DERNIERS DEBITS SONT TRAITES
    cred = credit(i, 1)
    '---1 débit---
    For a = j 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, "K") = n
      P(a, "K") = n
      GoTo 1
2   Next a
    '---2 débits---
    For a = j 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, "K") = n
        P(a, "K") = n
        P(b, "K") = n
        GoTo 1
4     Next b
3   Next a
    '---3 débits---
    For a = j 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, "K") = n
          P(a, "K") = n
          P(b, "K") = n
          P(c, "K") = n
          GoTo 1
7       Next c
6     Next b
5   Next a
    '---4 débits---
    For a = j 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, "K") = n
            P(a, "K") = n
            P(b, "K") = n
            P(c, "K") = n
            P(d, "K") = n
            GoTo 1
11        Next d
10      Next c
9     Next b
8   Next a
    '---5 débits---
    For a = j 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, "K") = n
              P(a, "K") = n
              P(b, "K") = n
              P(c, "K") = n
              P(d, "K") = n
              P(e, "K") = n
              GoTo 1
16          Next e
15        Next d
14      Next c
13    Next b
12  Next a
    lettrage(i, 1) = 1
    P(i, "K") = "Pas trouvé"
    Range("N4") = Range("N4") + 1 'comptage
    DoEvents 'pour l'affichage
  End If
1 Next i
MsgBox "Durée " & Format(Timer - durée, "0.0 \s")
End Sub
Chez moi la macro s'exécute en 16 secondes.

1704 lignes sont lettrées et il y a 1991 "Pas trouvé" en colonne K.

A+
 

Pièces jointes

Dernière édition:
Bonjour à tous 🙂,

Ma petite version... Sélectionnez la feuille "Lettrage" puis cliquez le bouton "Pelleteuse".
Je suis beaucoup plus modeste que @job75 (que je salue), je me contente se repérer les débits et crédits égaux. et d'en faire une mise en forme pratique à la sauce de ma pomme. La macro ajoute une colonne Id (comme 1ère colonne) pour les données sources.

Je ne comprends toujours pas comment on peut arriver à des écritures sans référence de compte client ou fournisseur. En tout cas c'est dommage pour ANA95 à qui on a demandé un boulot monstre pour un résultat qui ne peut être qu'approximatif (en espérant qu'auparavant, la procédure des écritures a été adaptée pour que ce phénomène ne se reproduise plus).

En effet prenons un premier débit. On cherche toutes les combinaisons des crédits qui permettent de trouver ce débit. On choisit une combinaison i (souvent c'est la première rencontrée et donc c'est totalement arbitraire !).
On prend un second débit. On cherche toutes les combinaisons des crédit qui permettent de trouver ce débit en excluant bien sûr ceux les crédits déjà utilisés pour le premier débit. On n'en trouve pas🙁.
Rien ne dit que si on avait choisi une autre combinaison j (autre que i) pour le premier crédit, les crédits de la combinaison i libérés par le choix de j n'auraient pas permis (avec les autres crédits libres) de trouver une solution pour le second crédit.
Et ceci peut être étendu au 3ème débit, au 4ème débit, etc.
Autrement dit la meilleure solution est d'examiner toutes les combinaisons de tous les débits à chaque passe ; à part avec les futurs hypothétiques ordinateurs quantiques (en tout cas, c'est ce qu'on nous promet), nous ne pouvons pas résoudre ce type de problème avec nos petits PC de bureau d'aujourd'hui, du moins me semble-t-il.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
151
Réponses
6
Affichages
493
Réponses
9
Affichages
2 K
  • Question Question
Microsoft 365 Excel vba
Réponses
5
Affichages
493
Retour