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
MERCI francois ,Bonjour
Ci joint ma solution
A+ François
'la ligne ci dessous masque la ligne
[Tableau1].Item(i, 4).EntireRow.Hidden = True
'la ligne ci dessous efface la ligne
' If [Tableau1].Item(i, 1) <> "" Then [Tableau1].Rows(i).Delete
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
si tu veux les supprimer enléve les lignes ci dessus et le ' devant If [Tableau1].Item(i, 1)VB:'la ligne ci dessous masque la ligne [Tableau1].Item(i, 4).EntireRow.Hidden = True
Code:'la ligne ci dessous efface la ligne ' If [Tableau1].Item(i, 1) <> "" Then [Tableau1].Rows(i).Delete
A+ François