Comparer des cellules de lignes de 2 feuilles différentes Excell
klissou69
Messages postés
60
Date d'inscription
Statut
Membre
Dernière intervention
-
klissou69 Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
klissou69 Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Le débutant en excell que je suis se lance !
J'aurais besoin d'un petit coup de main.
Je vais essayer d'exprimer mon problème clairement.
J'ai 2 feuilles excell.
J'aimerai comparer 5 cellules ( par exemple A5 à E5) de chaque ligne de la première feuille à 5 cellules ( B7 à F7) de la 2ème feuille.
Si et seulement si les valeurs des 5 cellules sont identiques, j'aimerai colorier la ligne de la feuille 1 de même couleur que la ligne de la feuille 2.
Je ne sais pas si c'est clair, je vous joins le début de mon code avec lequel j'ai tenté de comparer toute la ligne.
Mais je me suis rendu que cela ne marcherait pas car certaines cellules sont décalées ( il y a une colonne en plus dans la 2 ème feuille ).
Dans ces cellules il y aura des cellules avec des chiffres, et dans d'autres des lettres.
Merci d'avance pour votre aide !
Le débutant en excell que je suis se lance !
J'aurais besoin d'un petit coup de main.
Je vais essayer d'exprimer mon problème clairement.
J'ai 2 feuilles excell.
J'aimerai comparer 5 cellules ( par exemple A5 à E5) de chaque ligne de la première feuille à 5 cellules ( B7 à F7) de la 2ème feuille.
Si et seulement si les valeurs des 5 cellules sont identiques, j'aimerai colorier la ligne de la feuille 1 de même couleur que la ligne de la feuille 2.
Je ne sais pas si c'est clair, je vous joins le début de mon code avec lequel j'ai tenté de comparer toute la ligne.
Mais je me suis rendu que cela ne marcherait pas car certaines cellules sont décalées ( il y a une colonne en plus dans la 2 ème feuille ).
Dans ces cellules il y aura des cellules avec des chiffres, et dans d'autres des lettres.
Sub Test1coloricolonne() nbcolonne1 = Sheets("Feuil1").UsedRange.Columns.Count 'compte le nombre de colonnes non vides sur la feuille 1 nbligne1 = Sheets("Feuil1").UsedRange.Rows.Count 'compte le nombre de lignes non vides sur la feuille 1 nbcolonne2 = Sheets("Feuil2").UsedRange.Columns.Count 'compte le nombre de colonnes non vides sur la feuille 2 nbligne2 = Sheets("Feuil2").UsedRange.Rows.Count 'compte le nombre de lignes non vides sur la feuille 2 Cells(nbligne1 + 1, 1) = "Commentaires SCP" 'Ajout de la mention Com en prévision de l'ajout des com For i = 2 To nbligne1 For j = 2 To nbcolonne1 For k = 2 To nbligne2 For l = 3 To nbcolonne2 If i <> j Then 'On évite de comparer la même ligne If Sheets("Feuil1").Cells(i, 4) = Sheets("Feuil2").Cells(k, 5) & Sheets("Feuil1").Cells(i, 5) = Sheets("Feuil2").Cells(k, 6) & Sheets("Feuil1").Cells(i, 6) = Sheets("Feuil2").Cells(k, 7) & Sheets("Feuil1").Cells(i, 7) = Sheets("Feuil2").Cells(k, 8) & Then 'Si les 3 cellulles de la feuille 1 comparées 1 à 1 aux 3 autres cellules de la feuilles 2 sont égales alors : Sheets("Feuil1").rows(i).Interior.Color = Sheets("Feuil2").rows(k).Interior.Color End If End If Next Next Next Next End sub
Merci d'avance pour votre aide !
A voir également:
- Comparer des cellules de lignes de 2 feuilles différentes Excell
- Comment faire un livret avec des feuilles a4 - Guide
- Verrouiller des cellules excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Partage de photos en ligne - Guide
- Bruler des feuilles de laurier - Guide
2 réponses
Bonjour,
Essaies ce code :
Essaies ce code :
Option Explicit Sub ColorieLigne() Dim rng1 As Range Dim rng2 As Range Dim row1 As Range Dim row2 As Range Dim i As Integer Dim egal As Boolean Set rng1 = Intersect(Worksheets("Feuil1").Columns("A:E"), Worksheets("Feuil1").UsedRange) Set rng2 = Intersect(Worksheets("Feuil2").Columns("B:F"), Worksheets("Feuil2").UsedRange) Application.ScreenUpdating = False For Each row1 In rng1.Rows For Each row2 In rng2.Rows egal = True For i = 1 To row1.Cells.Count If row1.Cells(1, i).Value <> row2.Cells(1, i).Value Then egal = False Next i If egal Then row1.Interior.Color = row2.Interior.Color End If Next row2 Next row1 Application.ScreenUpdating = True End Sub
Bonjour Patrice,
Merci beaucoup, effectivement ton code marche et même très bien.
( je vais peut être exagérer mais j'aimerai colorier la ligne entière car la ça ne colore que les 4 colonnes sélectionnées, comment faire stp ? ).
J'avais réussi à faire fonctionner mon code mais je mettais 10 min à parcourir les nombreuses lignes ( 750 ) car je les comparais une à une.
J'ai maintenant besoin de faire quelque chose d'autre :
Je voudrais regrouper les lignes ayant la même couleur.
Pourrais-tu m'aider une nouvelle fois je te prie ?
Je te remercie.
Bon après-midi
Merci beaucoup, effectivement ton code marche et même très bien.
( je vais peut être exagérer mais j'aimerai colorier la ligne entière car la ça ne colore que les 4 colonnes sélectionnées, comment faire stp ? ).
J'avais réussi à faire fonctionner mon code mais je mettais 10 min à parcourir les nombreuses lignes ( 750 ) car je les comparais une à une.
J'ai maintenant besoin de faire quelque chose d'autre :
Je voudrais regrouper les lignes ayant la même couleur.
Pourrais-tu m'aider une nouvelle fois je te prie ?
Je te remercie.
Bon après-midi