VBA Excel 2003 - Boîte de dialogue permettant de sélectionner un dossier ou un fichier

Le
thomas
Bonjour,

Le code ci-dessous marche parfaitement bien si je mets en 4ème paramètre de
objShell.BrowseForFolder "C:toto" mais plus du tout si je remplace
"C:toto" par une variable, "Chemin" par exemple ( Chemin = "C:toto")

Au lieu d'avoir comme dossier de départ de la recherche "C:toto" j'ai "Mes
documents". Où ai-je fait une erreur?

Merci

Dim objShell, objFolder, SecuriteSlash

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

..
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #17317851
Bonjour thomas,

La variable n'est probablement pas initialisée correctement, ou pointe
sur un chemin inexistant. Met un point d'arrêt sur la dernière ligne et
vérifie le contenu de Chemin.

thomas a écrit :
Bonjour,

Le code ci-dessous marche parfaitement bien si je mets en 4ème paramètre de
objShell.BrowseForFolder "C:toto" mais plus du tout si je remplace
"C:toto" par une variable, "Chemin" par exemple ( Chemin = "C:toto")

Au lieu d'avoir comme dossier de départ de la recherche "C:toto" j'ai "Mes
documents". Où ai-je fait une erreur?

Merci

Dim objShell, objFolder, SecuriteSlash

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

................................





--

Cordialement,

Jacques.
Daniel.C
Le #17317841
Bonsoir.
Je n'ai pas le problème, à condition de définir Chemin, ce qui n'est pas
dans ton code :
Chemin = "c:toto"
--
Cordialement.
Daniel
"thomas" <nomail> a écrit dans le message de news:
%
Bonjour,

Le code ci-dessous marche parfaitement bien si je mets en 4ème paramètre
de
objShell.BrowseForFolder "C:toto" mais plus du tout si je remplace
"C:toto" par une variable, "Chemin" par exemple ( Chemin = "C:toto")

Au lieu d'avoir comme dossier de départ de la recherche "C:toto" j'ai
"Mes
documents". Où ai-je fait une erreur?

Merci

Dim objShell, objFolder, SecuriteSlash

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

................................



thomas
Le #17318811
J'avais fait un point d'arrêt et debug.print chemin donne bien "C:toto"

"Jacques93" a écrit dans le message de groupe de discussion
: eZh#
Bonjour thomas,

La variable n'est probablement pas initialisée correctement, ou pointe
sur un chemin inexistant. Met un point d'arrêt sur la dernière ligne et
vérifie le contenu de Chemin.

thomas a écrit :
Bonjour,

Le code ci-dessous marche parfaitement bien si je mets en 4ème paramètre
de
objShell.BrowseForFolder "C:toto" mais plus du tout si je remplace
"C:toto" par une variable, "Chemin" par exemple ( Chemin = "C:toto")

Au lieu d'avoir comme dossier de départ de la recherche "C:toto" j'ai
"Mes
documents". Où ai-je fait une erreur?

Merci

Dim objShell, objFolder, SecuriteSlash

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

................................





--

Cordialement,

Jacques.
Jacques93
Le #17319011
Si le répertoire existe et que tu as les droits pour y accéder, cela
doit fonctionner.

thomas a écrit :
J'avais fait un point d'arrêt et debug.print chemin donne bien "C:toto"






--

Cordialement,

Jacques.
thomas
Le #17319001
C'est pour cela que je ne comprends pas

Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier",
&H1&, Chemin)
ne marche pas

alors que Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un
dossier", &H1&, "C:toto") marche

et que Chemin = "C:toto"

"Jacques93" a écrit dans le message de groupe de discussion
:
Si le répertoire existe et que tu as les droits pour y accéder, cela
doit fonctionner.

thomas a écrit :
J'avais fait un point d'arrêt et debug.print chemin donne bien "C:toto"






--

Cordialement,

Jacques.
Jacques93
Le #17319391
Aurais tu déclaré :

Dim Chemin as String

?

thomas a écrit :
C'est pour cela que je ne comprends pas

Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier",
&H1&, Chemin)
ne marche pas

alors que Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un
dossier", &H1&, "C:toto") marche

et que Chemin = "C:toto"

"Jacques93" a écrit dans le message de groupe de discussion
:
Si le répertoire existe et que tu as les droits pour y accéder, cela
doit fonctionner.

thomas a écrit :
J'avais fait un point d'arrêt et debug.print chemin donne bien "C:toto"










--

Cordialement,

Jacques.
thomas
Le #17319531
oui Dim Chemin as String


"Jacques93" a écrit dans le message de groupe de discussion
:
Aurais tu déclaré :

Dim Chemin as String

?

thomas a écrit :
C'est pour cela que je ne comprends pas

Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier",
&H1&, Chemin)
ne marche pas

alors que Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un
dossier", &H1&, "C:toto") marche

et que Chemin = "C:toto"

"Jacques93" a écrit dans le message de groupe de
discussion
:
Si le répertoire existe et que tu as les droits pour y accéder, cela
doit fonctionner.

thomas a écrit :
J'avais fait un point d'arrêt et debug.print chemin donne bien
"C:toto"










--

Cordialement,

Jacques.
Jacques93
Le #17319511
Essaie avec :

Dim Chemin As Variant

Ce paramètre peut être soit une chaine de caractères, soit une constante
numérique :



thomas a écrit :
oui Dim Chemin as String


"Jacques93" a écrit dans le message de groupe de discussion
:
Aurais tu déclaré :

Dim Chemin as String

?




--

Cordialement,

Jacques.
thomas
Le #17320111
ben non cela ne marche pas mieux mais ce qui est bizarre c'est que si je
clique sur annuler dans la boîte de recherche , Chemin =
objFolder.ParentFolder.ParseName(objFolder.Title).Path restitue le chemin
que j'ai défini par défaut et pas celui que la boîte affiche



"Jacques93" a écrit dans le message de groupe de discussion
:
Essaie avec :

Dim Chemin As Variant

Ce paramètre peut être soit une chaine de caractères, soit une constante
numérique :



thomas a écrit :
oui Dim Chemin as String


"Jacques93" a écrit dans le message de groupe de
discussion
:
Aurais tu déclaré :

Dim Chemin as String

?




--

Cordialement,

Jacques.
Daniel.C
Le #17320371
Ca ne te donnera pas la solution, mais, si tu veux uniquement récupérer le
chemin du répertoire, utilise :
Dim Chemin As String, Dossier As String
Chemin = "c:toto"
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = Chemin
.Show
If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1)
End With
Daniel
"thomas" <nomail> a écrit dans le message de news:

ben non cela ne marche pas mieux mais ce qui est bizarre c'est que si je
clique sur annuler dans la boîte de recherche , Chemin > objFolder.ParentFolder.ParseName(objFolder.Title).Path restitue le chemin
que j'ai défini par défaut et pas celui que la boîte affiche



"Jacques93" a écrit dans le message de groupe de
discussion
:
Essaie avec :

Dim Chemin As Variant

Ce paramètre peut être soit une chaine de caractères, soit une constante
numérique :



thomas a écrit :
oui Dim Chemin as String


"Jacques93" a écrit dans le message de groupe de
discussion
:
Aurais tu déclaré :

Dim Chemin as String

?




--

Cordialement,

Jacques.



Publicité
Poster une réponse
Anonyme