Microsoft 365 Récupérer les valeurs filtrées dans des variables

Fab117

XLDnaute Impliqué
Edit 17h15: Définition plus précise du problème dans le message #9 ci-dessous



Bonjour,

Dans mon onglet ws, en cellule "E1", j'ai un filtre.

Celui-ci peut proposer :
  • ""
  • "Continuer"
  • "Attendre"
  • "Stopper"

Dans ma routine VBA, est-il possible de créer une variable pour chaque possibilité proposée par le filtre (FiltreNull, FiltreContinuer, FiltreAttendre & FiltreStopper) et de lui attribuer la valeur "True" s'il est activé est "False" dans le cas contraire.

=> exemple de résultat :
  • FiltreNull = True
  • FiltreContinuer = False
  • FiltreAttendre = True
  • FiltreStopper = False

Bonne soirée

Fab
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour @Fab117

Je te propose ceci à adapter à ton cas et non testé et sans garantie car j'ai pas vu ton fichier ......

VB:
Sub Action()

For Each ValFiltre In ActiveSheet.AutoFilter.Filters(1).Criteria1
    ValFiltre
Next

Select Case ValFiltre
    Case FiltreAttendre
        'Mon action attendre
    Case FiltreContinuer
        'Mon action continuer
    Case FiltreStopper
        'Mon action stop
    Case Else '==> Pas de filtre
        'Mon action pas de filtre
End Select
End Sub

Merci de ton retour

@Phil69970
 

Fab117

XLDnaute Impliqué
Bonjour @Phil69970
Merci beaucoup de prendre le temps de regarder mon soucis.

Je n'ai pas réussi à adapter ton code (il plante sur "ValFiltre").
Je joins un fichier démo pour faciliter l'échange

Bon appétit

Fab
 

Pièces jointes

  • Fichier Demo 01.xlsm
    14.7 KB · Affichages: 1

Fab117

XLDnaute Impliqué
Ce que je souhaiterais, c'est récupérer les filtres "Decision" (en "E1") appliqués par l'utilisateur (ça peut être 0, 1, 2 ou 3 valeurs textes).
Car après, je fais différentes opérations sur l'ongelt (en fait, je reconstruis l'onglet) et pour finir, je voudrais ré-appliquer les filtres que l'utlisateur avait sélectionné.

=>
Etape 1:
L'utilisateur sélectionne 0 à 3 valeurs (4 à choix)

Etape 2:
La macro est déclenchée

Etape 3:
Au début du code, les valeurs filtrées par l'utilisateur sont reprises .
Mon idée:
  • Si "" est activé, alors variable FiltreNull = True
  • Si "Continuer" est activé, alors variable FiltreContinuer = True
  • Si "Attendre" est activé, alors variable FiltreAttendre = True
  • Si "Stopper" est activé, alors variable FiltreStopper= True
Etape 4: Tous les filtres sont re,mis à zéro
With Sheets("xxxxx")
.AutoFilterMode = False
.AutoFilter.ShowAllData
End With

Etape 5: Reste du code exécuté

Etape 6:
La cellule "E1" est refiltrée selon les variables
  • FiltreNull
  • FiltreContinuer
  • FiltreAttendre
  • FiltreStopper

Voilà.

Bon après-midi

Fab
 

Fab117

XLDnaute Impliqué
En fait j'ai pas donné les détails de l'étape 5, mais elle est assez complexe.
Il faudrait vraiment que je puisse récupérer les valeurs filtrées par l'utilisateur en E1 avant de dérouler le reste de mon code
 

Fab117

XLDnaute Impliqué
Pas de soucis, merci beaucoup d'avoir pris le temps de regarder.



Si quelqu'un d'autre a une proposition, je vais essayer de reformuler ma demande.

Dans mon onglet, j'ai un tableau structuré (T_Cible).

Dans la cellule "E1", j'ai un filtre.

L'utilisateur peut choisir entre :
  • ""
  • "Continuer"
  • "Attendre"
  • "Stopper"
A.png




Je souhaiterais récupérer les valeurs filtrées par l'utilisateur

Le nombre de choix possibles par l'utilisateur étant limité, je pensais définir une variable pour chacun et lui attribuer "True" si elle est sélectionnée par l'utilisateur et "False" dans le cas contraire.

Ça se résume à :

Valeur proposée dans le filtreVariable associéValeur de la variable si sélectionnée par l'utilisateur ("E1")Valeur de la variable si non sélectionnée par l'utilisateur ("E1")
""FiltreNullTrueFalse
"Continuer"FiltreContinuerTrueFalse
"Attendre"FiltreAttendreTrueFalse
"Stopper"FiltreStopperTrueFalse


J'attache un fichier exemple à ce message.



Merci d'avance.



Fab
 

Pièces jointes

  • Fichier Demo 01.xlsm
    14.7 KB · Affichages: 0

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA