OVH Cloud OVH Cloud

Ouvrir un directory sous mac ?

1 réponse
Avatar
Help ME
Bonjour
Quelqu'un connaitrait l'équivalent de cette fonction écrite sous pc pour mac
?
Merci

Michel

Set objShell = CreateObject("Shell.Application")

elle ouvre une fenetre pour demander d'indiquer un répertoire afin d'en
déterminer le chemin d'acces.

1 réponse

Avatar
Michel Gaboly
Bonjour,

Si le répertoire contient au moins 1 fichier, tu peux utiliser
GetOpenFileName (qui fonctionne aussi avec les versions Win).

Il s'agit d'une méthode qui affiche le dialogue d'ouverture et te
permet de sélectionner un fichier. Cette méthode N'OUVRE PAS
le fichier mais te permet de récupérer son com et son chemin
d'accès.

Sub Chemin()
Dim DocChoisi, Pos As Integer, Position As Integer
DocChoisi = Application.GetOpenFilename
If DocChoisi = False Then
' Traitement si le bouton Annuler a été choisi
Else
On Error Resume Next
Do
Position = Pos
Pos = Application.WorksheetFunction.Search(":", DocChoisi, Pos + 1)
Loop Until Err.Number <> 0
End If
Debug.Print Left(DocChoisi, Position - 1)
End Sub

DocChoisi représente le nom complet du document choisi
dans le dialogue, par exemple :

Bigalo:Tests Gabolweb:2004

La routine ne fonctionnera que sur Mac, où les 2 points ":"
sont le séparateur utilisé dans les chemins d'accès.

Pour que cela fonctionne aussi sur un PC ;-(( où c'est
l'antislash qui joue le même rôle, il faut adapter ainsi la
routine :

Sub Chemin()
Dim Sep As String, DocChoisi, Pos As Integer, Position As Integer
Sep = Application.PathSeparator
DocChoisi = Application.GetOpenFilename
If DocChoisi = False Then
' Traitement si le bouton Annuler a été choisi
Else
On Error Resume Next
Do
Position = Pos
Pos = Application.WorksheetFunction.Search(Sep, DocChoisi, Pos + 1)
Loop Until Err.Number <> 0
End If
Debug.Print Left(DocChoisi, Position - 1)
End Sub


NB - Il ne faut pas déclarer DocChoisi comme String, car
si le bouton "Annuler" est choisi, on récupère la chaîne de
caractères "Faux" en français avec une version française
d'Excel et non un booléen.

Par conséquent, le test

If DocChoisi = False Then

considère que la condition "DocChoisi = False" n'est jamais
remplie, et c'est TOUJOURS dans ces conditions le code qui
suit "Else" qui est exécuté.




Bonjour
Quelqu'un connaitrait l'équivalent de cette fonction écrite sous pc pour mac
?
Merci

Michel

Set objShell = CreateObject("Shell.Application")

elle ouvre une fenetre pour demander d'indiquer un répertoire afin d'en
déterminer le chemin d'acces.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com