Faire un filtre qui prend en compte les virgules

0

Bonjour,

J'ai deux colonnes, une pour le prénom et l'autre pour la saison, par exemple :

Noms : Pierre / Paul / Jacques

Saison : Hiver / Printemps / Hiver, Automne

Jacques est disponible sur deux saisons Hiver et Automne et j'aimerais que dans mon filtre, il n'y ait que les 4 saisons (Ete, Printemps, Automne, Hiver) et que quand je sélectionner Hiver ou Automne, Jacques apparaisse. Sauriez-vous comment faire ?

Merci d'avance.

Malou

Posté le 21 septembre 2023, 10:32
par malou
Répondre
0

Bonjour Malou,

fichier exemple : https://www.cjoint.com/c/MIvm30H3eA0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mode d'emploi

* la cellule active est C2, qui contient "Printemps" ; dessous,
tu vois une seule ligne pour : Paul.

* fais Alt  et sélectionne "Été" ➯ dessous, 3 lignes pour :
Martin ; Fred ; Luc.

* fais Alt  et sélectionne "Automne" ➯ dessous, 3 lignes pour :
Jacques ; Gérard ; Martin.

* fais Alt  et sélectionne "Hiver" ➯ dessous, 3 lignes pour :
Pierre ; JacquesFred.

* fais Alt  et sélectionne "Printemps" ➯ dessous, tu vois
une seule ligne pour : Paul (c'est comme au début).

* et pour voir toutes les lignes du tableau ? c'est très simple :
en C2, appuie sur la touche Suppression.  :)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

code VBA du module de Feuil1 (15 lignes) :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim v$, i&: Const m& = 200 'ligne maximum
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Address <> "$C$2" Then Exit Sub
    Application.ScreenUpdating = 0: Rows("5:" & m).Hidden = 0
    v = .Value: If v = "" Then Exit Sub
    For i = 5 To Cells(Rows.Count, 2).End(3).Row
      If InStr(Cells(i, 3), v) = 0 Then Rows(i).Hidden = -1
    Next i
  End With
End Sub

rhodo

rhodo Posté le 21 septembre 2023, 15:18
par rhodo

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :