Excel macros VBA PC vers Mac

cphlby

Membre enregistré
24 Août 2018
1
0
43
Bonjour à tous,

Je ne suis pas certain que ma question n'ai pas déjà été traitée dans un autre post mais je suis totalement novice en ce qui concerne l'utilisation, la compréhension et la modification des macro Excel avec VBA.

Je vous explique mon problème : J'ai un fichier excel qui me sert à tenir la comptabilité d'une petite association et ce dernier fonctionne très bien sur mon PC (désolé ...).
Lorsque j'ai décidé de passer sur MacBook Pro et donc d'utiliser excel pour Mac (version 15.25) l'ensemble des macros du fichier sont inopérante (j'ai bien entendu autorisé les macros à l'ouverture du fichier).

Je viens donc essayer de trouver une solution pour mon problème, au besoin je peux vous transférer le fichier.

D'avance merci à tous
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
Il est évidemment impossible d'apporter une réponse sans en savoir plus sur les macros en question. Le plus probable, c'est que ces macros ont été développées sans s'inquiéter d'une éventuelle portabilité vers Excel pour Mac et qu'elles sont donc truffées de fonctionnalités "Windows only". On retrouve classiquement des chemins d'accès "en dur" (à base de C:\), des contrôles "ActiveX", et autres qui rendent le fonctionnement impossible sur un Mac. Dans ce genre de cas, l'adaptation pour rendre l'ensemble compatible peut être lourd, voire impossible...
 
  • J’aime
Réactions: Floyd.Pink

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
Après réception du classeur : module macro verrouillé (donc accès impossible), page d'accueil truffée de contrôles "ActiveX" (donc aucun bouton fonctionnel)... Ce classeur n'a aucune chance d'être utilisé sur un Mac (sauf à y installer Windows et une version pour Windows d'Office). À voir avec le développeur si une version prenant en compte l'utilisation sur Mac est envisagée/envisageable.
 

Floyd.Pink

Membre enregistré
17 Décembre 2018
2
0
29
Bonjour à vous !

Merci pour ces réponses précises !
Je m'intéresse également au sujet car je suis confronter au même problème aujourd'hui ... je pense que je vais créer 2 fichiers distincts : 1 pour les utilisateurs Window et 1 pour les utilisateurs Mac.

#Aliboron ; comment est-il possible de vérifier l'état de ces macros windows ?
Plus particulièrement :
N'ayant pas rédiger moi-même les macros en ma possession mais devant tout de même travailler dessus pour les rendre compatible avec MAC , je souhaite vérifier / comprendre ces chemins d'accès "en dur" (à base de C:\), contrôles "ActiveX" sur ma macro comme vous avez sans-doute pu le faire avec le fichier de cphlby.

D'autre part, quelles "autres" fonctionnalités "Windows only" bloquent généralement la lecture sur Mac selon vous ?

Enfin, j'avoue ne pas avoir réussi à comprendre comment régler ces problèmes avec le site "Rondebruin" tant mentionné sur les forums... auriez-vous une référence / vulgarisation ?


Merci par avance :)
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
je pense que je vais créer 2 fichiers distincts : 1 pour les utilisateurs Windows et 1 pour les utilisateurs Mac.
C'est parfois nécessaire. Mais le plus souvent on peut obtenir un bon résultat avec de la compilation conditionnelle (#if mac then... #else... #end if). Mais il faut aussi se méfier des différences qui peuvent intervenir entre les différentes versions d'Excel pour Mac...

N'ayant pas rédigé moi-même les macros en ma possession mais devant tout de même travailler dessus pour les rendre compatible avec Mac, je souhaite vérifier / comprendre ces chemins d'accès "en dur" (à base de C:\), contrôles "ActiveX" sur ma macro comme vous avez sans-doute pu le faire avec le fichier de cphlby.
Il faut analyser étape par étape les modules macro. Faire tourner les boucles pour voir quels sont les points de blocage. Adapter ce qui peut l'être, contourner ce qu'on peut contourner...

D'autre part, quelles "autres" fonctionnalités "Windows only" bloquent généralement la lecture sur Mac selon vous ?
Le plus souvent, ce sont l'appel à certaines commandes qui ne fonctionnent pas ou qui fonctionnent différemment, n'acceptent pas les mêmes paramètres...

Enfin, j'avoue ne pas avoir réussi à comprendre comment régler ces problèmes avec le site "Rondebruin" tant mentionné sur les forums... auriez-vous une référence / vulgarisation ?
Le site de Ron de Bruin est pourtant, à mon avis, le plus intéressant en matière de développement VBA pour Mac (et d'adaptation Windows > Mac). Quels sont les problèmes que tu rencontres et que tu n'as pas réussi à régler ?
 

Floyd.Pink

Membre enregistré
17 Décembre 2018
2
0
29
Hmm ok je vois,

Bon après les tests quand je veux lancer ma macro Update_tabdata() et ce que j'ai vu sur référence :
Objet manquant : "Microsoft ActiveX Data Objects 2.8 Library Microsoft ActiveX D"

En effet, pour se connecter à ma base de donnée, la librairie ADO utilise une version access de 2007.

Il existe 3 alternatives à la version d'Access 2007 :

1/ Sur les forums les gens parlent de :

a/ Parallels + MS Access
b/ Bootcamp + MS Access
c/ Wine + MS Access

Mais ça a l'air d'être de l'install en hard sur Apple, ce que je ne souhaite pas faire car ça doit tourner sur plusieurs machines différentes.

2/ Pour un équivalent, il y a FileMaker, il aurait l'avantage de d'être porté sous Windows (et iOS).

3/ OpenOffice.org Base.

Any advice ? ...

Merci par avance :)
 
Dernière édition:

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
quand je veux lancer ma macro Update_tabdata() et ce que j'ai vu sur référence :
Objet manquant : "Microsoft ActiveX Data Objects 2.8 Library Microsoft ActiveX D"
Il est clair que, s'il y a des composant ActiveX, ça implique de revoir complètement les passages impliqués. Cela peut être simplement le bouton de déclenchement de la macro (en quel cas on peut contourner ça en utilisant plutôt un bouton de l'onglet "Développeur" du ruban). Mais si c'est dans le déroulement de la boucle, ce sera évidemment nettement plus compliqué... Courage !

Il existe 3 alternatives à la version d'Access 2007 :
1/ Sur les forums les gens parlent de :
a/ Parallels + MS Access
b/ Bootcamp + MS Access
c/ Wine + MS Access​
Mais ça a l'air d'être de l'install en hard sur Apple, ce que je ne souhaite pas faire car ça doit tourner sur plusieurs machines différentes.
Difficile de commenter ça, sans savoir comment tout cela fonctionne. Excel dans ses versions pour Mac n'est pas un outil bien performant en ce qui concerne les interrogations de base de données. Access, de toute façon, Mac ou Windows ça implique une installation. Et, évidemment, sur Mac ça implique d'utiliser une des trois solutions indiquées. Ma préférence va à Parallels Desktop, mais ça implique l'acquisition du logiciel (avec maintenant une forme d'abonnement annuel, comme les autres éditeurs).

2/ Pour un équivalent, il y a FileMaker, il aurait l'avantage de d'être porté sous Windows (et iOS).
3/ OpenOffice.org Base.
FileMaker passe pour être un bon outil (je n'ai pas suivi ses modifications depuis pas mal de temps, c'est devenu "trop pro" pour moi). OpenOffice Base, c'est à mon avis nettement moins utilisable (même si pour ma part je préfère son "cousin" LibreOffice, ça ne change rien). Mais de nouveau, impossible de donner sérieusement un avis sur une situation, manifestement complexe, juste avec deux ou trois indices. C'est un vrai travail de développeur, là...
 
Dernière édition:

loky34

Membre enregistré
15 Novembre 2020
4
0
39
Bonjour,

Je me permets de relancer ce topic plutôt que d'en créer un nouveau, car je suis confronté à un problème similaire.
J'ai récupéré un Excel contenant deux macros fabriquées sous Windows, et ces macros sont inopérantes sur ma version mac d'excel (version 16.43). Ce document Excel est un journal de trading (pour la bourse) et permet de récupérer les cours actuels de certaines actions via le site abcbourse. Je mets le document Excel en lien, il contient un onglet "Nouveautés 2020" qui explique le comportement attendu des deux macros.

https://wetransfer.com/downloads/30...168715143d39dde2a70d57b520201115122053/1bb6bc

N'ayant aucune connaissance en VB, je pensais naïvement qu'il existerait peut-être un soft qui permettrait de convertir automatiquement mais je crois que je rêve un peu.
En conséquence, je m'en remets à vous, je n'ai aucune idée si la mutation de ce fichier est délicate et chronophage ou non, mais je veux bien un avis d'experts.

Je vous remercie par avance pour le temps consacré !
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
??? QU'est-ce qu'elles sont censées faire ? Comment se déclenchent-elles ? Là, je ne sais pas du tout ce qu'on doit faire avec ce tableau. Il y a bien deux macros dans la feuille de code de "Journal de trading" mais elles ont l'air de s'exécuter normalement. En tout cas, elles ne se bloquent pas et je vois pour le moment exactement la même chose dans la version pour Mac que dans la version pour Windows...

J'imagine qu'il faut saisir des données (mais lesquelles et où ?) pour qu'on puisse voir un résultat quelconque. Si tu pouvais au moins donner un exemple de ce qu'il faut saisir et de ce qu'on devrait voir, ça pourrait aider?.
 

loky34

Membre enregistré
15 Novembre 2020
4
0
39
Salut !

Elles sont censées retourner le cours actuel d'une action en interrogeant le site abcbourse.

Pour la macro MajCotations, l'utilisateur entre manuellement les actions qu'il a en portefeuille dans les cases A27 et B27 (dans l'exemple cité : p en A27 et VMX en B27). Puis lorsque l'on clique sur "Mise à jour des cours", les colonnes C27 et F27 se remplissent automatiquement : en C27 le nom de valeur et en F27, le cours de la valeur.
Et ainsi de suite pour les lignes jusqu'à 42.

Il y a également une macro identique dans le comportement pour les lignes 6 à 12 (Majcotation_simulateur).

J'ai pu tester sur Windows le fichier, la macro met bien à jour ces deux cases.
En revanche, sur Mac, les cases C27 et F27 s'effacent (donc j'imagine que la macro se lance) mais les valeurs actualisées n'apparaissent pas, les cases restent vides.

Merci pour ton premier retour, j'espère que ça peut aider à y voir un peu plus clair.

Pour faire un test, tu peux rentrer les valeurs suivantes dans la ligne 9 : p en A9 et ALNOV en B9. La macro devrait t'afficher Novacyt en C9 et 9,73€ en G9 (informations tirées de cette page web : https://www.abcbourse.com/cotation/ALNOVp)
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
OK, c'est vu ! En fait, c'est la requête web qui ne fonctionne pas. Ce qui n'est, hélas, pas une surprise, puisqu'elle fait appel à un objet ActiveX, ce qui est une fonctionnalité "Windows only". Les requêtes web, de façon générale, sont un gros point faible des versions pour Mac d'Excel. Avec les requêtes .IQY (via le menu ""Données" > "Données externes" > "Requête sur le web...") on peut obtenir des infos et les mettre à jour, mais c'est laborieux (et je n'ai pas toujours bien compris, mais je n'y connais rien en matière de bourse).

On a une forme de compensation dans les dernières versions, avec la fonctionnalité "Données boursières" dans l'onglet "Données" du ruban. Si ça peut te servir...
 

loky34

Membre enregistré
15 Novembre 2020
4
0
39
Merci pour ta réponse !

Je pourrais peut-etre adapter un peu le fichier en effet pour avoir le cours via la fonction Données boursières.
Quand tu dis dernière version, c'est la dernière version d'Excel, c'est ça ? Excel 2019 ?
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
Oui, Excel 2019, en version 16.43 actuellement, donc :

Capture d’écran.png
 
  • J’aime
Réactions: loky34

zaczeksob

Membre enregistré
28 Juin 2015
3
0
69
Le plus probable, c'est que ces macros ont été développées sans s'inquiéter d'une éventuelle portabilité vers Excel pour Mac et qu'elles sont donc truffées de fonctionnalités "Windows only". On retrouve classiquement des chemins d'accès "en dur" (à base de C:\), des contrôles "ActiveX", et autres qui rendent le fonctionnement impossible sur un Mac.
Bonjour,

Je suis étonné que nous sommes 7 milliards d'êtres humains sur terre et que Microsoft annonce 1 milliard d'utilisateurs de Office et que jusqu'à présent personne n'a réussi jusqu'à ce jour à adapter VBA pour Excel sur n'importe quel Mac !! C'est complètement ahurissant !

Cela fait des années que j'ai exactement ce même problème et personne pour le solutionner !!! Au boulot, j'avais créé un classeur qui tournait sous VBA sur ordi Windows. Puis je voulais importer par OneDrive et continuer à y travailler dessus chez moi sur mon MacBook Pro... !!! Je finirai par devoir m'acheter un ordi Windows pour pouvoir travailler chez moi sur le classeur Excel ! Un truc de fou !!
 
Dernière édition par un modérateur:

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
Selon le cas et les commandes utilisées dans ta macro, à défaut de trouver la solution universelle attendue, tu peux peut-être plus modestement adapter ta macro pour qu’elle fonctionne dans les deux environnements (ce n’est pas nécessairement impossible).

Si tu as besoin d’aide, précise au moins ce qui pose problème, comment tu procèdes, ce que tu observes, etc.
 

zaczeksob

Membre enregistré
28 Juin 2015
3
0
69
J’ai créé sur Windows le classeur avec une série de commandes en vba et des boutons menu/filtres/annulation de filtres, tri, etc.
- j’essaie de le récupérer de plusieurs manières différentes :
1. Sur clef usb
2. En l’enregistrant sur onedrive

dans un cas comme dans l’autre mon excel en xlsm sur Mac n’accepte pas le classeur et ses vba.
Il est donc impossible de l’ouvrir déjà à la base dès l’ouverture ne fut-ce que pour y travailler et essayer toute sorte de chose.
 
Dernière édition par un modérateur:

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
Tu conviendras que "une série de commandes en VBA" n’est pas vraiment une description précise de ce que tu as fait. Avec ça, il n’est pas évident d’en déduire le type de commandes dont il est question, de savoir s’il aurait mieux valu en utiliser d’autres, si des contournements sont possibles,…

Est-ce que tu peux être plus détaillé ? Utilises-tu des contrôles ActiveX ? Des chemins d’accès qui s’adaptent au contexte ?
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 212
1 039
Toulouse.cong
faq.office.macintosh.free.fr
Après récupération du classeur, je n'arrive pas à avancer vraiment : les macros ne se lancent pas non plus dans Excel sous Windows 10 :

Capture d’écran.png


À l'origine, les macros sont peut-être stockées dans un complément ou le classeur de macros personnelles. En tout cas, ce n'est visiblement plus dans le classeur. Dans l'éditeur VBA, on ne trouve pas de modules macro du tout, difficile de faire une analyse de la situation...

Il faudrait me faire parvenir le classeur original Windows, celui qui contient les macros, plutôt que la version "réduite" lors de l'ouverture dans Excel sur Mac...