Bonjour,
Je suis en train de faire une userform qui regroupe plusieurs fonctions et notamment une fonction de tri.
J'ai enregistré la fonction de tri, je l'ai adapté dans mon code, etc, le code fonctionne, je commence à l'adapter à chaque possibilité, mais là je commence à me rendre compte que cela va prendre pas mal de place :
J'ai 4 filtres, si l'utilisateur en veux 1, 4 possibilités. (0,7 ou 0,8 ou 0,9 ou 1)
si l'utilisateur en veux 2, 6 possibilités (0,7/0,8 ou 0,7/0,9 ou 0,7/1 ou 0,8/0,9 ou 0,8/1 ou 0,9/1)
si l'utilisateur en veux 3, 4 possibilités (0,7/,0,8/0,9 ou 0,7/0,8/1 ou 0,7/0,9/1 ou 0,8/0,9/1)
si l'utilisateur en veux 4, 1 possibilité (0,7/0,8/0,9/1)
Je sais, je me complique la vie pour rien, placer un filtre sur une colonne mais j'ai des "Vieux de la vieille" qui ont leurs habitudes et pas évident de leur en faire démordre.
Du coup je voulais savoir si niveau code il y a moyen d'alléger ou est-ce que je reste sur du codage dinosaure ? De ce genre :
Macro
Sub Capacity1()
'
' Macro filtre capacité 1V
Range("C4").Select
Selection.AutoFilter
ActiveSheet.Range("$A$4:$R$64").AutoFilter Field:=3, Criteria1:= _
"capacity at 1V"
End Sub
Sub CapacityAll()
'
' Macro filtre capacité, toute tension confondue
ActiveSheet.Range("$A$4:$R$64").AutoFilter Field:=3, Criteria1:=Array( _
"capacity at 0,7V", "capacity at 0,8V", "capacity at 0,9V", "capacity at 1V"), Operator:= _
xlFilterValues
End Sub
+ Test (au début j'avais fait une liste déroulante pour tester)
Private Sub cmdCapa_Click()
If cboCapa = "0,7V" Then
Capacity7
ElseIf cboCapa = "0,8V" Then
Capacity8
ElseIf cboCapa = "0,9V" Then
Capacity9
ElseIf cboCapa = "1V" Then
Capacity1
ElseIf cboCapa = "Toutes" Then
CapacityAll
End If
End Sub
Merci de vos conseils.