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 SubVoici 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: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							 
	 
 
		