Liste déroulante avec filtre textuel

c'est toujours possible mais faudra ajouter quelque ligne de code en plus ^^

je vous fait sa dès que j'ai un de temps

minanse a écrit :

c'est toujours possible mais faudra ajouter quelque ligne de code en plus ^^

je vous fait sa dès que j'ai un de temps

D'accord , merci c'est très gentil de ta part.

ajouter/remplacer cela au code :

  
dim mot as String
mot = Left(target.value, InStr(1, target.value, "-") - 1)  ' il va extraire la chaine de caractère qui se trouve avant le caractère "-"
if  not (Sheets("Feuil2").Range("C" & i).Value like mot) Then

voila =)

minanse a écrit :

ajouter/remplacer cela au code :

  
dim mot as String
mot = Left(target.value, InStr(1, target.value, "-") - 1)  ' il va extraire la chaine de caractère qui se trouve avant le caractère "-"
if  not (Sheets("Feuil2").Range("C" & i).Value like mot) Then

voila =)

Je voulais savoir dans quel ligne ajouter le code si possible , mercii

Bonjour,

Le code est à remplacer dans la boucle "for" :

remplace le "if target.valet <>.... then > par ce code

Bonjour le fil, bonjour le forum,

Ou comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim PL As Range

Application.ScreenUpdating = False
Set PL = Sheets("Feuil2").Range("C4:C" & Sheets("Feuil2").Range("C" & Application.Rows.Count).End(xlUp).Row)
If Sheets("Feuil2").FilterMode = True Then PL.AutoFilter
If Not Application.Intersect(Target, Range("E8")) Is Nothing Then  'E8 la ou se trouve la liste déroulante
    If Target.Value = "sans filtre" Then
        If FilterMode = True Then PL.AutoFilter
    Else
        PL.AutoFilter Field:=1, Criteria1:="*" & Target.Value & "*"
    End If
    Sheets("Feuil2").Activate
End If
Application.ScreenUpdating = True
End Sub
ThauThème a écrit :

Bonjour le fil, bonjour le forum,

Ou comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim PL As Range

Application.ScreenUpdating = False
Set PL = Sheets("Feuil2").Range("C4:C" & Sheets("Feuil2").Range("C" & Application.Rows.Count).End(xlUp).Row)
If Sheets("Feuil2").FilterMode = True Then PL.AutoFilter
If Not Application.Intersect(Target, Range("E8")) Is Nothing Then  'E8 la ou se trouve la liste déroulante
    If Target.Value = "sans filtre" Then
        If FilterMode = True Then PL.AutoFilter
    Else
        PL.AutoFilter Field:=1, Criteria1:="*" & Target.Value & "*"
    End If
    Sheets("Feuil2").Activate
End If
Application.ScreenUpdating = True
End Sub

Re Bonjour les masters !

La deuxième solution marche comme j'ai imaginé le fichier au début ... Rien que pour quelques valeurs de la liste déroulante le filtre ne s'applique pas sur la première ligne du tableau mais s'applique parfois dans la 2em 3em ou 4 em ligne ...

Merci de vos retours !


minanse a écrit :

Bonjour,

Le code est à remplacer dans la boucle "for" :

remplace le "if target.valet <>.... then > par ce code

Merci Chef c'est trés gentil de votre part !


minanse a écrit :

Bonjour,

Le code est à remplacer dans la boucle "for" :

remplace le "if target.valet <>.... then > par ce code

Merci Chef c'est trés gentil de votre part !

de rien =)

Bonjour les codeurs

Comment serait-il possible d'ajouter un autre critère dans le code ? mais toujours un critère textuel cet fois ci fixe ( le critère sera "All" )

Bonjour,

le "all" remplace le "sans filtre" ?

minanse a écrit :

Bonjour,

le "all" remplace le "sans filtre" ?

j'ai rajouté à coté du 1er critere , operator:=xlor et j 'ai mis "all" comme deuxième critère ça a marché !

Merci énormément !

Rechercher des sujets similaires à "liste deroulante filtre textuel"