Mettre en surbrillance données qui sont deja dans une liste

coolman53

XLDnaute Junior
Bonjour à tous,

Voici un autre probleme qui me prend la tete

J'ai 2 feuilles : Tableau et Liste

La feuille Tableau est un tableau où des données sont rajouté tous les jours
La feuille Liste correspond aux produits à surveiller

Ce que je voudrai c'est que si dans la colonne E du tableau, il y a une donnée qui est dans la liste alors mettre la ligne correspondante du tableau en surbrillance

Le tableau et la liste sont illimité en ligne

Ci joint fichier

Merci par avance
 

Pièces jointes

  • Classeurtest.xlsx
    10.2 KB · Affichages: 103
  • Classeurtest.xlsx
    10.2 KB · Affichages: 117
  • Classeurtest.xlsx
    10.2 KB · Affichages: 116

PrinceCorwin

XLDnaute Occasionnel
Re : Mettre en surbrillance données qui sont deja dans une liste

Bonjour,

Il faut nommer ta Liste avec un nom (Liste)
Dans le Tableau, faire une Mise en Forme Conditionnelle comme ceci :
Code:
=nb.si(Liste;E2)>=1

Bonne journée
 

Pièces jointes

  • Classeurtest.xlsx
    11.9 KB · Affichages: 101
  • Classeurtest.xlsx
    11.9 KB · Affichages: 106
  • Classeurtest.xlsx
    11.9 KB · Affichages: 124
Dernière édition:

fhoest

XLDnaute Accro
Re : Mettre en surbrillance données qui sont deja dans une liste

Bonjour,
ouvre l'éditeur VBA puis insère ce code sous un bouton ou autre événement par exemple worksheet_selectionchange()
le code:
Code:
Sub surbrillance()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim c As Range
Dim d As Range
Dim drligne1 As Long
Dim drligne2 As Long
Dim plage1 As Range
Dim plage2 As Range
 Set sh1 = Worksheets("Tableau")
 Set sh2 = Worksheets("Liste")
 drligne1 = sh1.Range("E100000").End(xlUp).Row
 drligne2 = sh2.Range("A100000").End(xlUp).Row
 Set plage1 = sh1.Range("E1:E" & drligne1)
 Set plage2 = sh2.Range("A1:A" & drligne2)
 For Each d In plage2
 For Each c In plage1
 If c Like d Then Rows(c.Row & ":" & c.Row).Interior.Color = 65535
 Next c
 Next d
 End Sub
A+
 

coolman53

XLDnaute Junior
Re : Mettre en surbrillance données qui sont deja dans une liste

Apres un test plus approfondi, le systeme de Prince Corwin ne fonctionne pas car il y a des données que j'ai dans la liste qui ne sont pas en surbrillance dans le tableau

Je vais quand meme essaye ton code fhoest mais je crois que j'aurai besoin de toi pour m'expliquer
 

coolman53

XLDnaute Junior
Re : Mettre en surbrillance données qui sont deja dans une liste

Merci fhoest j'ai exactement le resultat que je voulais

Par contre j'ai quelques petites questions si tu veux bien

- Peux tu m'expliquer un peu ton code pour pas mourrir idiot
- Comment changer la couleur de surbrillance

Merci beaucoup
 

fhoest

XLDnaute Accro
Re : Mettre en surbrillance données qui sont deja dans une liste

Alors:
types de variables
Code:
Sub surbrillance()
'instanciation des variables
'worksheet = feuille de travail
'range= cellule
'etc voir types de variables
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim c As Range
Dim d As Range
Dim drligne1 As Long
Dim drligne2 As Long
Dim plage1 As Range
Dim plage2 As Range
'ici je dis que la variable sh1 est égale à la feuille de calcul portant le nom Tableau
'un texte doit être entre " " 
Set sh1 = Worksheets("Tableau")
 Set sh2 = Worksheets("Liste")
  'la je vais de bas en haut chercher la dernière cellule vide de la colonne E en partant de la cellule E100000
drligne1 = sh1.Range("E100000").End(xlUp).Row
 drligne2 = sh2.Range("A100000").End(xlUp).Row
la définition de la plage 1 et 2  des feuilles sh1 et sh2 avec utilisation des variables drligne 1 et 2 qui représentent les dernière cellules vide des plages a chercher

Set plage1 = sh1.Range("E1:E" & drligne1)
 Set plage2 = sh2.Range("A1:A" & drligne2)
'ici: for each = pour chaque
'cela veut dire: pour chaque valeur des plages 1 et 2 si la valeur de la cellule c (défini en range) contient la valeur de la cellule d (défini également en range)alors la ligne (Rows) (N° ligne=ligne de la cellule en test ici ligne de c (c.row)): même chose ) on lui attribut la couleur intérieure valeur 65...
For Each d In plage2
 For Each c In plage1
 If c Like d Then Rows(c.Row & ":" & c.Row).Interior.Color = 65535
 Next c
 Next d
 End Sub
Pour la couleur tu peux utiliser a la place du chiffre : RGB(red:=255,green:=255,blue:=255) tu peux retrouver la crrespondance de toutes les couleurs soit sur wikipedia en tapant le nom de la couleur ou alors rechercher une table RGB sur le net
J'espère que tu ne seras pas idiot avant de t'en aller maintenant ...LOL
A+
 

PrinceCorwin

XLDnaute Occasionnel
Re : Mettre en surbrillance données qui sont deja dans une liste

Bonjour,
Hello Fhoest,

Cela me parait bien étonnant que mon système ne fonctionne pas correctement.
As-tu mis à jour le nom Liste depuis le gestionnaire de nom ?
la formule pour mettre à jour en dynamique est :
Code:
=DECALER(Liste!$A$1:$A$11;;;NBVAL(Liste!$A:$A))

Bonne journée
 

coolman53

XLDnaute Junior
Re : Mettre en surbrillance données qui sont deja dans une liste

J'ai fais comme tu m'as dis et pourtant je t'assure qu'il me manque des lignes en surbrillance

A moins que ce soit moi qui fasse mal ( ce qui est fort possible!!!)

Mais je te remercie quand meme pour ton aide Prince Corwin je garde ton systeme sous le coude et essayer de trouver où sa marche pas car cela peut toujours servir

Par contre je cherche comment faire a la suite du code de fhoest un bouton qui enlevera la surbrillance de la feuille "Tableau"
 

Discussions similaires

Réponses
7
Affichages
320

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet