OVH Cloud OVH Cloud

Version excel

13 réponses
Avatar
Run64
bonjour,

j'ai créé un fichier sous vba excel (VERSION excel 2003), lorsque je veux
l'ouvrir sous excel 97 ça ne fonctionne pas et celà malgré l'enregistrement
sous la version excel 97.
un système d'exploitation différent peut-il empêcher le bon fonctionnement
du fichier ?
--
Merci pour tout
dd

10 réponses

1 2
Avatar
Fred
Dans son message
Run64 nous dit :

bonjour,

j'ai créé un fichier sous vba excel (VERSION excel 2003), lorsque je
veux l'ouvrir sous excel 97 ça ne fonctionne pas et celà malgré
l'enregistrement sous la version excel 97.
un système d'exploitation différent peut-il empêcher le bon
fonctionnement du fichier ?



Bonsoir,
C'est possible, j'ai pour ma part constaté des différences entre Word 2000
et Word 2003 qui m'ont amené à faire des tests dans les macros pour exécuter
des portions de code spécifique à Word 2000 ou bien Word 2003.


--
Fred
Avatar
Fred
Dans son message
Fred nous dit :

Dans son message
Run64 nous dit :

bonjour,

j'ai créé un fichier sous vba excel (VERSION excel 2003), lorsque je
veux l'ouvrir sous excel 97 ça ne fonctionne pas et celà malgré
l'enregistrement sous la version excel 97.
un système d'exploitation différent peut-il empêcher le bon
fonctionnement du fichier ?



Bonsoir,
C'est possible, j'ai pour ma part constaté des différences entre Word
2000 et Word 2003 qui m'ont amené à faire des tests dans les macros
pour exécuter des portions de code spécifique à Word 2000 ou bien
Word 2003.



Oups, désolé.
Je dis c'est possible mais pas concernant le système d'exploitation. Je
parle du fait d'avoir un code vba qui donne des résultats différents selon
la version du fichier Excel !

--
Fred
Avatar
Gloops
Bonjour,

Pour prendre un exemple, l'initialisation de la boîte de dialogue de
sélection de fichier par des API peut se faire avec des espaces, si je
me rappelle bien dans le nom de fichier, sous Windows 98, alors que sous
Windows XP si vous faites ça la boîte ne s'ouvre pas, il faut
l'initialiser avec des caractères nuls, lesquels sont acceptés par les
deux plateformes.

Il n'y a pas beaucoup de différences, mais il faut tout tester sur
toutes les plateformes et ne pas oublier la présence de divers
composants sur les machines utilisatrices, qui pourraient entrer en
conflit avec l'application.

Sinon en général, si vous développez une application pour la faire
tourner sur plusieurs versions d'une application hôte, il est préférable
de faire le développement sur la version la plus ancienne, la
compatibilité descendante étant moins généralement assurée que la
compatibilité ascendante.

Pour ce genre d'exercice, il existe des contraintes de syntaxe, enfin ça
on ne met pas longtemps à s'en apercevoir.
Avatar
Run64
quelle est la solution ?

"Fred" a écrit :

Dans son message
Fred nous dit :

> Dans son message
> Run64 nous dit :
>
>> bonjour,
>>
>> j'ai créé un fichier sous vba excel (VERSION excel 2003), lorsque je
>> veux l'ouvrir sous excel 97 ça ne fonctionne pas et celà malgré
>> l'enregistrement sous la version excel 97.
>> un système d'exploitation différent peut-il empêcher le bon
>> fonctionnement du fichier ?
>
> Bonsoir,
> C'est possible, j'ai pour ma part constaté des différences entre Word
> 2000 et Word 2003 qui m'ont amené à faire des tests dans les macros
> pour exécuter des portions de code spécifique à Word 2000 ou bien
> Word 2003.

Oups, désolé.
Je dis c'est possible mais pas concernant le système d'exploitation. Je
parle du fait d'avoir un code vba qui donne des résultats différents selon
la version du fichier Excel !

--
Fred






Avatar
Run64
qu'est ce que c'est des caractères nuls ?

"Gloops" a écrit :

Bonjour,

Pour prendre un exemple, l'initialisation de la boîte de dialogue de
sélection de fichier par des API peut se faire avec des espaces, si je
me rappelle bien dans le nom de fichier, sous Windows 98, alors que sous
Windows XP si vous faites ça la boîte ne s'ouvre pas, il faut
l'initialiser avec des caractères nuls, lesquels sont acceptés par les
deux plateformes.

Il n'y a pas beaucoup de différences, mais il faut tout tester sur
toutes les plateformes et ne pas oublier la présence de divers
composants sur les machines utilisatrices, qui pourraient entrer en
conflit avec l'application.

Sinon en général, si vous développez une application pour la faire
tourner sur plusieurs versions d'une application hôte, il est préférable
de faire le développement sur la version la plus ancienne, la
compatibilité descendante étant moins généralement assurée que la
compatibilité ascendante.

Pour ce genre d'exercice, il existe des contraintes de syntaxe, enfin ça
on ne met pas longtemps à s'en apercevoir.




Avatar
Gloops
Run64 a écrit, le 25/05/2005 19:56 :
qu'est ce que c'est des caractères nuls ?



Chr$(0)

Voir ASCII pour aborder la notion de codage de caractères.

Des 1 et des 0, ça te rappelle quelque chose ? C'est avec ça qu'on
représente les caractères, en numération binaire, pour que les
ordinateurs comprennent de quoi il retourne.
Eh bien pour les caractères nuls, tout est à zéro.

Binaire Décimal Caractère
0000 0000 = 0 <- le caractère nul, c'est celui-là
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
0000 0100 = 4

0011 0000 = 48 0
0011 0001 = 49 1
0011 0010 = 50 2

0100 0001 = 65 A
0100 0010 = 66 B



et il y en a 256 comme ça dans la table ASCII d'il y a vingt ans, 256 *
256 dans la table ANSI qu'on utilise maintenant, et encore celle-ci
existe-t-elle en plusieurs versions, à choisir selon les pays.

http://fr.selfhtml.org/internationalisation/jeux_caracteres.htm

Ceux en-dessous de 128 sont à peu près universels.

Le caractère nul est utilisé dans de nombreux contextes pour signaler la
fin d'une chaîne de caractères.

Attention, le chiffre 0 est représenté par Chr$(48), ce n'est donc pas
le caractère nul.

Alors je disais donc, pour initialiser le nom de fichier (si je n'ai pas
confondu avec un autre champ), on ne met plus Space$(256), mais
String$(256, Chr$(0))

En espérant que ça ne soit pas trop brumeux ...
Avatar
Fred
Dans son message
Run64 nous dit :

quelle est la solution ?

"Fred" a écrit :

Dans son message
Fred nous dit :

Dans son message
Run64 nous dit :

bonjour,

j'ai créé un fichier sous vba excel (VERSION excel 2003), lorsque
je veux l'ouvrir sous excel 97 ça ne fonctionne pas et celà malgré
l'enregistrement sous la version excel 97.
un système d'exploitation différent peut-il empêcher le bon
fonctionnement du fichier ?



Bonsoir,
C'est possible, j'ai pour ma part constaté des différences entre
Word 2000 et Word 2003 qui m'ont amené à faire des tests dans les
macros pour exécuter des portions de code spécifique à Word 2000 ou
bien Word 2003.



Oups, désolé.
Je dis c'est possible mais pas concernant le système d'exploitation.
Je parle du fait d'avoir un code vba qui donne des résultats
différents selon la version du fichier Excel !

--
Fred





Je n'ai pas de solution pour excel !
Et je ne me souviens même plus ce qui était différent en 2000 et 2003 sous
Word.
Je pourrai t'en dire un peu plus demain si j'y pense, en reprenant une
macro.
La solution était de tester les macros sous les deux versions et de les
adapter en faisant une condition sur la version.
Contrairement à ce que je pensais, Gloops a trouvé des différences selon le
système d'exploitation. Il est vrai que dans le cas qu'il présente, il fait
appel à des fonctions système. Moi je parlais plutôt de petites différences
entre les modèles objet (propriétés, méthodes, événements). S'il y a
changement de version, il y a bien une raison ;-)
Quand tu enregistres en changeant le format pour le rétrograder, le texte du
code vba n'est pas adapté, donc il peut ne plus convenir.


--
Fred
Avatar
Gloops
Ah, pour sûr, quand on a développé sous Word 4 pour DOS, sous Word 6,
97, 2000, on n'a plus peur du dépaysement.

En fait, une macro développée dans une version peut parfois tourner sur
une autre (je n'ai pas l'inventaire précis des cas), à condition qu'on
ne cherche pas à la modifier. Mais à la moindre retouche, il faut tout
migrer.

Il y a toujours des nuances d'une version à l'autre, mais quand même
avec Word, ils ont fait fort.



Fred a écrit, le 25/05/2005 22:19 :
Je n'ai pas de solution pour excel !
Et je ne me souviens même plus ce qui était différent en 2000 et 2003 sous
Word.
Je pourrai t'en dire un peu plus demain si j'y pense, en reprenant une
macro.
La solution était de tester les macros sous les deux versions et de les
adapter en faisant une condition sur la version.
Contrairement à ce que je pensais, Gloops a trouvé des différences selon le
système d'exploitation. Il est vrai que dans le cas qu'il présente, il fait
appel à des fonctions système. Moi je parlais plutôt de petites différences
entre les modèles objet (propriétés, méthodes, événements). S'il y a
changement de version, il y a bien une raison ;-)
Quand tu enregistres en changeant le format pour le rétrograder, le texte du
code vba n'est pas adapté, donc il peut ne plus convenir.




Avatar
Jacques93
Bonsoir Gloops,
Gloops a écrit :
Ah, pour sûr, quand on a développé sous Word 4 pour DOS, sous Word 6,
97, 2000, on n'a plus peur du dépaysement.



[...]

Et Word 2.0 sous Windows 3.x, ça ne compte pas ??? :-D

Je crois que c'est à partir d'Office 97 que le 'Cataclysme' a eu lieu :

Passage au VBA et OLE Automation, le même VBA pour tout le monde. Avant
macros nationales et DDE.

Access me semble t-il a fait une petite 'surchauffe' entre les versions
97 et 2000 qui ne sont pas compatibles.

Mais il est certain que les objets disponibles sous Office 2003 ont
énormément évolués par rapport à Office 97, comme entre VB3 et VB6
il y en a des nouveaux, et les anciens ont évolués ;-)

--
Cordialement,

Jacques.
Avatar
Fred
Dans son message 4294e8e0$0$831$
Gloops nous dit :

Ah, pour sûr, quand on a développé sous Word 4 pour DOS, sous Word 6,
97, 2000, on n'a plus peur du dépaysement.



Word 4 ? DOS ? Mais de quoi parles-tu donc ?

Bonne soirée :o)


--
Fred
1 2