Formule pour trouver les montants soldés dans Débit crédit

moonandlove

XLDnaute Nouveau
Bonjour à tous
J’ai un fichier a 2 colonne des montants au débit et autres au crédits et j’aimerai utiliser une formule pour trouver les montants qui se solde.
Ci-joint le fichier.
Je vous remercie d’avance pour votre aide

Cdt
Love
 

Pièces jointes

  • excel exemple.xlsx
    11.1 KB · Affichages: 123
  • excel exemple.xlsx
    11.1 KB · Affichages: 124
  • excel exemple.xlsx
    11.1 KB · Affichages: 128

JCGL

XLDnaute Barbatruc
Re : Formule pour trouver les montants soldés dans Débit crédit

Bonjour à tous,

Par VBA avec un code de Maître Ti (RIP). Choisir la valeur à rapprocher en D1.

VB:
Option Explicit

Sub ChercheSomme()    ' Ti sur VeriTi
    Dim Tableau() As Currency, Plage As Range, Cel As Range
    Dim Boucle As Integer, NbSol As Long, K As Integer
    Dim TabCombin, Boucle2 As Integer, Montant As Currency
    Dim Mini As Integer, Maxi As Integer

    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False

        With Feuil1
            Set Plage = .Range("BaseDep", .Range("BaseDep").End(xlDown))
            Set Cel = .Range("DebSol")
            Range(Cel, Cel.End(xlDown)).Resize(, 200).ClearContents
            Montant = .Range("Montant") * 1
            DetermineMinMax .Range("NbValeurs"), Mini, Maxi, Plage.Rows.Count
        End With

        ReDim Tableau(1 To Plage.Rows.Count)
        For Boucle = 1 To Plage.Rows.Count
            Tableau(Boucle) = Plage.Cells(Boucle, 1)
        Next Boucle

        For K = Mini To Maxi
            DoEvents
            TabCombin = SommeKSurN(Tableau, K, Montant)
            If IsArray(TabCombin) Then
                For Boucle = LBound(TabCombin, 2) To UBound(TabCombin, 2)
                    NbSol = NbSol + 1
                    Cel = NbSol
                    For Boucle2 = 1 To K
                        Cel.Offset(0, Boucle2) = TabCombin(Boucle2, Boucle)
                    Next Boucle2
                    Set Cel = Cel.Offset(1, 0)
                Next Boucle
            End If
        Next K

        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
    Cells.Columns.AutoFit
    Cells(1, 4).Select
End Sub

Function SommeKSurN(Montant() As Currency, K As Integer, ATrouver As Currency)
    Dim Somme As Currency, Resultats() As Currency, N As Integer
    Dim Boucle As Integer, NbSol As Long
    Dim TabIndex() As Integer
    Dim Index As Integer

    If Not IsArray(Montant) Then Exit Function
    N = UBound(Montant) - LBound(Montant) + 1
    If K > N Or ATrouver = 0 Then Exit Function

    ReDim TabIndex(1 To K)

    For Boucle = 1 To K
        TabIndex(Boucle) = Boucle
    Next Boucle

    Index = K

    Do While (Index >= 1) And (TabIndex(K) <= N)
        Do While TabIndex(K) <= N
            Somme = 0
            For Boucle = 1 To K
                Somme = Somme + Montant(TabIndex(Boucle))
                If Somme > ATrouver Then Exit For
            Next Boucle

            If Somme = ATrouver Then
                NbSol = NbSol + 1
                ReDim Preserve Resultats(1 To K, 1 To NbSol)
                For Boucle = 1 To K
                    Resultats(Boucle, NbSol) = Montant(TabIndex(Boucle))
                Next Boucle
            End If

            TabIndex(K) = TabIndex(K) + 1
        Loop

        Index = K
        Do While (Index > 1) And (TabIndex(Index) >= N - K + Index)
            Index = Index - 1
        Loop

        TabIndex(Index) = TabIndex(Index) + 1
        For Boucle = Index + 1 To K
            TabIndex(Boucle) = TabIndex(Boucle - 1) + 1
        Next Boucle
    Loop

    If NbSol > 0 Then SommeKSurN = Resultats
End Function

Private Sub DetermineMinMax(Valeur As String, Mini As Integer, Maxi As Integer, NbItem As Integer)
    Dim Signe As String * 1, Nombre, Boucle As Integer

    If Valeur = "" Then
        Mini = 1
        Maxi = NbItem
    Else
        Signe = Left(Valeur, 1)
        For Boucle = 1 To Len(Valeur)
            If IsNumeric(Mid(Valeur, Boucle, 1)) Then _
               Nombre = Nombre & Mid(Valeur, Boucle, 1)
        Next Boucle
        Nombre = Val(Nombre)
        Select Case Signe
        Case "="
            Mini = Nombre
            Maxi = Nombre
        Case ">"
            Mini = Nombre + 1
            Maxi = NbItem
        Case "<"
            Mini = 1
            Maxi = Nombre - 1
        Case Else
            Mini = Nombre
            Maxi = Nombre
        End Select
    End If
End Sub
A+ à tous
 

Pièces jointes

  • Rapprochement Exemple.xlsm
    37.7 KB · Affichages: 127
Dernière édition:

moonandlove

XLDnaute Nouveau
Re : Formule pour trouver les montants soldés dans Débit crédit

Je vous remercie pour votre réponse.
Comme j’ai plusieurs tableaux et que je ne maîtrise pas VBA, j’aimerai utiliser une formule à la palce de VBA.

Existe –il une formule pour trouver le rapprochement entre les sommes du même montant dans colonne de crédit et la colonne du débit.

Merci pour votre aide .

Cdt
 

Regueiro

XLDnaute Impliqué
Re : Formule pour trouver les montants soldés dans Débit crédit

Bonsoir
Si j'ai bien compris avec des formules et 2 colonnes cachées
Et des MFC ( Mise en Forme conditionnelle )
A défaut de VBA
A+
 

Pièces jointes

  • XLD trouver-les-montants-soldes.xlsx
    16.2 KB · Affichages: 119

R@chid

XLDnaute Barbatruc
Re : Formule pour trouver les montants soldés dans Débit crédit

Bonjour moonandlove et Bienvenue sur XLD,
Salut JCGL, Salut Regueiro,
Une formule matricielle en C2,
Code:
=SI(ET(B2<>"";ESTNUM(EQUIV(B2;SOUS.TOTAL(9;DECALER(A$1;ENT((LIGNE(INDIRECT("1:"&LIGNES(Col_Dbt)^2))-1)/LIGNES(Col_Dbt))+1;;MOD(LIGNE(INDIRECT("1:"&LIGNES(Col_Dbt)^2))-1;LIGNES(Col_Dbt))+1));0)));"Soldé";"")
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas

Voir PJ..

La formule va surement poser un problème en cas de crédit doublon

@ + +
 

Pièces jointes

  • MoonAndLove.xlsx
    12.8 KB · Affichages: 108

R@chid

XLDnaute Barbatruc
Re : Formule pour trouver les montants soldés dans Débit crédit

Re,
Il y a quelques cas particuliers où la formule ne fonctionne pas, voir image..
MoonAndLove.png

Donc oublier ma formule, et je garde l'honneur d'avoir essayé..

@ + +
 

Discussions similaires

Réponses
2
Affichages
160

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP