Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA compatibilité MAC / PC

3 réponses
Avatar
sitterlin.michel
Bonjour à tous,

J'ai un programme VBA Excel développé sur PC qui ne tourne pas sur un MAC
(problème classique j'imagine). J'ai essayé de trouver des informations sans
succès (à l'exception d'un article rédigé par Bernard Rey qui ne résout pas
mon problème). En oubliant le fait que les MAC ne semblent pas accepter les
CommandButton sur la feuille Excel (donc j'e lance la macro par Outils /
macro ....), j'ai une erreur d'exécution (erreur 32 809 - erreur définie par
l'Application ou l'objet) sur l'instruction pourtant basique :

Worksheets("MaFeuille").Activate

A défaut de résoudre mon problème, quelqu'un pourrait il me dire où trouver
une bonne documentation sur les différences de Visual Basic Excel MAC / PC.

Merci de votre aide,

Michel S.

3 réponses

Avatar
Michel Gaboly
Bonsoir Michel,

Aucune raison que

Worksheets("MaFeuille").Activate

plante sur Mac sauf si le classeur actif ne comporte pas de feuille porta nt ce nom.

Les CommandButton ne sont pas utilisables sur Mac s'ils proviennent de la barre d'outils "Contrôles". Aucun objet de
cette barre d'outil n'est fonctionnel sur Mac. Toutefois, tu peux utilise r un CommandButton ou tout autre contrôle
provenant de la barre d'outils "Formulaires".

Tu peux également affecter une macro à un objet Shape quelconque.


Par ailleurs, mais cela n'a rien à voir avec les différences entre Ma c et PC, 9 fois sur 10, Activate et Select sont
inutiles : VBA permet de modifier les propriétés d'une plage sans qu' il soit nécessaire que celle-ci appartienne à la
feuille active, ni même au classeur actif. Par conséquent, sauf éve ntuellemment à la fin du traitement, Activate et
Select ont presque toujours un effet négatif : cela ralentit le traitem ent, sans rien apporter.


Voici une réponse que j'ai faite sur ce forum en janvier 2004 ; Si tu a s d'autres questions, n'hésite pas.


Bonjour,

Le format de fichier d'Excel est commun à toutes les versions Mac et
PC depuis Excel 97 (à part peut-être Excel 2003, que je n'ai encore
jamais eu l'occasion utiliser).

Cependant, il y a tout de même un certain nombre de différences entre
les versions Mac et PC, dont voici un extrait :

- Les controles de la barre commande (qui sont des ActiveX) ne sont
opérationnels que sous Windows.

- Il y a également un certain nombre de différences liées aux macro s.
En voici un extrait :

- Le séparateur utilisé dans les chemins d'accès n'est pas le mêm e, ":"
sur Mac et "" sur PC, ce qui est facilement résolu en utilisant
Application.Path.Separator.

- Le passage à la ligne diffère également : CAR(13) sur Mac, CAR(10 )
ou combinaison des 2 sur PC. Là encore, la constante VBA vbNewLine
résoud le problème.

- RowSource n'est pas disponible pour Mac : il suffit d'employer :
ListBox1.List = Range("Toto").Value

- Pour explorer l'arborescence des fichiers sur l disque, la méthode
diffère également, FileFind sur Mac et FileSearch sous Windows. Un
test sur le 1er caractère renvoyé par Application.OperatingSystem
permet de déterminer si l'appli tourne sur Mac ou sur PC, afin d'a-
dapter la routine à appeler.

- Les dessins dont certains agrémentent parfois les feuilles de calcul
posent également parfois des problèmes : à l'ouverture sur Mac, un
message est affiché pour chaque dessin "Conversion des MetaFile".
Parfois, cela aboutit à un blocage.

- Les polices de base diffèrent également. Fréquemment, cela provo-
que sur Mac une ouverture en lecture seule. Il faut alors faire un
"Enregis- trer sous...".

- Le rendu à l'écran des UserForms diffère également : même en utili-
sant la même police, dans l même taille (personnellement, j'utilise
Verdana 10), les contrôles occupent plus de place à l'écran sous Wi n+
dows : un UserForm de grande taille conçu sur Mac qui remplit un
é-cran en 1024 * 768 sera inexploitable sur PC à la même résolu-
tion ; il faudra qu moins du 1280 * 1024 pour que le UserForm soit
intégralement visible. A l'inverse, un UserForm fait sur PC, parti-
culièrement avec Tahoma (police proposée par défaut pour les User-
Forms) dans la taille par défaut sera très difficilement lisible sur
l'écran d'un Mac (textes et contrôles trop petits).

- Enfin, mais le problème ne se pose pas ici, puisqu'il s'agit d'Excel
97, Excel 2000 a introduit tout un ensemble de propriétés et de fonc-
tions non disponibles dans Excel 97 ni dans aucune version d'Excel Mac.
En effet, Excel 2000 et XP(ou 2002) reposent sur un noyau de VB6,
tandis qu'Excel 97, et toutes les versions Mac depuis 98 (98, 2001
et X) sont basés sur la version 5 de Visual Basic. Voici quelques exem-
ples d'éléments liés à VB 6 : les UserForms non modaux, les fonct ions
Split, Round, Replace, ...).

Enfin, bien évidemment, comme l'indique Christian Herbé, si la versio n
d'Excel Mac est antérieure à Excel 98, elle ne pourra pas ouvrir un f i-
chier Excel 97.



Bonjour à tous,

J'ai un programme VBA Excel développé sur PC qui ne tourne pas sur un MAC
(problème classique j'imagine). J'ai essayé de trouver des informat ions sans
succès (à l'exception d'un article rédigé par Bernard Rey qui n e résout pas
mon problème). En oubliant le fait que les MAC ne semblent pas accept er les
CommandButton sur la feuille Excel (donc j'e lance la macro par Outils /
macro ....), j'ai une erreur d'exécution (erreur 32 809 - erreur dé finie par
l'Application ou l'objet) sur l'instruction pourtant basique :

Worksheets("MaFeuille").Activate

A défaut de résoudre mon problème, quelqu'un pourrait il me dire où trouver
une bonne documentation sur les différences de Visual Basic Excel MAC / PC.

Merci de votre aide,

Michel S.





--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Michel Gaboly
Bonsoir Michel,

Aucune raison que

Worksheets("MaFeuille").Activate

plante sur Mac sauf si le classeur actif ne comporte pas de feuille porta nt ce nom.


Les CommandButton ne sont pas utilisables sur Mac s'ils proviennent de la barre d'outils "Contrôles". Aucun objet de
cette barre d'outil n'est fonctionnel sur Mac. Toutefois, tu peux utilise r un CommandButton ou tout autre contrôle
provenant de la barre d'outils "Formulaires".

Tu peux également affecter une macro à un objet Shape quelconque.


Par ailleurs, mais cela n'a rien à voir avec les différences entre Ma c et PC, 9 fois sur 10, Activate et Select sont
inutiles : VBA permet de modifier les propriétés d'une plage sans qu' il soit nécessaire que celle-ci appartienne à la
feuille active, ni même au classeur actif. Par conséquent, sauf éve ntuellemment à la fin du traitement, Activate et
Select ont presque toujours un effet négatif : cela ralentit le traitem ent, sans rien apporter.


Voici une réponse que j'ai faite sur ce forum en janvier 2004 ; Si tu a s d'autres questions, n'hésite pas.


Bonjour,

Le format de fichier d'Excel est commun à toutes les versions Mac et
PC depuis Excel 97 (à part peut-être Excel 2003, que je n'ai encore
jamais eu l'occasion utiliser).

Cependant, il y a tout de même un certain nombre de différences entre
les versions Mac et PC, dont voici un extrait :

- Les controles de la barre commande (qui sont des ActiveX) ne sont
opérationnels que sous Windows.

- Il y a également un certain nombre de différences liées aux macro s.
En voici un extrait :

- Le séparateur utilisé dans les chemins d'accès n'est pas le mêm e, ":"
sur Mac et "" sur PC, ce qui est facilement résolu en utilisant
Application.Path.Separator.

- Le passage à la ligne diffère également : CAR(13) sur Mac, CAR(10 )
ou combinaison des 2 sur PC. Là encore, la constante VBA vbNewLine
résoud le problème.

- RowSource n'est pas disponible pour Mac : il suffit d'employer :
ListBox1.List = Range("Toto").Value

- Pour explorer l'arborescence des fichiers sur l disque, la méthode
diffère également, FileFind sur Mac et FileSearch sous Windows. Un
test sur le 1er caractère renvoyé par Application.OperatingSystem
permet de déterminer si l'appli tourne sur Mac ou sur PC, afin d'a-
dapter la routine à appeler.

- Les dessins dont certains agrémentent parfois les feuilles de calcul
posent également parfois des problèmes : à l'ouverture sur Mac, un
message est affiché pour chaque dessin "Conversion des MetaFile".
Parfois, cela aboutit à un blocage.

- Les polices de base diffèrent également. Fréquemment, cela provo-
que sur Mac une ouverture en lecture seule. Il faut alors faire un
"Enregis- trer sous...".

- Le rendu à l'écran des UserForms diffère également : même en utili-
sant la même police, dans l même taille (personnellement, j'utilise
Verdana 10), les contrôles occupent plus de place à l'écran sous Wi n+
dows : un UserForm de grande taille conçu sur Mac qui remplit un
é-cran en 1024 * 768 sera inexploitable sur PC à la même résolu-
tion ; il faudra qu moins du 1280 * 1024 pour que le UserForm soit
intégralement visible. A l'inverse, un UserForm fait sur PC, parti-
culièrement avec Tahoma (police proposée par défaut pour les User-
Forms) dans la taille par défaut sera très difficilement lisible sur
l'écran d'un Mac (textes et contrôles trop petits).

- Enfin, mais le problème ne se pose pas ici, puisqu'il s'agit d'Excel
97, Excel 2000 a introduit tout un ensemble de propriétés et de fonc-
tions non disponibles dans Excel 97 ni dans aucune version d'Excel Mac.
En effet, Excel 2000 et XP(ou 2002) reposent sur un noyau de VB6,
tandis qu'Excel 97, et toutes les versions Mac depuis 98 (98, 2001
et X) sont basés sur la version 5 de Visual Basic. Voici quelques exem-
ples d'éléments liés à VB 6 : les UserForms non modaux, les fonct ions
Split, Round, Replace, ...).

Enfin, bien évidemment, comme l'indique Christian Herbé, si la versio n
d'Excel Mac est antérieure à Excel 98, elle ne pourra pas ouvrir un f i-
chier Excel 97.


Bonjour à tous,

J'ai un programme VBA Excel développé sur PC qui ne tourne pas sur un MAC
(problème classique j'imagine). J'ai essayé de trouver des informat ions sans
succès (à l'exception d'un article rédigé par Bernard Rey qui n e résout pas
mon problème). En oubliant le fait que les MAC ne semblent pas accept er les
CommandButton sur la feuille Excel (donc j'e lance la macro par Outils /
macro ....), j'ai une erreur d'exécution (erreur 32 809 - erreur dé finie par
l'Application ou l'objet) sur l'instruction pourtant basique :

Worksheets("MaFeuille").Activate

A défaut de résoudre mon problème, quelqu'un pourrait il me dire où trouver
une bonne documentation sur les différences de Visual Basic Excel MAC / PC.

Merci de votre aide,

Michel S.





--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
sitterlin.michel
Merci Michel pour ces informations précises. J'ai quelques pistes pour
résoudre mon problème.
Si je n'y arrives pas , je reviens sur le forum

--
Michel Sitterlin ()