Formule faisant apparaître les montants qui s'annulent Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
AntoineBo
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par AntoineBo » 7 mai 2019, 10:30

Bonjour Mesdames, Messieurs,

Je dois nettoyer des comptes et pour se faire je dois faire apparaître les montant qui s'annulent et je souhaiterai gagner du temps lorsqu'il y a des centaines voire des milliers de montants.

Dans le fichier suivant:
Classeur demande.xlsx
(9.61 Kio) Téléchargé 5 fois
Vous trouverez donc des montants exemples en vert et en jaune qui doivent apparaître grâce à la formule ou à la VBA.
52 930 et -52 930 par exemple.

Là ou cela se corse c'est être en mesure de faire apparaître plusieurs montants qui en annulent un seul ou plusieurs.
Exemple 50 000 serait annulé par -20 000 -5 000 -12 000 et -13 000 ou encore 23 000 et 1 550 seraient annulé par -20 000 -1 300 -2 250.

Si ce dernier point être trop compliqué ou trop chronophage à élaborer simplement être en mesure de repérer les montants équivalents mais inverses m'aiderait déjà beaucoup.

Merci pour votre temps.

Bien cordialement,
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'151
Appréciations reçues : 376
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 7 mai 2019, 11:04

Bonjour,

une solution via macro pour la recherche du montant de signe contraire. pour l'autre demande, faire correspondre n'importe quelle somme avec n'importe quelle autre somme nous emmène, je crois, dans une exploration combinatoire qu'il faudra des siècles à examiner dès qu'il y a plus de 30 valeurs
Option Explicit
Sub aargh()
    Dim dl&, i&, v, fa$, re As Range
    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To dl - 1
            If .Cells(i, 2) = "" Then
                v = -.Cells(i, 1)
                Set re = .Cells(i + 1, 1).Resize(dl - i).Find(v, lookat:=xlWhole)
                If Not re Is Nothing Then
                    fa = re.Address
                    Do
                        If re.Offset(, 1) = "" Then
                            re.Offset(, 1) = i
                            Cells(i, 2) = re.Row
                            Exit Do
                        Else
                            Set re = .Cells(i + 1, 1).Resize(dl - i).FindNext(re)
                        End If
                    Loop Until re.Address = fa
                End If
            End If
        Next i
    End With
End Sub
lancer la macro ave alt-f8, les montants qui s'annulent, ont en colonne 2, le n° de ligne du montant qui forme la paire.
A
AntoineBo
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 6 mars 2019
Version d'Excel : 2016 FR

Message par AntoineBo » 7 mai 2019, 11:43

h2so4 a écrit :
7 mai 2019, 11:04
Bonjour,

une solution via macro pour la recherche du montant de signe contraire. pour l'autre demande, faire correspondre n'importe quelle somme avec n'importe quelle autre somme nous emmène, je crois, dans une exploration combinatoire qu'il faudra des siècles à examiner dès qu'il y a plus de 30 valeurs
Option Explicit
Sub aargh()
    Dim dl&, i&, v, fa$, re As Range
    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To dl - 1
            If .Cells(i, 2) = "" Then
                v = -.Cells(i, 1)
                Set re = .Cells(i + 1, 1).Resize(dl - i).Find(v, lookat:=xlWhole)
                If Not re Is Nothing Then
                    fa = re.Address
                    Do
                        If re.Offset(, 1) = "" Then
                            re.Offset(, 1) = i
                            Cells(i, 2) = re.Row
                            Exit Do
                        Else
                            Set re = .Cells(i + 1, 1).Resize(dl - i).FindNext(re)
                        End If
                    Loop Until re.Address = fa
                End If
            End If
        Next i
    End With
End Sub
lancer la macro ave alt-f8, les montants qui s'annulent, ont en colonne 2, le n° de ligne du montant qui forme la paire.
Je me doutais de l'ampleur de la tâche ...

Merci pour cette macro ça devrait déjà aider beaucoup.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message