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

  • Initiateur de la discussion Initiateur de la discussion Ultravga
  • Date de début Date de début

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 !

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

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

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

Dernière édition:
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

- 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
11
Affichages
248
Réponses
3
Affichages
487
Réponses
5
Affichages
131
Retour