Bonjour
@mapomme et
@Jacky67 ,
Merci pour vos réponses rapides !
Désolée mapomme, mon besoin correspond plus à ce que Jacky a réalisé
Je voulais juste revenir sur certains point, pour être certaine d'avoir bien compris et ne pas exploiter votre travail sans réfléchir.
Je vous mets mon morceau de code largement inspiré de ce qu'a fait Jacky :
Sub Filtrage()
On Error Resume Next
Application.ScreenUpdating = Fasle
'Evite la mise à jour de l'écran pendant l'exécution de la macro => Gain de temps
Dim ChoixLabo
Dim ChoixArmoire
'Déclaration de variables
With Feuil1
.AutoFilterMode = False
'Retire tous les filtres => Toutes les colonnes développées en entier
ChoixLabo = Range("D2").Value
ChoixArmoire = Range("F2").Value
'MsgBox (ChoixLabo)
'MsgBox (ChoixArmoire)
'MsgBox ("plage" & ChoixLabo)
'Tests lors de la rédaction du code
Range("plage" & ChoixLabo).AutoFilter
'Va filtrer sur la plage de données correspondant au labo sélectionné en D2
Field = Application.Match(ChoixArmoire, Range("plage" & ChoixLabo).Resize(1), 0)
'Applique le filtre sur la colonne correspondant à l'armoire sélectionnée en F2
Criteria1 = "<>"
'Ne garde que les non-vides
'Application.Goto (A4)
End With
Application.ScreenUpdating = True
'Mise à jour de l'écran
End Sub
J'ai quelques questions
1) Pourquoi Feuil1 ?
2) Pourquoi Application. en début de certaines commandes ? J'ai déjà vu des Function. ou même rien, mais je connais pas la différence
3) La code tourne (pas de problème au débogage, même en pas à pas), par contre le filtre ne se fait pas. Le filtre se crée (en tête des colonnes choisies, tout bien comme il faut) mais toutes les lignes restent visibles, pas seulement les non-vides
J'ai un message d'erreur quand j'écris field:= ou criteria1:= (c'est pour ça juste =)
J'espère être assez claire,
En tout cas merci beaucoup !
Ste Barbe