Coloration de doublons

BD62

XLDnaute Nouveau
Bonjour à toutes et à tous

M'inspirant du site boigontierjacques je voudrais colorer les doublons d'un tableau en fonction de la position de mon curseur avec les mises en forme conditionnelles.
Ex: si mon curseur est en B2 (rouge dans mon tableau) je voudrais colorer les doublons de la ligne 2 et de la colonne B. 1,2 et 6 dans mon exemple.
Si mon curseur est en F5 (Bleu dans mon tableau) je voudrais que se colorent les doublons de la la ligne 5 et de la colonne F (Ici 7).
Les couleurs bleu et rouge ne servent qu'à mieux expliquer. La coloration peut se faire toujours dans la même couleur.

A savoir que dans mon tableau de B2 à J10 il y a des chiffres donc pas de possibilité de mettre une formule.
Je ne vois pas bien comment m'y prendre soit avec une mise en forme conditionnelle comme j'ai essayé en K2:S2 ou en VBA.
Je joins mon fichier exemple et j'espère que mes explications sont claires.
D'avance merci
 

Pièces jointes

  • Coloration doublons.xlsm
    14.1 KB · Affichages: 48
  • Coloration doublons.xlsm
    14.1 KB · Affichages: 47
  • Coloration doublons.xlsm
    14.1 KB · Affichages: 50

Robert

XLDnaute Barbatruc
Repose en paix
Re : Coloration de doublons

Bonjour BD, Piga, bonjour le forum,

Une autre proposition au double-clic. Colore la première fois, enlève les couleurs la seconde fois...
Le code :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim cl As XlColorIndex 'déclare la variable cl (CouLeur)
Dim ld As Integer, lf As Integer, pl As Range 'déclare les variables ld (Ligne Début), lf (Ligne Fin) et pl (Plage Lignes)
Dim cd As Integer, cf As Integer, pc As Range 'déclare les variables cd (Colonne Début), cf (Colonne Fin) et pc (Plage Colonnes)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)

'si le double-clic a lieu ailleurs qu'en B2 ou F5, sort de la procédure
If Application.Intersect(Target, Application.Union(Range("B2"), Range("F5"))) Is Nothing Then Exit Sub
Cancel = True 'annule le mode édition lié au double-clic
cl = Target.Interior.ColorIndex 'définit la couleur cl
ld = Target.End(xlDown).Row 'définit la ligne de début
lf = Cells(Application.Rows.Count, Target.Column).End(xlUp).Row 'définit la ligne de fin
Set pl = Range(Cells(ld, Target.Column), Cells(lf, Target.Column)) 'définit la plage de lignes
cd = Target.End(xlToRight).Column 'définit la colonne de début
cf = Cells(Target.Row, Application.Columns.Count).End(xlToLeft).Column 'définit la colonne de fin
Set pc = Range(Cells(Target.Row, cd), Cells(Target.Row, cf)) 'définit la plage de colonnes
For Each cel In pl 'boucle tour toutes les cellules cel de la plage de lignes
    Set r = pc.Find(cel.Value, , xlValues, xlWhole) 'définit la recherche (recherche la valeur de la cellule dans la plage de colonnes)
    If Not r Is Nothing Then 'condition 2: si il existe au moins une occurrence trouvée
        pa = r.Address 'définit l'adresse de la première occurrence trouvée
        Do 'exécute
            cel.Font.ColorIndex = IIf(cel.Font.ColorIndex = 1, cl, 1) 'couleur de police de la cellule cel égale à cl ou noir
            r.Font.ColorIndex = IIf(r.Font.ColorIndex = 1, cl, 1) 'couleur de police de l'occurrence trouvée égale à cl ou noir
            Set r = pc.FindNext(r) 'redéfint la recherche (occurrence suivante)
        Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
    End If 'fin de la condition 2
Next cel 'prochaine cellule de la boucle
End Sub
Le fichier :
 

Pièces jointes

  • BD_v01.xls
    51.5 KB · Affichages: 60

BD62

XLDnaute Nouveau
Re : Coloration de doublons

Merci à Piga25 et à Robert de vous êtes penchés sur mon problème.
Mais ce n'est pas vraiment ce que je cherche à faire.
Ce n'est pas facile à expliquer mais je vais retenter.
En fait je cherche à faire apparaitre les doublons de mes 2 tableaux. K2:S10 et B11:J19. qui sont des résultats de valeurs et je n'y touche pas
Jusque là ce n'est pas compliqué, là où ça se complique c'est que je voudrais que ces doublons ne soient visibles que lorsque je me déplace dans mon tableau principal B2:J10 et que n'importe quelle position dans ce tableau "m'allume" les doublons correspondants à la ligne et la colonne où je me trouve. Pas seulement sur mes cases rouges et bleues. Je les avais colorées pour expliquer ma demande mais ce n'était pas une bonne idée.
Avec cette formule j'arrive à gérer la ligne mais pas la colonne
=ET(ET(LIGNE()=CELLULE("ligne");COLONNE()>=CELLULE("colonne"));NB.SI($B$11:$B$19;K2)>0)

J'espère qu'avec ce complément d'explications c'est plus clair.
Encore merci à tous pour votre aide.
 

BD62

XLDnaute Nouveau
Re : Coloration de doublons

Bonjour Habitude, Pierrejean

Super, c'est tout à fait ce que je cherchais à faire.
Deux méthodes différentes mais qui fonctionnent aussi bien.
Dès que j'ai un moment je me pencherais plus sur le code pour essayer de comprendre et surtout apprendre.
Merci encore à vous et à tout le forum pour passer un peu de temps à débrouiller les demandes des autres.
Je vais pouvoir avancer dans mon projet.
 

Statistiques des forums

Discussions
312 682
Messages
2 090 893
Membres
104 689
dernier inscrit
phlentier