Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

choix d'un répertoire, complément à la macro de J. Walkenbach

3 réponses
Avatar
muprotaesve
Bonjour,

Question : comment faire passer un répertoire par défaut dans cette
macro ?

Je m'explique, dans la macro on trouve les lignes :
[...]
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer

'D finit le Bureau comme dossier racine
bInfo.pidlRoot = 0&

'Invite de la boite de
[...]

donc si je comprend bien, en modifiant le paramètre bInfo.pidlRoot je
devrais pouvoir choisir à partir de quel répertoire executer la boite
de dialogue.
Oui mais.... bInfo.pidlRoot est un entier long, or pour moi un
répertoire est un string....

J'ai tenté de passer un truc en remplaçant
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)

par
'path = Space$(512)
path = "C:\mondossier"
path = path & Space$(512 - Len(path))
r = SHGetPathFromIDList(ByVal x, ByVal path)
Mais ça ne fonctionne pas.

En vous remerciant par avance pour toute aide
J

3 réponses

Avatar
Michel Pierron
Salut Jean;
A ma connaissance, tu ne peux pas en utilisant cette fonction car pidRoot
identifie l'un des répertoires spéciaux de Window. Si tu nous en disais plus sur
ton souhait, il existe d'autres manières de faire...
MP

"Jean" a écrit dans le message de
news:
Bonjour,

Question : comment faire passer un répertoire par défaut dans cette
macro ?

Je m'explique, dans la macro on trouve les lignes :
[...]
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer

'D finit le Bureau comme dossier racine
bInfo.pidlRoot = 0&

'Invite de la boite de
[...]

donc si je comprend bien, en modifiant le paramètre bInfo.pidlRoot je
devrais pouvoir choisir à partir de quel répertoire executer la boite
de dialogue.
Oui mais.... bInfo.pidlRoot est un entier long, or pour moi un
répertoire est un string....

J'ai tenté de passer un truc en remplaçant
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)

par
'path = Space$(512)
path = "C:mondossier"
path = path & Space$(512 - Len(path))
r = SHGetPathFromIDList(ByVal x, ByVal path)
Mais ça ne fonctionne pas.

En vous remerciant par avance pour toute aide
J


Avatar
muprotaesve
Merci pour ta réponse.

en fait je voudrais simplement pouvoir proposer un répertoire par
défaut histoire de ne pas repartir de "c:" à chaque fois que je lance
la boite de dialogue.

A priori, j'ai vu qu'il y a une autre possibilité a partir
.createobject("Shell.application")
Et j'ai lu des macros ou la boite est exécutée à partir d'un
répertoire donné comme paramètre.
Mais le .createobject ne fonctionne pas chez moi, il manque
certainement une référence à mon projet, mais laquelle ?

@+
"Michel Pierron" wrote in message news:...
Salut Jean;
A ma connaissance, tu ne peux pas en utilisant cette fonction car pidRoot
identifie l'un des répertoires spéciaux de Window. Si tu nous en disais plus sur
ton souhait, il existe d'autres manières de faire...
MP

"Jean" a écrit dans le message de
news:
Bonjour,

Question : comment faire passer un répertoire par défaut dans cette
macro ?




Avatar
Michel Pierron
Bonjour Jean;
Remplace 0& par 5& et tu seras dans le répertoire Mes Documents.
MP

"Jean" a écrit dans le message de
news:
Merci pour ta réponse.

en fait je voudrais simplement pouvoir proposer un répertoire par
défaut histoire de ne pas repartir de "c:" à chaque fois que je lance
la boite de dialogue.

A priori, j'ai vu qu'il y a une autre possibilité a partir
.createobject("Shell.application")
Et j'ai lu des macros ou la boite est exécutée à partir d'un
répertoire donné comme paramètre.
Mais le .createobject ne fonctionne pas chez moi, il manque
certainement une référence à mon projet, mais laquelle ?

@+
"Michel Pierron" wrote in message
news:...

Salut Jean;
A ma connaissance, tu ne peux pas en utilisant cette fonction car
pidRoot


identifie l'un des répertoires spéciaux de Window. Si tu nous en disais
plus sur


ton souhait, il existe d'autres manières de faire...
MP

"Jean" a écrit dans le message de
news:
Bonjour,

Question : comment faire passer un répertoire par défaut dans cette
macro ?