Comparer des cellules de lignes de 2 feuilles différentes Excell
klissou69
Messages postés
61
Statut
Membre
-
klissou69 Messages postés 61 Statut Membre -
klissou69 Messages postés 61 Statut Membre -
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
- Supercopier 2 - Télécharger - Gestion de fichiers
- Verrouiller des cellules excel - Guide
- Somme de plusieurs cellules excel - Guide
- Partage de photos en ligne - 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