VBA Compatibilité mac - PC

Nico1984

Membre confirmé
12 Janvier 2013
11
1
Bonjour a tous,

Je suis en train de développer une macro exel et j'ai un gros problème de compatibilité quand je passe sous mac et mon niveau de VBA ne me permet pas de résoudre seul mon problème. J'ai une fonction sur PC qui me permet d'ouvrir une fenêtre où je peux choisir un dossier cible, la fonction récupère en plus l'adresse du dossier et la macro continue.

Mais cette fonction ne passe pas sous mac car elle utilise des objets liés au contrôle active X absent sous mac.
Voici le code qui ne passe pas sous office mac 2011 :


Sub Test ()

' ne pas actualiser l'ecran gain de vitesse
Application.ScreenUpdating = False

Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim chemin As String

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un dossier", &H1&)

On Error Resume Next
Set oFolderItem = objFolder.items.Item
chemin = oFolderItem.Path

end sub



J'ai trouvé un autre code qui n'utilise pas les objets active x mais il bug aussi. Je le posterais si vous le souhaitez (pour en pas trop saturer mon premier message)

J’espère que vous pourrez m'aider,

Cordialement,
Nicolas
 
Je ne suis pas en mesure de faire une réponse complète pour le moment. Je vais devoir faire court. Comme tu l'as dit, pas d'ActiveX en dehors de Windows, il va donc te falloir contourner. Soit en procédant autrement (genre InputBox) soit en utilisant une boucle parallèle en AppleScript (qu'on gère avec de la compilation conditionnelle).

Tu peux jeter un œil au site de Ron de Bruin, qui vient de passer à Excel sur Mac et qui a fait des choses intéressantes dans ce sens (j'ai eu l'occasion de tester un peu). Il y a toute une page dédiée au VBA d'Excel pour Mac. Vois en particulier ce point pour trouver un dossier et celui-ci pour la compilation conditionnelle...
 
Dernière édition:
À noter que VBA fournit une constante qui te permet de savoir sur quelle plate-forme la macro est exécutée, ce qui est bien pratique quand on veut écrire une macro qui fonctionne dans les deux environnements tout en exécutant des portions de code différentes selon la plate-forme pour les parties spécifiques !

constpf.jpg

à noter que sur Excel 2011 il doit y en avoir d'autres, mais curieusement l'aide en ligne de VBA semble avoir disparu de cette version d'Office, là, c'est tiré de celle d'Excel 2004 !