VBA Excel 2003 - Boîte de dialogue permettant de sélectionner un dossier ou un fichier
20 réponses
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)
je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" a écrit dans le message de groupe de discussion : 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 :
"Jacques93" a écrit dans le message de groupe de discussion : Aurais tu déclaré :
Dim Chemin as String
?
--
Cordialement,
Jacques.
je récupère bien le chemin choisi par la boite de dialogue mais la boite de
dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : uckkhUcHJHA.4760@TK2MSFTNGP05.phx.gbl...
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:
uPazGGcHJHA.4060@TK2MSFTNGP03.phx.gbl...
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" <jacques@Nospam> a écrit dans le message de groupe de
discussion
: OgLDIfbHJHA.1160@TK2MSFTNGP05.phx.gbl...
Essaie avec :
Dim Chemin As Variant
Ce paramètre peut être soit une chaine de caractères, soit une constante
numérique :
je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" a écrit dans le message de groupe de discussion : 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 :
"Jacques93" a écrit dans le message de groupe de discussion : Aurais tu déclaré :
Dim Chemin as String
?
--
Cordialement,
Jacques.
Daniel.C
Non. Il se ppositionne sur le chemin spécifié par ce que tu indiques dans la variable Chemin. Si tu veux que le chemin par défaut s'affiche, tu n'as pas besoin de spécifier un chemin :
Dim Chemin As String, Dossier As String With Application.FileDialog(msoFileDialogFolderPicker) .Show MsgBox "Chemin par défaut : " & CurDir If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) End With J'ai ajouté un msgbox par comparaison.
Daniel "thomas" <nomail> a écrit dans le message de news:
je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" a écrit dans le message de groupe de discussion : 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 :
"Jacques93" a écrit dans le message de groupe de discussion : Aurais tu déclaré :
Dim Chemin as String
?
--
Cordialement,
Jacques.
Non. Il se ppositionne sur le chemin spécifié par ce que tu indiques dans la
variable Chemin. Si tu veux que le chemin par défaut s'affiche, tu n'as pas
besoin de spécifier un chemin :
Dim Chemin As String, Dossier As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
MsgBox "Chemin par défaut : " & CurDir
If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1)
End With
J'ai ajouté un msgbox par comparaison.
Daniel
"thomas" <nomail> a écrit dans le message de news:
uTkb0bcHJHA.1304@TK2MSFTNGP02.phx.gbl...
je récupère bien le chemin choisi par la boite de dialogue mais la boite
de
dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : uckkhUcHJHA.4760@TK2MSFTNGP05.phx.gbl...
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:
uPazGGcHJHA.4060@TK2MSFTNGP03.phx.gbl...
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" <jacques@Nospam> a écrit dans le message de groupe de
discussion
: OgLDIfbHJHA.1160@TK2MSFTNGP05.phx.gbl...
Essaie avec :
Dim Chemin As Variant
Ce paramètre peut être soit une chaine de caractères, soit une constante
numérique :
Non. Il se ppositionne sur le chemin spécifié par ce que tu indiques dans la variable Chemin. Si tu veux que le chemin par défaut s'affiche, tu n'as pas besoin de spécifier un chemin :
Dim Chemin As String, Dossier As String With Application.FileDialog(msoFileDialogFolderPicker) .Show MsgBox "Chemin par défaut : " & CurDir If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) End With J'ai ajouté un msgbox par comparaison.
Daniel "thomas" <nomail> a écrit dans le message de news:
je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" a écrit dans le message de groupe de discussion : 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 :
"Jacques93" a écrit dans le message de groupe de discussion : Aurais tu déclaré :
Dim Chemin as String
?
--
Cordialement,
Jacques.
thomas
ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie
"Daniel.C" a écrit dans le message de groupe de discussion : # Non. Il se ppositionne sur le chemin spécifié par ce que tu indiques dans la variable Chemin. Si tu veux que le chemin par défaut s'affiche, tu n'as pas besoin de spécifier un chemin :
Dim Chemin As String, Dossier As String With Application.FileDialog(msoFileDialogFolderPicker) .Show MsgBox "Chemin par défaut : " & CurDir If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) End With J'ai ajouté un msgbox par comparaison.
Daniel "thomas" <nomail> a écrit dans le message de news:
je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" a écrit dans le message de groupe de discussion : 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 :
"Jacques93" a écrit dans le message de groupe de discussion : Aurais tu déclaré :
Dim Chemin as String
?
--
Cordialement,
Jacques.
ce n'est pas le chemin courant que je veux par defaut mais un chemin que je
specifie
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : #ybPrpcHJHA.1088@TK2MSFTNGP02.phx.gbl...
Non. Il se ppositionne sur le chemin spécifié par ce que tu indiques dans la
variable Chemin. Si tu veux que le chemin par défaut s'affiche, tu n'as pas
besoin de spécifier un chemin :
Dim Chemin As String, Dossier As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
MsgBox "Chemin par défaut : " & CurDir
If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1)
End With
J'ai ajouté un msgbox par comparaison.
Daniel
"thomas" <nomail> a écrit dans le message de news:
uTkb0bcHJHA.1304@TK2MSFTNGP02.phx.gbl...
je récupère bien le chemin choisi par la boite de dialogue mais la boite
de
dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : uckkhUcHJHA.4760@TK2MSFTNGP05.phx.gbl...
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:
uPazGGcHJHA.4060@TK2MSFTNGP03.phx.gbl...
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" <jacques@Nospam> a écrit dans le message de groupe de
discussion
: OgLDIfbHJHA.1160@TK2MSFTNGP05.phx.gbl...
Essaie avec :
Dim Chemin As Variant
Ce paramètre peut être soit une chaine de caractères, soit une constante
numérique :
ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie
"Daniel.C" a écrit dans le message de groupe de discussion : # Non. Il se ppositionne sur le chemin spécifié par ce que tu indiques dans la variable Chemin. Si tu veux que le chemin par défaut s'affiche, tu n'as pas besoin de spécifier un chemin :
Dim Chemin As String, Dossier As String With Application.FileDialog(msoFileDialogFolderPicker) .Show MsgBox "Chemin par défaut : " & CurDir If .SelectedItems.Count > 0 Then Dossier = .SelectedItems(1) End With J'ai ajouté un msgbox par comparaison.
Daniel "thomas" <nomail> a écrit dans le message de news:
je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut
"Daniel.C" a écrit dans le message de groupe de discussion : 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 :
"Jacques93" a écrit dans le message de groupe de discussion : Aurais tu déclaré :
Dim Chemin as String
?
--
Cordialement,
Jacques.
Daniel.C
"je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
"je récupère bien le chemin choisi par la boite de dialogue mais la boite de
dialogue ne se positionne pas sur le chemin par defaut"
"ce n'est pas le chemin courant que je veux par defaut mais un chemin que je
specifie"
Il faudrait savoir ce que tu veux.
Daniel
"je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
thomas
Je dis depuis le début que je veux récupérer un chemin bien défini contenu dans une variable : c:toto dans mon exemple
"Daniel.C" a écrit dans le message de groupe de discussion : "je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
Je dis depuis le début que je veux récupérer un chemin bien défini contenu
dans une variable : c:toto dans mon exemple
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : eIkCb5cHJHA.728@TK2MSFTNGP03.phx.gbl...
"je récupère bien le chemin choisi par la boite de dialogue mais la boite de
dialogue ne se positionne pas sur le chemin par defaut"
"ce n'est pas le chemin courant que je veux par defaut mais un chemin que je
specifie"
Il faudrait savoir ce que tu veux.
Daniel
Je dis depuis le début que je veux récupérer un chemin bien défini contenu dans une variable : c:toto dans mon exemple
"Daniel.C" a écrit dans le message de groupe de discussion : "je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
Jacques93
Bonjour thomas, Bizarre, chez moi cela réagit bien comme ça :
Dim Chemin As String
Racine = "BureauJacques"
Dim Chemin as Variant
Racine "C:Toto"
Si je laisse :
Dim Chemin as String
mais que je force la conversion avec
.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, CVar(Chemin))
Racine = "C:Toto"
De même si j'ajoute une référence à Microsoft Shell Controls And Automation (Shell32.dll), et que je déclare :
Dim objShell As Shell Dim objFolder As Folder Dim Chemin As String
Chemin = "c:toto" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, Chemin)
c'est bon, la conversion étant implicite.
NB : Si tu travailles sur la même machine que celle décrite sur microsoft.public.fr.windows.vista.general (BSOD, perte des mots de passe, des points de restauration, etc ...), il serait peut être bon d'y faire le ménage avant de poursuivre ;-)
thomas a écrit :
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
--
Cordialement,
Jacques.
Bonjour thomas,
Bizarre, chez moi cela réagit bien comme ça :
Dim Chemin As String
Racine = "BureauJacques"
Dim Chemin as Variant
Racine "C:Toto"
Si je laisse :
Dim Chemin as String
mais que je force la conversion avec
.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, CVar(Chemin))
Racine = "C:Toto"
De même si j'ajoute une référence à Microsoft Shell Controls And
Automation (Shell32.dll), et que je déclare :
Dim objShell As Shell
Dim objFolder As Folder
Dim Chemin As String
Chemin = "c:toto"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un
dossier", &H1&, Chemin)
c'est bon, la conversion étant implicite.
NB : Si tu travailles sur la même machine que celle décrite sur
microsoft.public.fr.windows.vista.general (BSOD, perte des mots de
passe, des points de restauration, etc ...), il serait peut être bon
d'y faire le ménage avant de poursuivre ;-)
thomas a écrit :
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
Bonjour thomas, Bizarre, chez moi cela réagit bien comme ça :
Dim Chemin As String
Racine = "BureauJacques"
Dim Chemin as Variant
Racine "C:Toto"
Si je laisse :
Dim Chemin as String
mais que je force la conversion avec
.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, CVar(Chemin))
Racine = "C:Toto"
De même si j'ajoute une référence à Microsoft Shell Controls And Automation (Shell32.dll), et que je déclare :
Dim objShell As Shell Dim objFolder As Folder Dim Chemin As String
Chemin = "c:toto" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, Chemin)
c'est bon, la conversion étant implicite.
NB : Si tu travailles sur la même machine que celle décrite sur microsoft.public.fr.windows.vista.general (BSOD, perte des mots de passe, des points de restauration, etc ...), il serait peut être bon d'y faire le ménage avant de poursuivre ;-)
thomas a écrit :
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
--
Cordialement,
Jacques.
Daniel.C
Publie tout ton code. Daniel "thomas" <nomail> a écrit dans le message de news:
Je dis depuis le début que je veux récupérer un chemin bien défini contenu dans une variable : c:toto dans mon exemple
"Daniel.C" a écrit dans le message de groupe de discussion : "je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
Publie tout ton code.
Daniel
"thomas" <nomail> a écrit dans le message de news:
uhI3NlgHJHA.3868@TK2MSFTNGP04.phx.gbl...
Je dis depuis le début que je veux récupérer un chemin bien défini contenu
dans une variable : c:toto dans mon exemple
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : eIkCb5cHJHA.728@TK2MSFTNGP03.phx.gbl...
"je récupère bien le chemin choisi par la boite de dialogue mais la boite
de
dialogue ne se positionne pas sur le chemin par defaut"
"ce n'est pas le chemin courant que je veux par defaut mais un chemin que
je
specifie"
Il faudrait savoir ce que tu veux.
Daniel
Publie tout ton code. Daniel "thomas" <nomail> a écrit dans le message de news:
Je dis depuis le début que je veux récupérer un chemin bien défini contenu dans une variable : c:toto dans mon exemple
"Daniel.C" a écrit dans le message de groupe de discussion : "je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
isabelle
bonjour Thomas,
Sub ChoixRepertoire() Dim objShell As Object, objFolder As Object, oFolderItem As Object Dim Chemin As String
Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next Set oFolderItem = objFolder.Items.Item Chemin = oFolderItem.Path
MsgBox Chemin End Sub
isabelle
thomas a écrit :
Je dis depuis le début que je veux récupérer un chemin bien défini contenu dans une variable : c:toto dans mon exemple
"Daniel.C" a écrit dans le message de groupe de discussion : "je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
bonjour Thomas,
Sub ChoixRepertoire()
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path
MsgBox Chemin
End Sub
isabelle
thomas a écrit :
Je dis depuis le début que je veux récupérer un chemin bien défini contenu
dans une variable : c:toto dans mon exemple
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de groupe de
discussion : eIkCb5cHJHA.728@TK2MSFTNGP03.phx.gbl...
"je récupère bien le chemin choisi par la boite de dialogue mais la boite de
dialogue ne se positionne pas sur le chemin par defaut"
"ce n'est pas le chemin courant que je veux par defaut mais un chemin que je
specifie"
Il faudrait savoir ce que tu veux.
Daniel
Sub ChoixRepertoire() Dim objShell As Object, objFolder As Object, oFolderItem As Object Dim Chemin As String
Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next Set oFolderItem = objFolder.Items.Item Chemin = oFolderItem.Path
MsgBox Chemin End Sub
isabelle
thomas a écrit :
Je dis depuis le début que je veux récupérer un chemin bien défini contenu dans une variable : c:toto dans mon exemple
"Daniel.C" a écrit dans le message de groupe de discussion : "je récupère bien le chemin choisi par la boite de dialogue mais la boite de dialogue ne se positionne pas sur le chemin par defaut" "ce n'est pas le chemin courant que je veux par defaut mais un chemin que je specifie" Il faudrait savoir ce que tu veux. Daniel
thomas
Le problème se posait aussi au bureau
J'avais bien changé Dim Chemin as string en Dim Chemin as Variant
Avec CVar(Chemin)) ça marche!
Merci
"Jacques93" a écrit dans le message de groupe de discussion : # Bonjour thomas, Bizarre, chez moi cela réagit bien comme ça :
Dim Chemin As String
Racine = "BureauJacques"
Dim Chemin as Variant
Racine "C:Toto"
Si je laisse :
Dim Chemin as String
mais que je force la conversion avec
.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, CVar(Chemin))
Racine = "C:Toto"
De même si j'ajoute une référence à Microsoft Shell Controls And Automation (Shell32.dll), et que je déclare :
Dim objShell As Shell Dim objFolder As Folder Dim Chemin As String
Chemin = "c:toto" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, Chemin)
c'est bon, la conversion étant implicite.
NB : Si tu travailles sur la même machine que celle décrite sur microsoft.public.fr.windows.vista.general (BSOD, perte des mots de passe, des points de restauration, etc ...), il serait peut être bon d'y faire le ménage avant de poursuivre ;-)
thomas a écrit :
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
--
Cordialement,
Jacques.
Le problème se posait aussi au bureau
J'avais bien changé Dim Chemin as string en Dim Chemin as Variant
Avec CVar(Chemin)) ça marche!
Merci
"Jacques93" <jacques@Nospam> a écrit dans le message de groupe de discussion
: #exXxBhHJHA.3668@TK2MSFTNGP02.phx.gbl...
Bonjour thomas,
Bizarre, chez moi cela réagit bien comme ça :
Dim Chemin As String
Racine = "BureauJacques"
Dim Chemin as Variant
Racine "C:Toto"
Si je laisse :
Dim Chemin as String
mais que je force la conversion avec
.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, CVar(Chemin))
Racine = "C:Toto"
De même si j'ajoute une référence à Microsoft Shell Controls And
Automation (Shell32.dll), et que je déclare :
Dim objShell As Shell
Dim objFolder As Folder
Dim Chemin As String
Chemin = "c:toto"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un
dossier", &H1&, Chemin)
c'est bon, la conversion étant implicite.
NB : Si tu travailles sur la même machine que celle décrite sur
microsoft.public.fr.windows.vista.general (BSOD, perte des mots de
passe, des points de restauration, etc ...), il serait peut être bon
d'y faire le ménage avant de poursuivre ;-)
thomas a écrit :
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
J'avais bien changé Dim Chemin as string en Dim Chemin as Variant
Avec CVar(Chemin)) ça marche!
Merci
"Jacques93" a écrit dans le message de groupe de discussion : # Bonjour thomas, Bizarre, chez moi cela réagit bien comme ça :
Dim Chemin As String
Racine = "BureauJacques"
Dim Chemin as Variant
Racine "C:Toto"
Si je laisse :
Dim Chemin as String
mais que je force la conversion avec
.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, CVar(Chemin))
Racine = "C:Toto"
De même si j'ajoute une référence à Microsoft Shell Controls And Automation (Shell32.dll), et que je déclare :
Dim objShell As Shell Dim objFolder As Folder Dim Chemin As String
Chemin = "c:toto" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un dossier", &H1&, Chemin)
c'est bon, la conversion étant implicite.
NB : Si tu travailles sur la même machine que celle décrite sur microsoft.public.fr.windows.vista.general (BSOD, perte des mots de passe, des points de restauration, etc ...), il serait peut être bon d'y faire le ménage avant de poursuivre ;-)
thomas a écrit :
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
--
Cordialement,
Jacques.
Jacques93
Tant mieux, mais tout de même bizarre que les autres méthodes ne fonctionnent pas. En tout cas merci du retour :-)
thomas a écrit :
Le problème se posait aussi au bureau
J'avais bien changé Dim Chemin as string en Dim Chemin as Variant
Avec CVar(Chemin)) ça marche!
Merci
--
Cordialement,
Jacques.
Tant mieux, mais tout de même bizarre que les autres méthodes ne
fonctionnent pas. En tout cas merci du retour :-)
thomas a écrit :
Le problème se posait aussi au bureau
J'avais bien changé Dim Chemin as string en Dim Chemin as Variant