Comparaison d'éléments de deux colonnes dans deux feuilles différentes

Bonjour,

J'ai une macro qui me permet de mettre en vert les cases de la colonne A (correspondant à un identifiant) si la date dans la case de la colonne C de la 1ere feuille est identique à celle de la 2eme feuille et en rouge dans le cas contraire.

Voici ma macro actuelle

Sub Compare()

Dim Lig1 As Long, Derlig1 As Long, Derlig2 As Long, Cp As Variant

Dim Lig2 As Long

Derlig1 = Sheets("1").Range("C65535").End(xlUp).Row

Derlig2 = Sheets("2").Range("C65535").End(xlUp).Row

With Sheets("2")

For Lig1 = 2 To Derlig1

Cp = Sheets("1").Cells(Lig1, "C")

For Lig2 = 2 To Derlig2

If Cp = .Cells(Lig2, "C") Then

.Cells(Lig2, "A").Interior.ColorIndex = 4

Else: .Cells(Lig2, "A").Interior.ColorIndex = 3

End If

Next Lig2

Next Lig1

End With

End Sub

Les identifiants sont classés dans le meme ordre dans les 2 feuilles du coup chaque date correspond bien à chaque identifiant car ils sont sur la meme ligne dans les 2 feuilles mais :

Comment faire pour comparer dans le cas où les identifiants sur la 2eme feuille ne seraient pas dans le meme ordre (donc pas sur la meme ligne) que dans la 1ere ?

Merci d'avance pour vos réponses.

Bonne soirée à vous.

Hello,

Tout simplement fait ton filtre en début de macro

Voici ce que donne un filtre sur 2 colonnes la C puis la B (Fait via l'enregistreur de macro)

    ActiveWorkbook.Worksheets("source").Sort.SortFields.Add2 Key:=Range("C3:C85") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("source").Sort.SortFields.Add2 Key:=Range("B3:B85") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Salut, Merci j'ai essayé mais j'ai eu un message d'erreur :( .

Ps: je suis débutant sur les macros je ne sais pas trop comment analiser.

capture

Hello,

Non tu ne peux pas copier coller tel quel le code

Il faut que fasses quelques adaptations.

.Worksheets("source")

le "source"doit etre adapter au nom de ta feuille de ton fichier

Key:=Range("C3:C85")

"C3:C85" doit être adapter à la plage de cellule à trier dans ton fichier. idem pour

même chose pour ce code, il faut l'adapter

ActiveWorkbook.Worksheets("source").Sort.SortFields.Add2 Key:=Range("B3:B85") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Merci à toi d'avoir pris le temps de me répondre , j'ai essayé de nouveau et ça fonctionne ;)

Passe une bonne journée.

Bonjour,

Je t'embete une derniere fois, que dois je ajouter dans la macro pour que le nombre de cellules de couleur verte sois indiqué dans la case I2 et le nombre de cellules de couleur rouge sois indiqué dans la case J2 s'il te plait. Là j'ai dû taper manuellement une formule dans la cellule .

capture

Hello,

Pourquoi ne pas mettre ta formule dans ton code ?

C'est quoi ta formule ?

Rechercher des sujets similaires à "comparaison elements deux colonnes feuilles differentes"