Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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.