Pour info un extrait de MS Docs :
Comme nous l’avons vu plus haut, il existe deux nouvelles constantes de compilation conditionnelle : VBA7 et Win64. Pour garantir la compatibilité descendante avec les versions précédentes de Microsoft Office, la constante VBA7 est utilisée (il s’agit du cas le plus courant) afin d’empêcher le code 64 bits de s’exécuter dans la version antérieure de Microsoft Office. Pour le code qui diffère entre la version 32 bits et la version 64 bits, tel que l’appel d’une API mathématique qui utilise LongLong pour sa version 64 bits et Long pour sa version 32 bits, la constante Win64 est utilisée. Le code suivant illustre l’utilisation de ces deux constantes.
#if Win64 then
Declare PtrSafe Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong
#else
Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long
#end if
#if VBA7 then
Declare PtrSafe Sub MessageBeep Lib "User32" (ByVal N AS Long)
#else
Declare Sub MessageBeep Lib "User32" (ByVal N AS Long)
#end if
Pour résumer, si vous écrivez du code 64 bits et que prévoyez de l’utiliser dans des versions précédentes de Microsoft Office, il faut utiliser la constante de compilation conditionnelle VBA7. En revanche, si vous écrivez du code 32 bits dans Office 2010, ce code fonctionne tel que dans les versions précédentes d’Microsoft Office sans la constante de compilation. Si vous souhaitez être sûr d’utiliser des instructions 32 bits pour les versions 32 bits et des instructions 64 bits pour les versions 64 bits, la meilleure solution consiste à utiliser la constante de compilation conditionnelle Win64.
Donc en fonction de l'utilité de la "SUB" ou "Function" appelée il faut soit gérer le Win64 Soit le VBA7.
Mais bon tout cela reste obscure pour moi, c'est différentes condition pour le code VBA m'a été donné il y a maintenant plus de 6 ans, lorsqu'une de mes applications est "arrivée" dans les mains de "programmeurs" d'une boite et qu'ils ont du faire les modifications pour une compatibilité. le message doit être visible ici sur le site mais je ne sais plus où à moins que ce soit par email... Toujours est-il qu'il y avait VBA7 et Win64 mais au vu de ce qu'il y a d'écrit ci dessus alors oui le Win64 est "trop" spécifique pour en avoir besoin à chaque fois. Je rajouterai que bon nombre de site parle du LongPtr pour les variables entre parenthèse mais long pour la dimension de la "function" ou de la "sub".
@ bientôt
LouReeD