Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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 !

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

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

Dernière édition:
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
 
Re : Formule pour trouver les montants soldés dans Débit crédit

Bonjour à tous,

Je ne connais de formules qui seraient susceptibles de faire l'affaire mais d'autres membres vont surement intervenir.

A+ à tous
 
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

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..


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

@ + +
 
- 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

  • Question Question
Réponses
7
Affichages
256
Réponses
25
Affichages
775
Réponses
10
Affichages
511
Réponses
12
Affichages
628
  • Question Question
Microsoft 365 Solde Cumulé
Réponses
2
Affichages
413
Réponses
17
Affichages
512
Réponses
40
Affichages
582
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…