Boucle For Each pour doublons

Bonjour à toutes et tous,

Je viens vers vous car j'ai un problème dans le traitement de données avec la boucle For Each.

Je vous explique mon problème, je souhaite que la macro trouve les doublons en colonne B (ça j'ai réussi) mais ne fasse un traitement que lorsque la donnée de la colonne A soit égal à "OK Montant".

Une fois c'est deux conditions remplies, alors la donnée de la colonne A passe en "KO virmt" et le fond en rose.

Voici les codes que j'ai fait actuellement:

- Pour trouver les doublons:

Sub Trouver_Doublon()

Dim Plage As Range
Dim Cel As Range

Set Plage = ThisWorkbook.Sheets("Banque").Range(Cells(2, 2), Cells(Rows.Count, 2).End(xlUp))   
For Each Cel In Plage
    If Application.CountIf(Plage, Cel.Value) > 1 Then
        Cel.Interior.Color = RGB(255, 199, 206)
    End If   
Next Cel

End Sub

- Ma condition de la colonne A:

Sub OK_Montant()

Dim x As Long

x = 2
For x = 2 To ThisWorkbook.Sheets("Banque").Cells(Rows.Count, 1).End(xlUp)
    If ThisWorkbook.Sheets("Banque").Cells(x, 1).Value = "OK Montant" Then
        ThisWorkbook.Sheets("Banque").Cells(x, 1).Interior.Color = RGB(255, 199, 206)
        ThisWorkbook.Sheets("Banque").Cells(x, 1).Value = "KO virmt"
    End If
Next x

End Sub

Pour faire plus clair, je vous joins des images. Ci-dessous des doublons en colonne B mais seulement la première image m'intéresse car la colonne A contient le "OK Montant", après retraitement je voudrais que les données de la colonne A soient modifiées comme sur la 3ème image.

image image image

Je vous joins également le fichier source. En espérant avoir été assez clair dans mes explications. Je vous remercie par avance de l'aide que vous pourrez m'apporter.

7classeur1.xlsm (27.21 Ko)

Bonne journée

Bonjour,

Il faut donc modifier cette macro:

Sub OK_Montant()

Dim x As Long

With ThisWorkbook.Sheets("Banque")
    For x = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(x, 2).Interior.Color = RGB(255, 199, 206) Then
            If .Cells(x, 1).Value = "OK Montant" Then
                .Cells(x, 1).Interior.Color = RGB(255, 199, 206)
                .Cells(x, 1).Value = "KO virmt"
            End If
        End If
    Next x
End With

End Sub

Je commence par checker si la couleur de la cellule colonne B est rose, si c'est le cas je checke si la cellule colonne A est égale à "OK Montant", et si c'est le cas je change sa couleur de fond, et la valeur à l'intérieur.

Aussi pour la boucle j'ai rajouté .Row à la fin de

Cells(Rows.Count, 1).End(xlUp)

Afin que ça utilise le numéro de la dernière ligne remplie colonne A.

J'ai aussi utiliseé With pour éviter de duppliquer le nom de la feuille utilisée.

Bonjour Ausecour,

Tout d'abord merci de t'être penché sur mon sujet et des explications que tu m'apportes sur les modifs apportées sur la macro.

Malheureusement je voudrais que les deux macro que j'ai faite ci-dessous, combinent pour n'en former qu'une seule (si possible) et de ce fait éviter de changer la couleur de toutes les cellules en doublon de la colonne B mais seulement celles en doublon dont le contenu de la colonne A est égal à "OK Montant".

Ainsi le fond bleu ne bougerai pas sur la première image mais il y aurait la modification que sur la seconde image

image image

En espérant que cela soit possible. Et merci encore pour ton aide

Oh d'accord,

je n'avais pas tout à fait compris ce qui était souhaité, oui c'est possible de combiner les deux, voici ce que ça donne:

Sub macroForumExcel()
Dim ligFin As Long, rose As Long, i As Long

With Sheets("Banque")
    'initialisations
    rose = RGB(255, 199, 206)
    ligFin = .Range("A" & Rows.Count).End(xlUp).Row

    For i = 2 To ligFin
        If .Range("A" & i) = "OK Montant" Then
            If Application.CountIf(.Range("B2:B" & ligFin), .Range("B" & i)) > 1 Then
                .Range("A" & i, "B" & i).Interior.Color = rose
                .Range("A" & i) = "KO virmt"
            End If
        End If
    Next i
End With
End Sub

Ausecour,

Je te remercie énormément pour la macro c'est exactement ce que je voulais.

En effet je n'avais pas été assez clair au début de mes explications mais encore une fois merci beaucoup pour ton aide.

Bonne fin de journée.

Rechercher des sujets similaires à "boucle each doublons"