XL 2021 Doublons

JohnBill

XLDnaute Occasionnel
Bonjour à tout le forum et joyeux lundi de Pâques à tous.
J'ai un souci d'affichage que je n'arrive pas à comprendre.
J'ai créé un fichier pour exemple avec une macro trouvée sur Youtube qui fonctionne parfaitement dans la vidéo mais, dans mon fichier, chez moi, cela ne fonctionne pas
Cette macro est censée colorer les lignes en doublon mais elles restent de la même couleur et, lorsque je vais dans le menu format de cellule, elle est bien rouge.
Est ce que cela viendrai du fait que je suis en mode sombre d'excel ?
Ci-joint mon fichier et merci d'avance pour une solution.
 

Pièces jointes

  • Supprimer_doublons_vba.xlsm
    22.9 KB · Affichages: 15

fanch55

XLDnaute Barbatruc
  1. Vérifiez si des règles de mise en forme conditionnelle sont appliquées à la plage de cellules, car celles-ci peuvent remplacer les couleurs de fond manuellement définies.
Par exemple, au lieu d'utiliser une couleur rouge vif qui pourrait être difficile à distinguer sur un thème sombre, vous pourriez utiliser une couleur vive comme le jaune ou le vert vif, qui peut offrir un meilleur contraste avec l'arrière-plan sombre
Bonsoir @laurent950 ,
que ce soit en thème sombre ou clair de window, les couleurs sont affichées correctement.
Or @JohnBill semble utiliser le mode contrasté "aquatique" ( voir le document joint du post #20 )
En cela, excel ne semble pas pouvoir afficher une quelconque couleur dans les cellules. ..
 

laurent950

XLDnaute Accro
Bonjour @fanch55

Merci pour votre réponse, il y a aussi la possibilité de mettre les cellules des lignes en doublons, en augmentant la taille des caractères avec un paramètre gras et souligné, indépendamment de la couleur de font de cellule et de texte.


VB:
Sub IdentifierDoublonsSurFeuilleSource()
    Dim FeuilBase As Worksheet
    Dim TDon As Variant
    Dim TSpl As String
    Dim lignesEnDouble As Object
    Dim i As Long
    
    ' Référence à la feuille source
    Set FeuilBase = Worksheets("Feuil1") ' Remplacez "NomFeuilleSource" par le nom de votre feuille source
    
    ' Tableau pour stocker les données de la feuille source
    TDon = FeuilBase.Range("A1:E" & FeuilBase.Cells(FeuilBase.Rows.Count, "A").End(xlUp).Row).Value
    
    ' Font color clear
        With FeuilBase.Range(FeuilBase.Cells(1, 1), FeuilBase.Cells(FeuilBase.Cells(65536, 1).End(xlUp).Row, 5))
                .HorizontalAlignment = xlLeft
            With .Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            With .Font
                .Name = "Calibri"
                .FontStyle = "Normal"
                .Size = 11
                .Strikethrough = False
                .Superscript = False
                .Subscript = False
                .OutlineFont = False
                .Shadow = False
                .Underline = xlUnderlineStyleNone
                .ThemeColor = xlThemeColorLight1
                .TintAndShade = 0
                .ThemeFont = xlThemeFontMinor
            End With
        End With
    
    ' Dictionnaire pour stocker les lignes rencontrées
    Set lignesEnDouble = CreateObject("Scripting.Dictionary")
    
    ' Parcours des données et identification des doublons
    For i = LBound(TDon, 1) To UBound(TDon, 1)
        TSpl = TDon(i, 1) & "|" & TDon(i, 2) & "|" & TDon(i, 3) & "|" & TDon(i, 4) & "|" & TDon(i, 5)
        
        ' Vérifie si la ligne est déjà rencontrée
        If lignesEnDouble.Exists(TSpl) Then
            ' Marquer la ligne comme un doublon sur la feuille source
            FeuilBase.Range("A" & i & ":E" & i).Interior.Color = RGB(255, 255, 0) ' Jaune vif pour marquer le doublon
            ' Mettre en gras toutes les cellules
            FeuilBase.Range("A" & i & ":E" & i).Font.Bold = True
            FeuilBase.Range("A" & i & ":E" & i).Font.Italic = True
            FeuilBase.Range("A" & i & ":E" & i).Font.Name = "Comic Sans MS"
            FeuilBase.Range("A" & i & ":E" & i).HorizontalAlignment = xlRight
            
        Else
            ' Ajouter la ligne au dictionnaire
            lignesEnDouble(TSpl) = True
        End If
    Next i
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 242
Messages
2 086 532
Membres
103 243
dernier inscrit
SAH