Re : Compatibilité VBA entre Exel 2003 et 2007
Bonjour le fil
,
De mon expérience personnelle, je dirais que le test de version ne sera pas la panacée
.
Le problème qui va se présenter est que dès que t'utilises une macro, j'ai bien l'impression (en tout cas, j'ai déjà rencontré le problème et je pense qu'il vient de là) que VBA compile l'intégralité des codes présents... Donc si l'instruction qui n'existe pas dans une version ou une autre peux être assimilée à une variable, ça passera, mais dans le cas contraire, il te mettra un message d'erreur même si ce que tu as déclenché n'utilises pas la ligne mise en cause
...
Donc soit tu t'arranges pour avoir un code "full compatible", ce qui est souvent possible en rusant un peu, soit, mais c'est une solution qui me parrait très compliquée, tu mets tes codes dans une feuille cachée et tu copie celui de la bonne version à l'ouverture dans tes modules
...
Plutôt que ce qui fonctionne sous 2003, c'est plutôt ce qui ne fonctionne pas sous 2003 qu'il faut lister
...
Liste non exhaustive :
Les tris sont différents, illimités sous 2007, limités à 3 sous 2003, donc la syntaxe 2007 utilises Sort.Add alors que 2003 utilise Key1:. Mais du tri rédigé pour 2003 fonctionne sous 2007
.
Idem pour les MFC.
La gestion des tableaux aussi est très différente, et là, ça peux coincer. Mieux vaux travailler sans notion de tableau
.
Un certain nombre de formules de feuilles n'éxistait pas sous 2003, donc méfiance
...
Il y a quand même peu d'instructions supprimées dans 2007 par rapport à 2003, mais tu peux en avoir la liste dans l'aide, ainsi que la liste des nouvelles fonctionalités de 2007/2010. Je sais que par exemple FileSearch est maintenant masquée (théoriquement utilisable mais déconseillé), mais ça me parrait logique, si l'indexation automatique d'XP est débranchée, elle ne fonctionnera pas de toute façon
...
Voilà, bon courage à toi
Ajout : en ce qui concerne 2010, oui, il y a très peu de problème de compatibilité entre les 2. Mais attention, et là je parle en connaissance de cause, il y a 2010 32 bits et 2010 64 bits, et là, on est loin du "full compatible" si on utilise des DLL...