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

JohnBill

XLDnaute Occasionnel
Rebonjour à tous.
Tout d'abord à fanch55, ce code fonctionne très bien mais comme je suis en mode sombre, les colorations n'apparaissent. Si je désactive ce mode, c'est nickel mais le mode clair me perturbe la vue (Je n'ai plus 20 ans), malheureusement.
Pour CousinHub, je m'excuse mais je ne sais pas utiliser Power Query, donc cette solution ne me convient pas.
Pour Laurent950, je joins un exemple de fichier avec le type de doublons que je peux rencontrer comme vous me le demandez.
Merci à tous pour vos réponses.
 

Pièces jointes

  • TestPourLaurent950.xlsm
    12.3 KB · Affichages: 3

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Au vu de ta réponse :
Pour CousinHub, je m'excuse mais je ne sais pas utiliser Power Query, donc cette solution ne me convient pas.
Si je ne me trompe, il y a quelques* années encore, tu ne savais pas non plus utiliser "Excel". (donc, encore moins VBA)
Et pourtant, tu t'y es lancé...
Et à priori, ton utilisation de VBA semble également "hésitante", non?
Même si cela ne te "convient" pas, peux-tu au moins donner un avis sur les résultats retournés? (un clic sur un bouton d'un ruban, c'est pas trop demandé?)
Bon courage pour la suite

* calcul aléatoire, et à effectuer selon plusieurs données (âge, utilisation, études, travail...)
 

JohnBill

XLDnaute Occasionnel
Comme déjà exprimé dans mes précédents posts, je remercie tous les membres qui ont travaillé sur ma question et tentés de m'apporter une solution. Toutes les propositions faites fonctionnent mais c'est le problème du mode sombre de windows qui ne permet pas l'affichage des couleurs dans Excel sinon tout serait terminé depuis longtemps. Merci encore.
 

fanch55

XLDnaute Barbatruc
Qu'appelez-vous le mode sombre de Window ?
1712154984477.png

Quand j'exécute le classeur en mode "sombre", je vois bien les couleurs :
jbill.gif
 

laurent950

XLDnaute Barbatruc
Bonsoir @JohnBill

Suite au poste #16 et votre fichier avec l'explication :
  • Chaque ligne doit être unique.
  • Donc, pour les doublons, la sélection doit se faire sur les 5 colonnes, si j'ai bien compris ?
Le code que vous avez récupéré avec sa correction n'est pas adapté à votre demande.


Pour Laurent950, je joins un exemple de fichier avec le type de doublons que je peux rencontrer comme vous me le demandez.
Merci à tous pour vos réponses.
 

JohnBill

XLDnaute Occasionnel
Bonjour à tous et à laurent950.
Effectivement, chaque ligne doit être unique.
Mais je pense que personne ne comprend mon unique problème qui est le fait que toutes vos solutions fonctionnent mais uniquement si je désactive le mode contrasté de Windows.
J'aimerais que cela marche sans désactiver ce mode car le noir est très reposant pour mes yeux et rester de longs moments sur des feuilles blanches les fatiguent énormément.
Merci de trouver une solution à ce problème si cela est possible ou si c'est ma machine qui a un problème.
 

fanch55

XLDnaute Barbatruc
C'est la colorisation qui ne fonctionne pas mais pas seulement sur les doublons. Si je fais : format de cellule/couleur/jaune par exemple, la cellule reste noire.
J'ai testé avec le thème sombre de Windows et /ou le thème "noir" d'Office,
je n'ai pas de disparition de couleurs 🤔

J'ai ensuite activé le thème contrasté "Aquatique" ( comme vous ) et là, effectivement j'ai perdu toutes les couleurs des cellules . Nota: tous les thèmes contrastés ont le même comportement .😵‍💫

Perso, pas de solution à apporter à cela .... :(
 

laurent950

XLDnaute Barbatruc
Bonsoir @JohnBill

  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.

Voici un exemple de code VBA qui marque les lignes en double en utilisant une couleur jaune vive pour garantir un contraste suffisant sur un thème sombre :

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
   
    ' Nettoyage des couleurs de fond de cellules en doublons
        With FeuilBase.Range(FeuilBase.Cells(1, 1), FeuilBase.Cells(FeuilBase.Cells(65536, 1).End(xlUp).Row, 5)).Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        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
        Else
            ' Ajouter la ligne au dictionnaire
            lignesEnDouble(TSpl) = True
        End If
    Next i
End Sub
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Inactif
Bonsoir,
Tiens, j'avais presque oublié...
Quelques milliers de lignes
Quelques centaines de doublons
Un marquage visuel via MEFC (toutes de la même couleur, mais incompatible avec l'accessibilité choisie)
Bref....
Et si, finalement, tu expliquais exactement (j'ai bien dit exactement), ce que tu veux?
Supprimer les doublons?
Excel le fait, tout simplement, et, nativement...
1712344534531.png

Bonne soirée
 

Discussions similaires

Réponses
2
Affichages
283

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki