Compatibilité office Xp VS Office 2000

  • Initiateur de la discussion antoine
  • Date de début
A

antoine

Guest
Bonsoir le forum, il est 17h00 et j'aimerais emmener un peu de boulot chez moi ( non pas que je suis un fan, mais j'ai peur d'etre a la bourre ... )

le problème c'est que j'ai déja fait l'expérience hier et ... une application qui marche sur office 2000 au boulot plante sur pas mal de chose sur ma version de l'office XP : particulèrement sur mid(), il ne la reconnait plus et pensse que c une varible tableau non déclarée ( arg ! )

si quelqu'un en sait plus sur le passage de code VBA de office 2000 a office XP ....ça m'interesse !

Bonne soirée

antoine
 
J

Jacquesderyes

Guest
Bonsoir Antoine et les amis du forum.

J'ai réalisé plusieurs programmes sous office 2000 qui marchent très bien.Par contre lorsque j'ai voulu les faire tourner sous excel XP celà plantait très souvent!Par éxemple du code utilisant la fonction Format devait être précisé VBA.Format pour que celà fonctionne sous XP!et çà faut le savoir!!!!!
N'étant pas un expert j'ai baissé les bras et suis retouné sous 2000!
Chose curieuse:les programmes écrits sous XP fonctionnent parfaitement sous 2000!!!
Peut-être que certains spécialistes du forum ont été confrontés au même pb alors il serait intéressant s'ils pouvaient nous dire ce qu'ils en pensent et quelles sont les remèdes!
Bien cordialement.
Jacques de ryes
 
T

Ti

Guest
Moi je passe en permanence d'Excel 2000 à Excel XP et je n'ai pratiquement jamais de problème : j'en ai eu un une fois avec une option ( je ne sais plus laquelle) qui changeait de nom entre XL 2000 et XL XP (il fallait rajouter un s sur XP) mais c'est à peu près tout. En tout cas jamais de problème de compatibilité ascendante ! Pour redescendre de XP à 2000, il faut faire attention de ne pas utiliser de nouvelles méthodes et propriétés : ainsi la semaine dernière, j'ai utilisé Application.DecimalSeparator qui plantait dans XL 2000, mais un coup de compilation nous montre tout de suite ce qu'il faut changer.

En ce qui concerne les erreurs avec Mid, Left etc, cela n'est pas propre à Excel XP, la solution est simple, il suffit d'aller dans l'éditeur VBA , dans le menu Outils...Références, et là, de repérer les références cochées mais marquées comme manquantes. Généralement, c'est un ancien contrôle qui n'est pas présent dans la nouvelle version, mais on peut toujours le retrouver dans sa nouvelle version, il suffit alors de cocher cette version et tout rentre dans l'ordre. Idem pour l'obligation de mettre VBA.Format, il faut aller voir dans les références, c'est là qu'est le problème.

Vous devez avoir coché par défaut :
Visual Basic For Applications
Microsoft Excel 10.0 Obect Library
OLE Automation
Microsoft Office 10.0 Object Library (celui ne l'est pas toujours par défaut)

Personnellement je suis très content d'être passé à XP et je regrette de ne pas pouvoir utiliser ses nouvelles méthodes (par exemple les nouvelles options de recherche, très puissantes) dans certains de mes programmes, afin de garder la compatibilité descendante.
Pour ceux qui utilisent Excel XP dans le cadre de leur boulot, sur un parc uniquement XP, je vous conseille d'aller voir la liste. Dans l'aide VBA, vous allez dans le volet "Aide intuitive", vous tapez "nouvelles méthodes", ensuite en cliquant sur "Voir aussi", on peut avoir les nouvelles propriétés, les nouveaux objets etc.

Enfin Excel XP est plus sûr et plus fiable : il ne présente jamais l'écran bleu de la mort et vous permet presque toujours de récupérer votre boulot quand ça plante, certaines méthodes sont plus fiables que dans Excel 2000. Par exemple faites un filtre en VBA sur une plage au format Date pour renvoyer une date (et surtout une heure) précise, Excel 2000 ne renvoie rien du tout, alors que ça fonctionne bien dans Excel XP.
Idem dans d'autres contextes que j'oublie sur l'instant, Excel XP sait être beaucoup plus souple que son prédecesseur. En fait le seul programme que je connaisse qui tourne mieux dans Excel 2000 que dans XP, c'est mon Acyd, mais ça tient à d'autres raisons !

Donc en conclusion, je dirai qu'on a beaucoup critiqué cette version XP à ses débuts, mais je crois que c'était injustifié, même si, du point de vue du programmeur, il lui manque encore beaucoup de choses, mais, on le sait bien, les programmeurs ne sont jamais satisfaits de leurs outils !
 
J

Jacquesderyes

Guest
Bonsoir Antoine,Ti et les amis du forum

Merci Ti d'avoir donné une longue et très intéressante suite au fil d'Antoine.
Il va falloir que je révise ma copie et envisager de redonner une chance à XP afin quil puisse se justifier dans le bon sens.Il est vrai que je n'ai pas compilé grand'chose en XP et pour cause!
Merci à nouveau de ton exposé réconfortant.
Bien cordialement.
Jacques de ryes
 
A

antoine

Guest
j'ai résolu mes petits problèmes de compatibilité grace a ce fil. Résumons donc pour les moteur de recherche et les prochains visiteurs :

Incompatibilité Excel 2000 / Excel Xp + VBA

Rajouter ' vba. ' devant les fonctions qui traitent le format string : Mid(), left(), right(), mid(), Ltrim(), Rtrim(), Trim(), len()

Remplacer str$() par cstr() ( et proceder de meme pour toute les fonctions de conversion de variable )

Si vous utiliser des .ocx, vérifier la compatibilité. ( surtout mscal.ocx, le mieux est d'en récupérer une version récente, et de remplacer le .ocx de votre systeme par celui que vous venez de recupérer.

Désincrire un .ocx ( pour le virer ), tapez dans démarrer/exécuter "regsvr32 /u NOMDEOCX.ocx"

Inscrire un Ocx ( apres l'avoir placée dans .../system ou .../system32 selon l'os ) : "regsvr32 NOMDEOCX.ocx"


Voila, j'espere que ce fil évitera a des gens de pinailler sur des petits accros dans ce genre a l'avenir !

Antoine
 
T

Ti

Guest
euh, je crois que tu n'as pas bien lu mon message Antoine, inutile de rajouter VBA devant les Mid et autres Left, si tel est le cas, c'est que ton Excel est mal configuré ! Idem pour Str et Cstr (qui n'ont d'ailleurs pas les mêmes finalités)
 
@

@+Thierry

Guest
Bonjour Ti, Antoine, Jacques, le Forum

Un bail que l'on ne s'est pas croisé Jacques, j'espère que tu vas bien.

Oui Antoine, tu as mal lu la réponse détaillée de Ti !! Le coup de rajouter "VBA." à toutes Function ("Format", "Mid", etc) n'est absolument pas indispensable !!

En fait c'est peut-être plus une lacune, qu'un bug pour la façon dont VBA gère le problème d'une référence manquante... Au lieu de clairement indiquer un message du style :
"la Référence à Microsoft Outlook 9.0 Object Library (par exemple) est manquante, veuillez l'ajouter", au lieu de ceci, à l'exécution le programme stop en surlignant jaune par le débogueur le premier "Format" ou autre trouvé dans le code...

NB c'est la même chose avec Excel 2000, c'est la seule chose que l'on pourrait reprocher, l'absence de message clair (ou même l'ajoût de la bibliothèque automatiquement si elle est standard, ce qui semble se faire d'ailleurs avec XP pour des trucs style "Microsoft Outlook 10.0 Object Library")

Et pour finir, depuis que je développe dessus je suis un peu plus réconcillié avec XP (je parle d'Office, pour Windows XP Pro, c'est une autre histoire, je ne suis pas encore vraiment sûr de sa fiabilité, Win 2000 restant pour moi un valeur sûre)

Bon Appétit à tous et Toutes

@+Thierry


PS, Ti pour le "S", c'était à moi que c'était arrivé avec le moteur de recherche XLD, pour la constante "XLValue" acceptée sous 2000 , refusé sous XP... Et tant que je t'ai par là sur un fil, encore mille merci pour ton appli de recherche d'occurrences, vraiment tu es monstrueux !!
 

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr