Créer des filtres par UserForm
Résolu
Looping38
Messages postés
91
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite créer des filtres par un userform.
Il y aura 6 filtres qui iront masquer des colonnes si la valeur d'une ligne (pour chaque colonne) est dans une fourchette de valeur par rapport au niveau sélectionné par le OptionButton.
Ci-dessous le Userform

Sur l'exemple ci-dessus:
La première ligne niveau 3 cochée devra masquer toutes les colonnes à partir de la colonne G (ou 7) et jusqu'à 100 de la ligne 14 dont la valeur est < à 300 et > à 399
La 2ème ligne le niveau 2 cochée devra masquer toutes les colonnes à partir de la colonne G (ou 7) et jusqu'à 100 de la ligne 34 dont la valeur est < à 200 et > à 299
...
Dans l'idéal, je souhaiterais avoir un indicateur du nombre de colonne encore visibles au fur et à mesure. J'ai actuellement 83 colonnes au départ, mais cela peut évoluer.
Merci de votre retour.
Looping
Je souhaite créer des filtres par un userform.
Il y aura 6 filtres qui iront masquer des colonnes si la valeur d'une ligne (pour chaque colonne) est dans une fourchette de valeur par rapport au niveau sélectionné par le OptionButton.
Ci-dessous le Userform

Sur l'exemple ci-dessus:
La première ligne niveau 3 cochée devra masquer toutes les colonnes à partir de la colonne G (ou 7) et jusqu'à 100 de la ligne 14 dont la valeur est < à 300 et > à 399
La 2ème ligne le niveau 2 cochée devra masquer toutes les colonnes à partir de la colonne G (ou 7) et jusqu'à 100 de la ligne 34 dont la valeur est < à 200 et > à 299
...
Dans l'idéal, je souhaiterais avoir un indicateur du nombre de colonne encore visibles au fur et à mesure. J'ai actuellement 83 colonnes au départ, mais cela peut évoluer.
Merci de votre retour.
Looping
A voir également:
- Créer des filtres par UserForm
- Créer un lien pour partager des photos - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
17 réponses
Ok je regarde cela dès que possible
Question : Il y a des colonnes Frais réels, doivent elles rester démasquées tout le temps ?
Question : Il y a des colonnes Frais réels, doivent elles rester démasquées tout le temps ?
Regarde si comme cela ça te convient
https://mon-partage.fr/f/flRLbpF3/
J'ai du rectifier des cellules qui au lieu d'avoir seulement un nombre avaient aussi du texte(125% BR par ex)
Pour l'instant les 2 lignes dans la macro pour Fourchette de prix sont shuntées car il n'y a que des REF en ligne 98
Les valeurs Min et Max sont modifiables dans les Propriétés des SpinButton, ainsi que le pas d’incrémentation (SmallChange)
Pour Fourchette de prix ne connaissant par les min/max j'ai mis nombres bidon
Cdlmnt
Via
https://mon-partage.fr/f/flRLbpF3/
J'ai du rectifier des cellules qui au lieu d'avoir seulement un nombre avaient aussi du texte(125% BR par ex)
Pour l'instant les 2 lignes dans la macro pour Fourchette de prix sont shuntées car il n'y a que des REF en ligne 98
Les valeurs Min et Max sont modifiables dans les Propriétés des SpinButton, ainsi que le pas d’incrémentation (SmallChange)
Pour Fourchette de prix ne connaissant par les min/max j'ai mis nombres bidon
Cdlmnt
Via
Bonjour Via55.
Je suis super désolé de te répondre si tardivement.
Je n'ai pas pu exploiter ta solution, entre-temps, j'ai développé d'autres fonctions sur l'excel...
J'ai mal grès tout utilisé pas mal de bouts de ta macro.
Je te remercie encore pour ta patience et ton aide.
Si cela t’intéresse, en MP, je peux te transmettre une version de l'outil développé.
Merci encore
Je suis super désolé de te répondre si tardivement.
Je n'ai pas pu exploiter ta solution, entre-temps, j'ai développé d'autres fonctions sur l'excel...
J'ai mal grès tout utilisé pas mal de bouts de ta macro.
Je te remercie encore pour ta patience et ton aide.
Si cela t’intéresse, en MP, je peux te transmettre une version de l'outil développé.
Merci encore
Bonjour Looping
Il faut partir de ton fichier pour établir un code VBA adapté
Poste un exemple de ton fichier (anonymé si nécessaire) sur mon-partage.fr, fais créer un lien que tu copies et reviens coller ici
Cdlmnt
Via
Il faut partir de ton fichier pour établir un code VBA adapté
Poste un exemple de ton fichier (anonymé si nécessaire) sur mon-partage.fr, fais créer un lien que tu copies et reviens coller ici
Cdlmnt
Via
Bonjour Via et merci de ton intérêt pour ma problématique.
le lien vers le fichier.
Tu aura des bug au lancement, c'est normal, j'ai enlevé les 25 autres onglets du classeur...
Il s'agit du UserForm 6
Merci encore
https://www.cjoint.com/c/HGgf4VfpM0o
le lien vers le fichier.
Tu aura des bug au lancement, c'est normal, j'ai enlevé les 25 autres onglets du classeur...
Il s'agit du UserForm 6
Merci encore
https://www.cjoint.com/c/HGgf4VfpM0o
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Looping
1) nommer tous les boutons options dans l'ordre
par ex ceux d'hospitalisation hc1, hc2....hc5, ceux de médecine conventionnelle mc1...mc5
2) Macro à associer au bouton Appliquer de l'UF
Je te laisse le soin de la compléter pour les autres Option Button
3) Macro à associer à un bouton sur la feuille pour rendre visible toutes les colonnes :
Par contre je ne comprends ton histoire de filtre supplémentaire, il devrait remplacer les Options BUtton ou être en plus ? et sur quels critères ?
Cdlmnt
Via
1) nommer tous les boutons options dans l'ordre
par ex ceux d'hospitalisation hc1, hc2....hc5, ceux de médecine conventionnelle mc1...mc5
2) Macro à associer au bouton Appliquer de l'UF
Private Sub CommandButton1_Click() Application.ScreenUpdating = False Dim DernCol As Integer DernCol = ActiveSheet.Cells(14, Cells.Columns.Count).End(xlToLeft).Column nbrecol = DernCol - 6 For n = 7 To DernCol For x = 1 To 5 If Me.Controls("hc" & x) = True Then If Cells(14, n) < x Or Cells(14, n) >= x + 1 Then Columns(n).Hidden = True: nbrecol = nbrecol - 1 End If If Me.Controls("mc" & x) = True Then If Cells(34, n) < x Or Cells(14, n) >= x + 1 Then Columns(n).Hidden = True: nbrecol = nbrecol - 1 End If 'mettre ici les IF pour les autres option button Next x Next n Application.ScreenUpdating = True MsgBox "Reste " & nbrecol & " colonnes" End Sub
Je te laisse le soin de la compléter pour les autres Option Button
3) Macro à associer à un bouton sur la feuille pour rendre visible toutes les colonnes :
Application.ScreenUpdating = False Dim DernCol As Integer DernCol = ActiveSheet.Cells(14, Cells.Columns.Count).End(xlToLeft).Column For n = 7 To DernCol Columns(n).Hidden = False Next Application.ScreenUpdating = True
Par contre je ne comprends ton histoire de filtre supplémentaire, il devrait remplacer les Options BUtton ou être en plus ? et sur quels critères ?
Cdlmnt
Via
Bonjour Via.
J'ai fais l'ensemble des modifications.
J'ai un souci :
La valeur X est toujours de 1 à 5, alors que je souhaite que la valeur soit dans une fourchette (d'où ma question précédente de curseur) en fonction des données de la ligne à filtrer.
Par exemple, dans la ligne 14, les garanties sont exprimées en % du BR, le format de la cellule est automatisé. Si je coche le OptionButton sur 2, je souhaite filtrer uniquement les colonnes de la ligne qui ont une valeur entre 200% et 300%.
Pour la 3ème sélection, je souhaite en cochant 3, avoir les colonnes ayant des garanties entre 150 € et 200 €....
Merci d'avance
J'ai fais l'ensemble des modifications.
J'ai un souci :
La valeur X est toujours de 1 à 5, alors que je souhaite que la valeur soit dans une fourchette (d'où ma question précédente de curseur) en fonction des données de la ligne à filtrer.
Par exemple, dans la ligne 14, les garanties sont exprimées en % du BR, le format de la cellule est automatisé. Si je coche le OptionButton sur 2, je souhaite filtrer uniquement les colonnes de la ligne qui ont une valeur entre 200% et 300%.
Pour la 3ème sélection, je souhaite en cochant 3, avoir les colonnes ayant des garanties entre 150 € et 200 €....
Merci d'avance
Malgré mon adaptation, j'ai quand même des bugs.
Le nombre de formules restantes est pas bon.
Effectivement, le remplacement des OptionButton par des curseurs serait la bonne chose.
Comme sur ce lien pour la partie tarif : https://www.vous-assurer.fr/mutuelle-sante-offres-detaillees?uuid=ddbb8bfd-6675-4278-bd78-a9a7839bfcdc
Le nombre de formules restantes est pas bon.
Effectivement, le remplacement des OptionButton par des curseurs serait la bonne chose.
Comme sur ce lien pour la partie tarif : https://www.vous-assurer.fr/mutuelle-sante-offres-detaillees?uuid=ddbb8bfd-6675-4278-bd78-a9a7839bfcdc
Bonjour Via et UN GRAND MERCI pour cette collaboration à mon travail.
Je suis sur un ferry la journée de demain, j'aurais le temps de travailler dessus. Par contre, je serais sans connexion.
Je te tiens au courant Mardi dans la journée.
Cela correspond manifestement à mon besoin.
Je me demande s'il ne va pas y avoir de conflit avec la macro "Bouton23_Cliquer" qui permettait de masquer les solutions que je ne souhaite pas présenter.
Un grand merci encore.
Looping
Je suis sur un ferry la journée de demain, j'aurais le temps de travailler dessus. Par contre, je serais sans connexion.
Je te tiens au courant Mardi dans la journée.
Cela correspond manifestement à mon besoin.
Je me demande s'il ne va pas y avoir de conflit avec la macro "Bouton23_Cliquer" qui permettait de masquer les solutions que je ne souhaite pas présenter.
Un grand merci encore.
Looping
Ah tu ne m'en avais pas parlé !
Remplace le If de la macro du bouton 23 par
If Cells(123, x) <> "x" Then Columns(x).Hidden = True
et ça ne devrais plus poser de problème
Par contre j'avais désactivé des parties de tes macros pour avoir accès au ruban et j'ai oublié de réactiver, ne t’inquiète pas ce n’est pas un bug!
Et je m'aperçois que j'ai laisé dans 2 lignes de la macro associée à la nouvelle userform 2 instructions Msgbox que j’avais mise pour contrôler et qu'il faut supprimer bien sûr
Cdlmnt
Via
Remplace le If de la macro du bouton 23 par
If Cells(123, x) <> "x" Then Columns(x).Hidden = True
et ça ne devrais plus poser de problème
Par contre j'avais désactivé des parties de tes macros pour avoir accès au ruban et j'ai oublié de réactiver, ne t’inquiète pas ce n’est pas un bug!
Et je m'aperçois que j'ai laisé dans 2 lignes de la macro associée à la nouvelle userform 2 instructions Msgbox que j’avais mise pour contrôler et qu'il faut supprimer bien sûr
Cdlmnt
Via
Re bonjour.
Avant d'embarquer dans le bateau, pour que cela soit compatible avec ma première fonction (Les X dans les cases), je pense qu'il faudrait que les filtres qui excluent les colonnes y mettent un X ligne 123 et lancent la macro "Bouton23_Cliquer". Comme ça plus de soucis.
Si tu as ce message d'ici mon départ (15h)...
Merci d'avance.
Avant d'embarquer dans le bateau, pour que cela soit compatible avec ma première fonction (Les X dans les cases), je pense qu'il faudrait que les filtres qui excluent les colonnes y mettent un X ligne 123 et lancent la macro "Bouton23_Cliquer". Comme ça plus de soucis.
Si tu as ce message d'ici mon départ (15h)...
Merci d'avance.
Pour rappel, le fait de mettre un X ligne 23 permet de cacher manuellement les colonnes en question.Il s'agit d'un pré-tri.
Bonjour Via55.
Je suis super désolé de te répondre si tardivement.
Je n'ai pas pu exploiter ta solution, entre-temps, j'ai développé d'autres fonctions sur l'excel...
J'ai mal grès tout utilisé pas mal de bouts de ta macro.
Je te remercie encore pour ta patience et ton aide.
Si cela t’intéresse, en MP, je peux te transmettre une version de l'outil développé.
Merci encore.
Je suis super désolé de te répondre si tardivement.
Je n'ai pas pu exploiter ta solution, entre-temps, j'ai développé d'autres fonctions sur l'excel...
J'ai mal grès tout utilisé pas mal de bouts de ta macro.
Je te remercie encore pour ta patience et ton aide.
Si cela t’intéresse, en MP, je peux te transmettre une version de l'outil développé.
Merci encore.
Le valeur Frais réels sont les valeurs les plus hautes.
Merci.
Suis-je assez clair ?
Merci