Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

IDENTIFICATION DES ELEMENTS PROVENANT DE 2 LISTES

6 réponses
Avatar
elodie005
Bonjour =E0 tous,

J'ai une nouvelle fois besoin de votre aide, j'esp=E8re que vous pourrez
m'aider...

J'ai un fichier Exel dans lequel j'ai en la feuil 1 dans la colonne A
une liste de mot et en feuil2 =E9galement dans la colonne A une autre
liste de mot (environ 2000 mots).

L'ideal pour moi serait d'avoir une macro qui affiche sur les autres
feuilles du classeur, en vert les cellules qui contiennent (et non pas
strictement identique) un mot de la feuil 1 et en rouge celles qui
contiennent un mot de la feuil 2 (et rien si le mot n'est issu ni de
la liste de la feuil1 ni celui de la feuil2)

Est-ce r=E9alisable? Ou il y a t-il une autre solution plus simple?

Vous remerciant par avance pour votre aide

6 réponses

Avatar
DanielCo
Bonjoour,
La macro suivante cherche dans les feuilles Feuil1 et Feuil2 en colonne
A pour chaque cellule de la colonne A de Feuil3. Cependant, elle ne
cherche pas s'il y a des espaces autour du mot; par exemple, si j'ai
"cas" sur Feuil3 et "castor"sur Feuil1, la cellule sera verte. Je peux
tester la présence d'espace, mais cela pose le cas de la présence
possible de signes de ponctuation :

Sub test()
Dim c As Range, Teste As Integer
With Sheets("Feuil3")
For Each c In .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp))
If c.Value <> "" Then
Teste = 0
Set s = [Feuil1!A:A].Find(c.Value, , , xlPart)
If Not s Is Nothing Then Teste = 1
Set s = [Feuil1!A:A].Find(c.Value, , , xlPart)
If Not s Is Nothing Then Teste = 1
If Teste = 1 Then
c.Interior.ColorIndex = 43
Else
c.Interior.ColorIndex = 3
End If
End If
Next c
End With
End Sub

Cordialement.
Daniel


Bonjour à tous,

J'ai une nouvelle fois besoin de votre aide, j'espère que vous pourrez
m'aider...

J'ai un fichier Exel dans lequel j'ai en la feuil 1 dans la colonne A
une liste de mot et en feuil2 également dans la colonne A une autre
liste de mot (environ 2000 mots).

L'ideal pour moi serait d'avoir une macro qui affiche sur les autres
feuilles du classeur, en vert les cellules qui contiennent (et non pas
strictement identique) un mot de la feuil 1 et en rouge celles qui
contiennent un mot de la feuil 2 (et rien si le mot n'est issu ni de
la liste de la feuil1 ni celui de la feuil2)

Est-ce réalisable? Ou il y a t-il une autre solution plus simple?

Vous remerciant par avance pour votre aide
Avatar
MichD
Bonjour,

Tu pourrais le faire en utilisant une mise en forme conditionnelle.

A ) Attribue en nom (insertion / nom / définir) à la colonne A1:Ax de la feuil1
B ) Attribue aussi un nom à la plage A1:Ax de la feuil2
Pour ce faire, tu peux utiliser la fonction "Decaler()" pour que ta plage se mettre à jour...

Les 2 formules pour la mise en forme conditionnelle pour les cellules concernées en feuil3 par exemple :
=ESTNUM(EQUIV("*"&A1&"*";Plg;0)) 'Plg -> plage feuil1
=ESTNUM(EQUIV("*"&A1&"*";Rg;0)) 'Rg -> plage feuil2

Si A1 de la feuil3 contient au moins une chaîne de caractères définie dans la plage "Plg" la mise en forme
s'appliquera... il en est de même pour la feuil2.

Qu'est-ce qui doit se passer si la chaîne de caractères appartient en même temps à la feuil1 et à la feuil2 ? Est-ce
possible ? Si oui, la mise en forme conditionnelle est à compléter!



MichD
--------------------------------------------
"elodie005" a écrit dans le message de groupe de discussion :


Bonjour à tous,

J'ai une nouvelle fois besoin de votre aide, j'espère que vous pourrez
m'aider...

J'ai un fichier Exel dans lequel j'ai en la feuil 1 dans la colonne A
une liste de mot et en feuil2 également dans la colonne A une autre
liste de mot (environ 2000 mots).

L'ideal pour moi serait d'avoir une macro qui affiche sur les autres
feuilles du classeur, en vert les cellules qui contiennent (et non pas
strictement identique) un mot de la feuil 1 et en rouge celles qui
contiennent un mot de la feuil 2 (et rien si le mot n'est issu ni de
la liste de la feuil1 ni celui de la feuil2)

Est-ce réalisable? Ou il y a t-il une autre solution plus simple?

Vous remerciant par avance pour votre aide
Avatar
Jacky
Bonjour,

Ceci recherche dans toutes les feuilles du classeur à l'exception de feuil1 et feuils2 dans la colonne A une
partie du mot contenu dans feuil 1 ou/et dans feuil 2
En rouge ceux qui sont en feuil 2
En vert ceux qui sont en feuil 1
Et d'une autre couleur ceux qui sont dans les deux
'------------------
Sub jj()
Dim sh As Worksheet
derlg = Sheets("feuil1").Cells(Rows.Count, 1).End(3).Row
Set plage1 = Sheets("feuil1").Range("a2:a" & derlg)
derlg = Sheets("feuil2").Cells(Rows.Count, 1).End(3).Row
Set plage2 = Sheets("feuil2").Range("a2:a" & derlg)
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "Feuil1" And sh.Name <> "Feuil2" Then
For i = 2 To Sheets(sh.Name).Cells(Rows.Count, 1).End(3).Row
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage1, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 4
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage2, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 3
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage1, 0)) And _
IsNumeric(Application.Match("*" & Cells(i, 1) & "*", plage2, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 7
Next
End If
Next
End Sub
"------------------------
--
Salutations
JJ


"elodie005" a écrit dans le message de news:

Bonjour à tous,

J'ai une nouvelle fois besoin de votre aide, j'espère que vous pourrez
m'aider...

J'ai un fichier Exel dans lequel j'ai en la feuil 1 dans la colonne A
une liste de mot et en feuil2 également dans la colonne A une autre
liste de mot (environ 2000 mots).

L'ideal pour moi serait d'avoir une macro qui affiche sur les autres
feuilles du classeur, en vert les cellules qui contiennent (et non pas
strictement identique) un mot de la feuil 1 et en rouge celles qui
contiennent un mot de la feuil 2 (et rien si le mot n'est issu ni de
la liste de la feuil1 ni celui de la feuil2)

Est-ce réalisable? Ou il y a t-il une autre solution plus simple?

Vous remerciant par avance pour votre aide
Avatar
Jacky
Oupsss !!
Il y a u Sh qui s'est perdu en cours de route ;o)
Replacer
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage1, 0)) And _
IsNumeric(Application.Match("*" & Cells(i, 1) & "*", plage2, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 7


par
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage1, 0)) And _
IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage2, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 7


--
Salutations
JJ


"Jacky" a écrit dans le message de news: iu4kg1$2jb$
Bonjour,

Ceci recherche dans toutes les feuilles du classeur à l'exception de feuil1 et feuils2 dans la colonne A une
partie du mot contenu dans feuil 1 ou/et dans feuil 2
En rouge ceux qui sont en feuil 2
En vert ceux qui sont en feuil 1
Et d'une autre couleur ceux qui sont dans les deux
'------------------
Sub jj()
Dim sh As Worksheet
derlg = Sheets("feuil1").Cells(Rows.Count, 1).End(3).Row
Set plage1 = Sheets("feuil1").Range("a2:a" & derlg)
derlg = Sheets("feuil2").Cells(Rows.Count, 1).End(3).Row
Set plage2 = Sheets("feuil2").Range("a2:a" & derlg)
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "Feuil1" And sh.Name <> "Feuil2" Then
For i = 2 To Sheets(sh.Name).Cells(Rows.Count, 1).End(3).Row
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage1, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 4
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage2, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 3
If IsNumeric(Application.Match("*" & sh.Cells(i, 1) & "*", plage1, 0)) And _
IsNumeric(Application.Match("*" & Cells(i, 1) & "*", plage2, 0)) Then _
sh.Cells(i, 1).Interior.ColorIndex = 7
Next
End If
Next
End Sub
"------------------------
--
Salutations
JJ


"elodie005" a écrit dans le message de news:

Bonjour à tous,

J'ai une nouvelle fois besoin de votre aide, j'espère que vous pourrez
m'aider...

J'ai un fichier Exel dans lequel j'ai en la feuil 1 dans la colonne A
une liste de mot et en feuil2 également dans la colonne A une autre
liste de mot (environ 2000 mots).

L'ideal pour moi serait d'avoir une macro qui affiche sur les autres
feuilles du classeur, en vert les cellules qui contiennent (et non pas
strictement identique) un mot de la feuil 1 et en rouge celles qui
contiennent un mot de la feuil 2 (et rien si le mot n'est issu ni de
la liste de la feuil1 ni celui de la feuil2)

Est-ce réalisable? Ou il y a t-il une autre solution plus simple?

Vous remerciant par avance pour votre aide



Avatar
elodie005
Merci beaucoup pour cette réponse qui me parait la plus proche du
résultat que je veux obtenir par contre elle ne marche que quand le
mot est strictement identique.

En effet si en feuille 3 j'ai TELEPHONE (4%) et en feuille 1 juste
TELEPHONE, le TELEPHONE de la feuille 3 n'est pas reconnu.

Pouvez-vous corriger cela?

Merci d'avance

On 25 juin, 14:23, "MichD" wrote:
Bonjour,

Tu pourrais le faire en utilisant une mise en forme conditionnelle.

A ) Attribue en nom (insertion / nom / d finir) la colonne A1:Ax de la fe uil1
B ) Attribue aussi un nom la plage A1:Ax de la feuil2
Pour ce faire, tu peux utiliser la fonction "Decaler()" pour que ta plage se mettre jour...

Les 2 formules pour la mise en forme conditionnelle pour les cellules con cern es en feuil3 par exemple :
=ESTNUM(EQUIV("*"&A1&"*";Plg;0))  'Plg -> plage feuil1
=ESTNUM(EQUIV("*"&A1&"*";Rg;0))  'Rg -> plage feuil2

Si A1 de la feuil3 contient au moins une cha ne de caract res d finie dan s la plage "Plg" la mise en forme
s'appliquera... il en est de m me pour la feuil2.

Qu'est-ce qui doit se passer si la cha ne de caract res appartient en m m e temps la feuil1 et la feuil2 ? Est-ce
possible ? Si oui, la mise en forme conditionnelle est compl ter!

MichD
--------------------------------------------
"elodie005"  a crit dans le message de groupe de discussion :


Bonjour tous,

J'ai une nouvelle fois besoin de votre aide, j'esp re que vous pourrez
m'aider...

J'ai un fichier Exel dans lequel j'ai en la feuil 1 dans la colonne A
une liste de mot et en feuil2 galement dans la colonne A une autre
liste de mot (environ 2000 mots).

L'ideal pour moi serait d'avoir une macro qui affiche sur les autres
feuilles du classeur, en vert les cellules qui contiennent (et non pas
strictement identique) un mot de la feuil 1 et en rouge celles qui
contiennent un mot de la feuil 2 (et rien si le mot n'est issu ni de
la liste de la feuil1 ni celui de la feuil2)

Est-ce r alisable? Ou il y a t-il une autre solution plus simple?

Vous remerciant par avance pour votre aide
Avatar
MichD
On peut renverser la vérification, tu peux utiliser ce type de formule dans une mise en forme conditionnelle

Par exemple, cette formule vérifie si dans la plage de la feuil1, la chaîne de caractères de la plage Plg existe
dans la plage Rg
Plg = Plage nommée de tes données de la colonne en Feuil1
Rg= Plage nommée de tes données de la colonne en Feuil3
=SOMME(SI(ESTNUM(EQUIV("*"&Plg&"*";Rg;0));1))>0

Le même principe s'applique pour les données de la feuil2


MichD
--------------------------------------------