Bonjour,
Il y a quelques temps, je suis venue vous demander de l'aide pour affiner mes scripts pour filtrer sur 2 critères.
Sujet ici :
Afficher filtres appliqués par macro dans la cellule B3 directement et non par F5 puis Réinitialiser
J'ai pu obtenir la solution grâce à @Marcel32, que je remercie encore.
Aujourd'hui, il me faudrait reprendre ce script pour l'évoluer sur + de 2 critères... Du coup, mon script actuel ne peut plus fonctionner apparemment...
N'étant pas experte, pourriez-vous m'aiguiller svp vers la meilleure solution svp ?
Toujours en VBA car l'utilisatrice finale ne saura pas utiliser les filtres automatiques, d'où ce besoin d'automatisation VBA par une boite de dialogue qui doit se succéder (ou en une seule pourquoi pas où elle ajoute par ex) où elle rentre une partie de ce qui est à exclure, autant de fois qu'il y en a puis doit obtenir le résultat.
Exemple de ce que j'aimerais obtenir :
(du moins, quelque chose dans ce style)
Les 2 scripts actuels :
Voici le fichier d'exemple d'origine avec ces deux scripts qui était fait pour deux critères.
Merci encore de votre aide.
Bonne soirée.
Virginie
Il y a quelques temps, je suis venue vous demander de l'aide pour affiner mes scripts pour filtrer sur 2 critères.
Sujet ici :
Afficher filtres appliqués par macro dans la cellule B3 directement et non par F5 puis Réinitialiser
J'ai pu obtenir la solution grâce à @Marcel32, que je remercie encore.
Aujourd'hui, il me faudrait reprendre ce script pour l'évoluer sur + de 2 critères... Du coup, mon script actuel ne peut plus fonctionner apparemment...
N'étant pas experte, pourriez-vous m'aiguiller svp vers la meilleure solution svp ?
Toujours en VBA car l'utilisatrice finale ne saura pas utiliser les filtres automatiques, d'où ce besoin d'automatisation VBA par une boite de dialogue qui doit se succéder (ou en une seule pourquoi pas où elle ajoute par ex) où elle rentre une partie de ce qui est à exclure, autant de fois qu'il y en a puis doit obtenir le résultat.
Exemple de ce que j'aimerais obtenir :
(du moins, quelque chose dans ce style)
- Elle clique sur le bouton "contre-indications"
- rentrer la 1ère Contre-indication : elle écrit tout ou une partie (ulc pour ulcère par ex)
- rentrer la 2ème contre-indication : elle écrit là encore une partie
- ajouter une autre contre-indication : ...
- ==> rentrer la contre-indication :
Les 2 scripts actuels :
VB:
Sub Sauf()
'Touche de raccourci du clavier: Ctrl+q
'variables
Dim plage As Range
Dim filtre As String
'filtre sur plage sur feuille 1, tableau de la A6 à G6
Set plage = Sheets(1).Cells(4, 3).CurrentRegion
'saisie
filtre1 = InputBox("Écrire la 1ère Contre-indication :" & Chr(13) & Chr(10) & "- Soit le terme entier," & Chr(13) & Chr(10) & "- Soit une partie (par ex : ulc pour ulcère)", "Contre-Indication 1")
filtre2 = InputBox("Écrire la 2ème Contre-indication :" & Chr(13) & Chr(10) & "- Soit le terme entier," & Chr(13) & Chr(10) & "- Soit une partie", "Contre-Indication 2")
If filtre1 <> "" Then filtre1 = "*" & filtre1 & "*"
If filtre2 <> "" Then filtre2 = "*" & filtre2 & "*"
'réinitialisation des filtres
plage.AutoFilter
'application de la macro
plage.AutoFilter Field:=3, Criteria1:="<>" & filtre1, Operator:=xlAnd, Criteria2:="<>" & filtre2
'afficher en B1 le fitre 1 qu'on nomme F1 et le filtre 2 F2
Range("B1") = "Contre-Indications : " & filtre1 & " - " & filtre2
End Sub
Sub Réinitialiser()
'Dans la feuille 1, on remet les filtres à zéro
With Sheets("Feuil1")
If .AutoFilterMode And .FilterMode Then .ShowAllData
'on vide la cellule B1 où sont affichés les filtres appliqués
Range("B1") = "Contre-Indications : " & ""
End With
End Sub
Voici le fichier d'exemple d'origine avec ces deux scripts qui était fait pour deux critères.
Merci encore de votre aide.
Bonne soirée.
Virginie
Pièces jointes
Dernière édition: