liste avec case de recherche

  • Initiateur de la discussion Initiateur de la discussion jb.ponce
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jb.ponce

Guest
Bonjour,
Je souhaiterai savoir si :

On peut par exemple faire une liste de plein de code sur une feuille(1) et sur une autre feuille(2) mettre une case.

Quand on tape 1 dans la case de la feuille(2) et que le 1 est dans la liste de la feuille(1) la case de la feuille(2) ce
met en vert.

Par contre si on met 2 et qu'il n'est pas dans la liste, la case ce met en rouge

et comment faire tout cela

Merci
 
Re : liste avec case de recherche

Bonjour JB, bonjour le forum,

En pièce jointe un fichier à adapter avec la macro événementielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque nouvelle édition dans l'onglet
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)

If Target.Address <> "$A$1" Then Exit Sub 'si l'édition a lieu ailleurs qu'en A1, sort de la procédure
If Target.Value = "" Then Target.Interior.ColorIndex = xlNone: Exit Sub 'si la cellule est effacée, supprime la couleur, sort de la procédure
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
    Set pl = .Range("A1:A" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
Set r = pl.Find(Target.Value, , xlValues, xlWhole) 'définit la recherche r (Recherche la valeur tapée en A1 dans la plage pl)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    Target.Interior.ColorIndex = 4 'colore A1 de vert
Else 'sinon
    Target.Interior.ColorIndex = 3 'colore A1 de rouge
End If 'fin de la condition
End Sub
Le fichier :


[Édition]
Bonjour Rachid on s'est croisé...
 

Pièces jointes

Re : liste avec case de recherche

Bonjour le fil, bonjour le forum,

En attendant la solution pa formule de Rachid, le même code adapté à ton fichier (arrivé en retard...) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque nouvelle édition dans l'onglet
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)

If Target.Address <> "$B$2" Then Exit Sub 'si l'édition a lieu ailleurs qu'en B2, sort de la procédure
If Target.Value = "" Then Target.Interior.ColorIndex = xlNone: Exit Sub 'si la cellule est effacée, supprime la couleur, sort de la procédure
With Sheets("(1)") 'prend en compte l'onglet "(1)"
    dl = .Cells(Application.Rows.Count, 3).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 3 (=C)
    Set pl = .Range("C3:C" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "(1)"
Set r = pl.Find(Target.Value, , xlValues, xlWhole) 'définit la recherche r (Recherche la valeur tapée en A1 dans la plage pl)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    Target.Interior.ColorIndex = 4 'colore A1 de vert
Else 'sinon
    Target.Interior.ColorIndex = 3 'colore A1 de rouge
End If 'fin de la condition
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
764
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
636
Réponses
2
Affichages
160
Réponses
5
Affichages
356
Retour