XL 2010 Comparaison de lignes entre colonnes

Stephane.dantigny

XLDnaute Nouveau
Bonsoir,

J'aimerais comparer des lignes entre les colonnes A, B, M et X,Y, Z. Pour exemple je n'ai mis que 2 lignes.
Les références sont les colonnes A et X et vous pourrez constater que l'ordre croissant _QX des lignes entre A, B, M et X,Y,Z ne sont pas les mêmes.
A B M X Y Z
A35_Q1 Eclairage Poste 2 A35_Q3 PC Local 1
A35_Q3 PC Local 1 A35_Q1 Eclairage Poste 2


Comme résultat il faudrait juste que les cellules dans les colonnes Y, Z soient remplie en Rose si toutefois la comparaison n'est pas identique suivant les références en A et X.

Exemple pour A35Q1, il faudrait qu'en B et Y on ait le même texte, idem en M et Z.
A B M X Y Z
A35_Q1 Eclairage Poste 2 A35_Q3 PC Local 1
A35_Q3 PC Local 1 A35_Q1 PC Poste 1

A B M X Y Z
A35_Q1 Eclairage Poste 2 A35_Q3 PC Local 1
A35_Q3 PC Local 1 A35_Q1 PC Poste 2

Exemple pour A35Q3
A B M X Y Z
A35_Q1 Eclairage Poste 2 A35_Q3 PC Local 2
A35_Q3 PC Local 1 A35_Q1 Eclairage Poste 2



A B M X Y Z
A35_Q1 Eclairage Poste 2 A35_Q3 CVC Local 1
A35_Q3 PC Local 1 A35_Q1 Eclairage Poste 2


Merci d'avance pour vos réponses.
 

Staple1600

XLDnaute Barbatruc
Re

Tu aurais du mettre un copie de ton onglet (appelé par exemple RésultatVoulu) qui montre ce que souhaites obtenir
Parce que là, à part de proposer cette formule (en M10)
=RECHERCHEV(A10;$X$5:$Z$25;3;0)
je ne vois pas trop pour le moment ce qu'il faut faire. ;)
 

Stephane.dantigny

XLDnaute Nouveau
Re

Tu aurais du mettre un copie de ton onglet (appelé par exemple RésultatVoulu) qui montre ce que souhaites obtenir
Parce que là, à part de proposer cette formule (en M10)
=RECHERCHEV(A10;$X$5:$Z$25;3;0)
je ne vois pas trop pour le moment ce qu'il faut faire. ;)

Re, j'ai donc créée un onglet avant macro et un onglet après macro.
 

Pièces jointes

  • Test macro.xlsx
    21.2 KB · Affichages: 27

Staple1600

XLDnaute Barbatruc
Re,

Merci pour ce nouveau fichier.
Mais tu comprendras que vu l'heure tardive, je cède ma place aux autres membres du forum (notamment les insomniaques) pour te filer un coup de main ;)

Pour ma part, je vais enfiler ma brosse à dent et sortir mon pyjama en pilou ;)
(à moins que ce ne soit le contraire)

Bonne nuit.
 

Stephane.dantigny

XLDnaute Nouveau
Re,

Merci pour ce nouveau fichier.
Mais tu comprendras que vu l'heure tardive, je cède ma place aux autres membres du forum (notamment les insomniaques) pour te filer un coup de main ;)

Pour ma part, je vais enfiler ma brosse à dent et sortir mon pyjama en pilou ;)
(à moins que ce ne soit le contraire)

Bonne nuit.
Oui oui moi aussi au dodo..merci..Bonne nuit... et peut être à demain si pas d'insomniaque..
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Voilà, là je comprends mieux avec ce second onglet
VB:
Sub BarbabulleAimeSeCompliquerLaLifeDansSonVBE()
Dim l&
Application.ScreenUpdating = False
l = Cells(Rows.Count, 1).End(3).Row
For i = 10 To l
If Not Cells(i, 2) = Application.VLookup(Cells(i, 1), Range("$X$5:$Y$25"), 2, 0) Then
Cells(Application.Match(Cells(i, 1), Range("$X$5:$X$25"), 0) + 4, "Y").Interior.Color = 16751103
End If
If Not Cells(i, "M") = Application.VLookup(Cells(i, 1), Range("$X$5:$Z$25"), 3, 0) Then
Cells(Application.Match(Cells(i, 1), Range("$X$5:$X$25"), 0) + 4, "Z").Interior.Color = 16751103
End If
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Pourriez-vous SVP comment prendre en compte dans la macro la ligne 14 depuis la colonne A?
Drôle de phrase que ta phrase, non ? ;)
Ci-dessous macro qui fonctionne si tu as fait le ménage sur la feuille Avant macro avant de lancer la macro ;)
(cf ligne 105...)
VB:
Sub Macro2()
Dim l&, i&
Application.ScreenUpdating = False
l = Cells(Rows.Count, 2).End(3).Row
On Error Resume Next
For i = 10 To l
If Not Cells(i, 2) = Application.VLookup(Cells(i, 1), Range("$X$5:$Y$25"), 2, 0) Then
Cells(Application.Match(Cells(i, 1), Range("$X$5:$X$25"), 0) + 4, "Y").Interior.Color = 16751103
End If
If Not Cells(i, "M") = Application.VLookup(Cells(i, 1), Range("$X$5:$Z$25"), 3, 0) Then
Cells(Application.Match(Cells(i, 1), Range("$X$5:$X$25"), 0) + 4, "Z").Interior.Color = 16751103
End If
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@Stephane.dantigny
Poser une question c'est bien ;)
Fiévreusement chercher à comprendre le code VBA proposé c'est mieux ;)
Donc sois audacieux, que diantre!
Va chercher au dedans de toi l'enfant curieux qui cherchait à comprendre comment fièrement construire ses Lego© Star War sans l'aide de son grand-frère. ;)

Examine mon code et cherche quelle ligne de la macro parcours les lignes

Indice: Traduis de l'anglais vers le français ce mot de trois lettres: row
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T