Changer la couleur d'un résultat trouvé

Bonjour,

je tente de créé une macro qui va regarder le numéro de matricule de la première feuille en Q5 et ensuite cherché a travers toute les feuilles si se numéro existe déjà et si oui, afficher le font en rouge.je n'y arrivais pas donc j'ai tenté de trouver un script sur internet. je comprend le script mais je n'arrive pas a mettre le fond du résultat en rouge. voici mon script:

Sub Doublon()

'déclaration des variables :

Dim Trouve As Range, PlageDeRecherche As Range

Dim Valeur_Cherchee As String, AdresseTrouvee As String

'********* à adapter ***********

'affectation de valeurs aux variables : 'on cherche le mot "Trouve"

Valeur_Cherchee = Range("Q5")

'dans la première colonne de la feuille active

Set PlageDeRecherche = Worksheets("13 Avril").Columns(4)

'******************************* 'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)

Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

'traitement de l'erreur possible : Si on ne trouve rien :

If Trouve Is Nothing Then

'ici, traitement pour le cas où la valeur n'est pas trouvée

AdresseTrouvee = Valeur_Cherchee

MsgBox "Aucun doublon Trouvé"

Else

'ici, traitement pour le cas où la valeur est trouvée

AdresseTrouvee = Trouve.Address

AdresseTrouvee.Interior.Color = RGB(255, 0, 0)

End If

MsgBox

'vidage des variables

Set PlageDeRecherche = Nothing

Set Trouve = Nothing

End Sub

Bonjour

à tester :

If Trouve Is Nothing Then
     'ici, traitement pour le cas où la valeur n'est pas trouvée
      .../...
     MsgBox "Aucun doublon Trouvé"
Else
    'ici, traitement pour le cas où la valeur est trouvée
    Trouve.Interior.Color = vbRed
End If

A+

Bonsoir,

en effet lorsque le code fait ceci : AdresseTrouvee = Trouve.Address
il attribue à la variable AdresseTrouvee l'adresse de la cellule contenant un doublon donc quelque chose du style : $C$45.

Quand le code fait ceci : AdresseTrouvee.Interior.Color = RGB(255, 0, 0)
il essaie d'attribuer une couleur à un objet Range dont le nom de variable est AdresseTrouvee hors cette variable n'est pas un objet Range mais une variable String !
Pour aller dans ce sens il aurait fallu que le code soit ainsi : Range(AdresseTrouvee).Interior.Color = RGB(255, 0, 0) donc Range($C$45).Interior.Color = RGB(255, 0, 0)

La réponse d'Algoplus "garde" la cellule trouvée comme objet (c'est un objet Range) pour mettre la couleur.

Je me pose une question : il est surprenant qu'il n'y ait pas eu une erreur de "type" lorsque AdresseTrouvee.Interior.Color = RGB(255, 0, 0) est lu par l'interpréteur de VBA ?

@ bientôt

LouReeD

merci Algoplus :), sa fonctionne.

il ne me reste plus qu'a trouver un moyen de le faire recherché sur plusieurs page mais grâce vous j'ai avancé

Un essai fonctionnant pour une seule valeur à trouver sur l'ensemble des feuilles à parcourir :

Dim Trouve As Range, PlageDeRecherche As Range, T, i As Integer

Valeur_Cherchee = Range("Q5")
T = Array("Feuil1", "Feuil2", "Feuil3") 'Tableau du nom des feuilles à parcourir; à adapter

For i = LBound(T) To UBound(T) 'pour chaque nom de feuille
    Set PlageDeRecherche = Worksheets(T(i)).Columns(1) 'dans la première colonne de la feuille active
    '******************************* 'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

    If Not Trouve Is Nothing Then  'traitement Si on trouve
        Trouve.Interior.Color = RGB(255, 0, 0)
        MsgBox "Doublon trouvé en feuille :" & vbLf & Worksheets(T(i)).Name
        Exit For 'on sort de la boucle
    End If
Next

If Trouve Is Nothing Then MsgBox "Aucun doublon Trouvé"

A adapter

A+

merci Algoplus, sa Fonctionne a merveille. j'essayais de le faire seul pour m'améliorer et j'ai fini par être consterné par la difficulté. peux tu m'expliquer le "i" et le Lbound, Ubound ? Je ne comprend pas a quoi ils servent

LBound renvoie le plus petit indice du tableau T qui contient les noms des feuilles à parcourir

UBound renvoie le plus grand indice du tableau T

"i" est le nom de la variable utilisée dans la boucle For .... Next . et qui va prendre successivement toutes les valeurs des indices du tableau T

Rechercher des sujets similaires à "changer couleur resultat trouve"