Re,
C'est bien ce que je disais avant. Malgré ce que tu disais les macros n'étaient pas activées ...
Tout d'abord que puis-je faire pour que cela marche sans sélectionner : "Activer toutes les Macros"
car ce paramètre est déconseillé car potentiellement dangereux.
Le code ne fonctionnera que si les macros sont activées. La solution de sécurité est de cocher la case "activer les macros avec notification". De cette sorte, à chaque ouverture d'un fichier excel comportant des macros, excel demandera une confirmation d'activation.
Toutefois, il faut savoir que celui qui refuse l'activation des macros ou ne coche pas cette case "activer les macros" ou a son excel configuré à la sécurité maximum, pourra ouvrir le fichier sans les macros activées et donc avec les filtres du TCD accessibles. Ce qui n'est pas recherché...
A toi de voir mais sache que le niveau de sécurité des macros n'est pas lié à une option du fichier mais à Excel.
Car j'ai testé lorsque je supprime le filtre du rapport et que je le refais glisser, même si le filtre est désactivé tout s'affiche.
Une solution rapide serait de créer une deuxième macro à mettre en dessous de l'autre avec les mêmes instructions :
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim pf As Byte, Rf As Byte, cf As Byte
...les instructions
End Sub
On peut aussi complexifier le code pour qu'il soit impossible de bouger les champs.
Tout cela à voir en fonction de ce qui est dit plus haut au sujet de l'option "activation des macros"