Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Compatibilité VBA Excel 2003 > Excel 2000

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

spitfire378

XLDnaute Occasionnel
Bonjour a tous, voila j'ai créé un outil statistique en VBA sur Excel 2003 pour ma responsable qui elle possède Excel 2000. Lorsque j'ai essayé de faire tourner mon programme sur son ordinateur, Excel 2000 m'a indiqué des tas d'erreurs alors que ca marchait parfaitement sur Excel 2003. Est-ce que Excel 2000 n'est pas compatible avec Excel 2003? Enfin est-il possible de solutionner ce probleme sans avoir a installer sur son ordinateur excel 2003 (L'ordinateur est sur un domaine d'entreprise, qui possède une licence multi-utilisateurs pour 2000 mais pas pour 2003). Merci d'avance.
 
Re : Compatibilité VBA Excel 2003 > Excel 2000

Bonjour

Il y a quelques problèmes sur les tris par exemple (là il est obligatoire de faire les modifs) mais sinon ton programme en 2003 devrait fonctionner sur 2000 sans problème

Vérifies peut-être tout simplement les références sur son poste
 
Re : Compatibilité VBA Excel 2003 > Excel 2000

Bonjour spitfire378,
Pascal 🙂,

Au cas où tu veux faire une seule macro compatible excel2000/2003, ça donne ceci pour un tri par exemple (macro "essai" à executer).

Code:
[SIZE=3][FONT=Times New Roman]Sub essai()[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]If Left(Application.Version, 1) = 9 Then[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] Call v2000[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]Else: Call v2003[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]End If[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]End Sub[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]Sub v2000()[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]Range("A1:A7").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]                   xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]End Sub[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]Sub v2003()[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]Range("A1:A7").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]                   xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]                   [B][COLOR=blue]DataOption1:=xlSortNormal[/COLOR][/B][/FONT][/SIZE]
[FONT=Times New Roman][SIZE=3]End Sub[/SIZE][/FONT]

En bleu, ce qui est en plus dans excel2003.
😉
 
Re : Compatibilité VBA Excel 2003 > Excel 2000

Bonjour à tous,

en voilà un sujet intéressant !
Est-ce que certains ont déjà utilisé des #IF pour éviter la compilation de code en fonction de la version d'Excel (ou d'autres critères) ?
 
Re : Compatibilité VBA Excel 2003 > Excel 2000

bonjour à tous
si je puis me permettre, petite fonction pour ceux que ça interresse

Code:
Public Function FAnneeVersionExcel()
FAnneeVersionExcel = 0: V = Int(Val(Application.Version))
Select Case V
  Case 8: FAnneeVersionExcel = 1997
  Case 9: FAnneeVersionExcel = 2000
 Case 10: FAnneeVersionExcel = 2001
 Case 11: FAnneeVersionExcel = 2003
 Case 12: FAnneeVersionExcel = 2007
End Select
End Function

Roland
 
Re : Compatibilité VBA Excel 2003 > Excel 2000

Bonjour Roland, tototiti,


Si je peux me permettre:

Case 10: FAnneeVersionExcel = 2002 😉.
 
Re : Compatibilité VBA Excel 2003 > Excel 2000

Bonjour spitfire378, skoobi, tototiti2008, Roland_M, le Forum,

Bonjour à tous,

en voilà un sujet intéressant !
Est-ce que certains ont déjà utilisé des #IF pour éviter la compilation de code en fonction de la version d'Excel (ou d'autres critères) ?
Malheureusement, les constantes de compilation conditionnelle sont beaucoup trop limitées.😱
A ma connaissance, tu pourras différencier la seule version XL97 des autres versions Excel supérieures grâce à la constante Vba6, mais pour distinguer les versions Excel, ça s'arrête là ! Cette constante détecte la version VBA en fait. Impossible d'utiliser la compilation conditionnelle pour différencier XL2000 de XL2003 par exemple. Tu pourras éventuellement te servir aussi de la constante Mac pour détecter l'environnement du même nom.

Et si certains ont trouvé une solution pour distinguer XL2000 de XL2002 par ce biais de compilation conditionnelle, je suis preneur ! 🙂

Pour info, il existe encore d'autres petites différences entre XL2000 et versions suivantes : j'ai découvert récemment l'apparition de nouveaux membres XlPasteType pour la méthode PasteSpecial par exemple.

Pour ma part, le seul moyen de contourner ces problèmes et de maintenir le fonctionnement d'une application sur multi-versions Excel, reste tout d'abord de cibler les dysfonctionnements et ensuite, d'avoir recours à des gestionnaires d'erreur judicieusement placés (peut-être que je me trompe, mais il m'a semblé que certains sur ce forum étaient allergiques aux gestionnaires d'erreurs... je ne vois pas pourquoi : le gestionnaire d'erreurs reste un outil à notre disposition comme les autres dans VBA !).

Cordialement,
 
Dernière édition:
Re : Compatibilité VBA Excel 2003 > Excel 2000

Rebonjour a tous, alors j'ai vérifié mes références, de ce coté la ca allait. J'ai été simplement obligé de réadapter mon code a la fois pour le tri, et pour les graphiques et ca marche parfaitement. Merci a vous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…