Excel 2011 : fonction shell pour ouvrir un répertoire

Nico1984

Membre confirmé
12 Janvier 2013
11
1
Bonjour,

Je suis en train de développé une macro qui devra être compatible mac et pc, les problèmes sont que je suis débutant en VBA et que je connais très peu le fonctionnement des mac.

Dans la macro j'ai un bouton qui me permet d'ouvrir un répertoire, sur PC ça marche parfaitement mais je n'arrive pas à l'adapter à Mac. Voici le code utilisé :

'pc : OK
chemin : variable définissant l’emplacement du dossier à ouvrir
Shell "C:\windows\explorer.exe " & chemin , vbNormalFocus

'Mac : Problème car je ne sais pas comment remplacer "C:\windows\explorer.exe" pour mac
et il y a quelque variation dans l'utilisation de la fonction shell. J'ai essayé de travailler à partir du code suivant mais je n'ai pas réussi à l'adapter (il fonctionne et permet l'ouverture de la calculette) :
RetVal = Shell("Macintosh HD:Applications:Calculator.app:" & "Contents:MacOS:Calculator", vbNormalFocus)

ps: (J'ai adapté chemin avec des ":" à la place des "\")

Avez vous des idées ??

En vous remerciant par avance pour l'aide.

Cordialement,
Nicolas
 
Désolé, mais je ne vois pas de quoi tu parle quand tu dis :" Sous Mac, avec le Terminal,
"open cheminFolder" fonctionne... "
J'ai juste à mettre le open chemin + le nom de mon dossier?

Je suis novice et autodidacte du coup il y a certaines bases que je n'ai pas.
 
Pour lancer ce genre de choses, tu devrais plutôt t'intéresser à lancer une instruction en AppleScript lançant un shell, genre :
Bloc de code:
MonScript = "do shell script ""open /Users/nomutilisateur/Documents/"""
temp = MacScript(MonScript)
' ouvre le dossier "Documents" du compte utilisateur concerné

Là aussi, comme tu peux le voir sur la page de Ron de Bruin, cette méthode te permet d'aller assez loin puisque tu as ainsi accès aux commandes Unix (qui sont aussi accessibles par l'application "Terminal" comme le suggérait plus ou moins clairement Larme ci-dessus).

À noter : cette fois on utilise le slash comme séparateur dans le chemin d'accès, et on ne fait plus référence au nom du disque de démarrage, bref on est dans le monde Unix, les choses sont un peu différentes… ;)
 
Ok merci pour les pistes je vais creuser tout ça, une fois encore merci pour le coup de main.
Je vous tiens au courant si ça marche.

Cordialement,

Nicolas
 
Salut all,

Bon voilà j'ai enfin réussi à faire ce que je voulais grâce à vous, (enfin surtout grâce à toi Aliboron pour la deuxième fois lol). Le code d'Aliboron marchait très bien sauf que pour moi le chemin était une variable et vu mon piètre niveau en VBA et appleScript j'ai bien galéré avant de comprendre comment faire, et voici le résultat pour ceux que ça intéresse :

monscript = "do shell script ""open " & chemin & Chr(34) ' chemin étant une variable
Execute = MacScript(monscript)

PS : Si votre variable récupère l'adresse de création d'un fichier il faut penser à remplacer les ":" par des "/" et éliminer "Macintosh HD" pour que le code fonctionne.

Merci et à bientôt
Cordialement,
Nicolas

re ps : cette conversation est être marquée comme résolue.