Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Colorée une cellule identique dans une autre feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Solution
Bonjour robertduval, le forum,

Voyez ce fichier (2) et la macro complétée :
VB:
Set r = [D:D,J:J,P:P,V:V,AB:AB]
r.Interior.ColorIndex = xlNone 'RAZ
For Each r In Intersect(r, UsedRange.EntireRow)
    x = CStr(r)
    If d.exists(x) Then r.Interior.Color = d(x)
Next
A+
Bonjour RobertDuval,
Avec cette petite macro, cela devrait correspondre à tes attentes
VB:
Sub TEST()
    Application.ScreenUpdating = False
    With Sheets("Feuil2")
        .Range("D2:D30").Interior.Color = RGB(255, 255, 255)
    End With
    For Each xCell In Range("C2:C30")
        xEquiv = Application.Match(xCell.Value, Sheets("Feuil2").Range("D2:D30"), 0)
        If IsError(xEquiv) = False Then
            If xCell.Interior.Color = RGB(0, 176, 80) Then
                With Sheets("Feuil2")
                    .Range("D" & xEquiv + 1).Interior.Color = RGB(0, 176, 80)
                End With
            End If
        End If
    Next xCell
    Application.ScreenUpdating = True
    MsgBox "Mise à jour terminée", vbInformation, "MAJ"
End Sub
@+ Lolote83
 
Bonjour à tous,

Voyez cette macro évènementielle dans le code de Feuil2 :
VB:
Private Sub Worksheet_Activate()
Dim d As Object, c As Range, x$
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
With Feuil1 'CodeName de la feuille
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    For Each c In .Range("C1", .Range("C" & .Rows.Count).End(xlUp))
        x = CStr(c)
        If x <> "" Then d(x) = c.Interior.Color 'mémorise la couleur
    Next
End With
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
[D:D].Interior.ColorIndex = xlNone 'RAZ
For Each c In Range("D1", Range("D" & Rows.Count).End(xlUp))
    x = CStr(c)
    If d.exists(x) Then c.Interior.Color = d(x)
Next
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

Bonjour robertduval, le forum,

Voyez ce fichier (2) et la macro complétée :
VB:
Set r = [D:D,J:J,P:P,V:V,AB:AB]
r.Interior.ColorIndex = xlNone 'RAZ
For Each r In Intersect(r, UsedRange.EntireRow)
    x = CStr(r)
    If d.exists(x) Then r.Interior.Color = d(x)
Next
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
453
Réponses
9
Affichages
514
Réponses
4
Affichages
550
Réponses
5
Affichages
301
Réponses
5
Affichages
176
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…