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
452
Réponses
9
Affichages
514
Réponses
4
Affichages
549
Réponses
5
Affichages
301
Réponses
5
Affichages
175
Retour