XL 2010 les montants positifs et leurs équivalents négatifs

Ultravga

XLDnaute Nouveau
bonjour ,

je cherche un formule ou VBA pour détecter les montants positifs et leurs équivalents négatifs dans Excel pour le méme client
de préfèrence en VBA identifiant les équivalents par couleur sinon formule
merci
 

Pièces jointes

  • test.xlsx
    9.1 KB · Affichages: 11

ThierryP

XLDnaute Occasionnel
Bonjour Ultravga, fanfan38, le forum,

@fanfan38 : je me suis permis de modifier légèrement ton code comme suit pour éviter de colorer une cellule en triplon (client : V675543 BBBB, montant 415.55) :
VB:
Sub traitement()
Dim i As Long, pos As Variant, coul As Byte
coul = 1
Columns(3).Interior.Pattern = xlNone
For i = 1 To [tableau1].Rows.Count
    If [tableau1].Item(i, 3).Interior.Pattern = xlNone Then
        pos = Application.Match(([tableau1].Item(i, 3) * -1), [tableau1[MONTANT]], False)
        If Not IsError(pos) Then
        If [tableau1].Item(pos, 3).Interior.Pattern <> xlNone Then GoTo suite 'Ne colore pas la cellule si la cellule correspondante est déjà colorée
            If [tableau1].Item(i, 1) = [tableau1].Item(pos, 1) Then 'même client
                [tableau1].Item(i, 3).Interior.Color = Range("O" & coul).Interior.Color 'Remplacé le 1 par 3'
                [tableau1].Item(pos, 3).Interior.Color = Range("O" & coul).Interior.Color
                coul = coul + 1
                If coul > 32 Then coul = 1
            End If
        End If
    End If
suite:
Next
End Sub
 

fanfan38

XLDnaute Barbatruc
Bonjour
J'ai ajouté une colonne (masquée) pour le tri
dans la macro tri tu as le choix
Actuellement les lignes sont masquées
VB:
       'la ligne ci dessous masque la ligne
        [Tableau1].Item(i, 4).EntireRow.Hidden = True
si tu veux les supprimer enléve les lignes ci dessus et le ' devant If [Tableau1].Item(i, 1)
Code:
       'la ligne ci dessous efface la ligne
       ' If [Tableau1].Item(i, 1) <> "" Then [Tableau1].Rows(i).Delete


A+ François
 

Pièces jointes

  • ultra.xlsm
    22 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Ultravga :), @fanfan38 ;), @ThierryP ;),

Une autre procédure VBA (qui détecte aussi les paires de doublons identiques ;)).

La procédure est assez rapide. Le classeur joint comporte 10 000 lignes de données. Pour 10 000 lignes de données sources (dont 180 doublons +/-), la durée d’exécution est inférieure à 0,2 s sur ma bécane. Il reste sans doute des vérifications à faire.

Pas de coloriage (ce n'est pas un sapin de noël 😜). Une MFC sur le résultat alterne les couleurs (rose et gris) des doublons dans le tableau.

Le résultat n’écrase pas les données sources (je suis prudent, c'est mon choix). Le tableau résultat est positionné en E2.

Le code est dans module1.
 

Pièces jointes

  • Ultravga-doublons-v1.xlsm
    314.5 KB · Affichages: 4
Dernière édition:

fanfan38

XLDnaute Barbatruc
Bonjour
J'ai ajouté une colonne (masquée) pour le tri
dans la macro tri tu as le choix
Actuellement les lignes sont masquées
VB:
       'la ligne ci dessous masque la ligne
        [Tableau1].Item(i, 4).EntireRow.Hidden = True
si tu veux les supprimer enléve les lignes ci dessus et le ' devant If [Tableau1].Item(i, 1)
Code:
       'la ligne ci dessous efface la ligne
       ' If [Tableau1].Item(i, 1) <> "" Then [Tableau1].Rows(i).Delete


A+ François
 

Pièces jointes

  • ultra.xlsm
    22 KB · Affichages: 1

Statistiques des forums

Discussions
312 896
Messages
2 093 387
Membres
105 716
dernier inscrit
jrmdprt