Bonjour Billysteph,
Oui c'est faisable avec un code vba.
Voici un extrait de code que tu devrais pouvoir adapter :
' je me place sur la liste filtrée
Range("c3").Select
' Je remets à 0 le filtre automatique
Sheets("Données").Select
Range("A3").Select
Selection.AutoFilter
Selection.AutoFilter
' Je trie d'abord les données dans l'ordre chronologique de la colonne C
Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Header:=xlYes
' Je filtre sur la valeur du matricule qui est une cellule nommée de mon classeur puis sur le code "Activité"
Selection.AutoFilter Field:=1, Criteria1:=Range("matricule").Value
Selection.AutoFilter Field:=5, Criteria1:="=Activité"
Range("D65536").Select
' Je détermine le numéro de la dernière ligne que j'impute à la variable L
L = Selection.End(xlUp).Row
' Si L est égal à 3, c'est qu'il n'y a pas de données pour ce matricule
If L = 3 Then Call RAZFiltre: Sheets("Calcul").Select: _
Range("B3").Select: _
Z = MsgBox("Pas de données pour ce matricule", vbOKOnly, "Pas de données"): Exit Sub
' Sinon, je sélectionne les données "Du" à "Jours" de la ligne L à la _
1ère ligne de données
Range("C4:I" & L).Select
Selection.Copy
...
A plus