J'ai créer un formulaire qui me permet de copier des fichiers d'un
répertoire à un autre.
J'ai mis le nom complet du dossier de départ une Texbox et idem pour le
dossier de destination. Cela marche bien, mais si je veux utiliser un autre
chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est
plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une
installation de programme,
mettre un chemin par défaut dans contrôle style une combobox ou autre chose
et cliquer dessus pour remmonter/descendre l'arborescence du chemin.
Merci pour votre aide.
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
Daniel
Bonjour. Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" a écrit dans le message de news:
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un répertoire à un autre. J'ai mis le nom complet du dossier de départ une Texbox et idem pour le dossier de destination. Cela marche bien, mais si je veux utiliser un autre chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une installation de programme, mettre un chemin par défaut dans contrôle style une combobox ou autre chose et cliquer dessus pour remmonter/descendre l'arborescence du chemin. Merci pour votre aide.
Thierry
Bonjour.
Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String)
_
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" <Thierry@discussions.microsoft.com> a écrit dans le message de
news: 52D86C0C-47ED-45AD-AB2C-87EB542575B1@microsoft.com...
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un
répertoire à un autre.
J'ai mis le nom complet du dossier de départ une Texbox et idem pour le
dossier de destination. Cela marche bien, mais si je veux utiliser un
autre
chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui
n'est
plus pratique du tout. Donc je ce que voudrais faire c'est comme lors
d'une
installation de programme,
mettre un chemin par défaut dans contrôle style une combobox ou autre
chose
et cliquer dessus pour remmonter/descendre l'arborescence du chemin.
Merci pour votre aide.
Bonjour. Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" a écrit dans le message de news:
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un répertoire à un autre. J'ai mis le nom complet du dossier de départ une Texbox et idem pour le dossier de destination. Cela marche bien, mais si je veux utiliser un autre chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une installation de programme, mettre un chemin par défaut dans contrôle style une combobox ou autre chose et cliquer dessus pour remmonter/descendre l'arborescence du chemin. Merci pour votre aide.
Thierry
Thierry
Merci pour ta réponse Thierrry
Bonjour. Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" a écrit dans le message de news:
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un répertoire à un autre. J'ai mis le nom complet du dossier de départ une Texbox et idem pour le dossier de destination. Cela marche bien, mais si je veux utiliser un autre chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une installation de programme, mettre un chemin par défaut dans contrôle style une combobox ou autre chose et cliquer dessus pour remmonter/descendre l'arborescence du chemin. Merci pour votre aide.
Thierry
Merci pour ta réponse
Thierrry
Bonjour.
Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String)
_
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" <Thierry@discussions.microsoft.com> a écrit dans le message de
news: 52D86C0C-47ED-45AD-AB2C-87EB542575B1@microsoft.com...
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un
répertoire à un autre.
J'ai mis le nom complet du dossier de départ une Texbox et idem pour le
dossier de destination. Cela marche bien, mais si je veux utiliser un
autre
chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui
n'est
plus pratique du tout. Donc je ce que voudrais faire c'est comme lors
d'une
installation de programme,
mettre un chemin par défaut dans contrôle style une combobox ou autre
chose
et cliquer dessus pour remmonter/descendre l'arborescence du chemin.
Merci pour votre aide.
Bonjour. Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" a écrit dans le message de news:
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un répertoire à un autre. J'ai mis le nom complet du dossier de départ une Texbox et idem pour le dossier de destination. Cela marche bien, mais si je veux utiliser un autre chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une installation de programme, mettre un chemin par défaut dans contrôle style une combobox ou autre chose et cliquer dessus pour remmonter/descendre l'arborescence du chemin. Merci pour votre aide.
Thierry
Thierry
Merci pour ta réponse, cela marche bein. Par contre est-ce qu'il est possible de lister les répertoires à partir d'un chemin prédéfini au lieu d'avoir la totalité de l'arborescence du poste de travail. Merci
Bonjour. Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" a écrit dans le message de news:
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un répertoire à un autre. J'ai mis le nom complet du dossier de départ une Texbox et idem pour le dossier de destination. Cela marche bien, mais si je veux utiliser un autre chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une installation de programme, mettre un chemin par défaut dans contrôle style une combobox ou autre chose et cliquer dessus pour remmonter/descendre l'arborescence du chemin. Merci pour votre aide.
Thierry
Merci pour ta réponse, cela marche bein.
Par contre est-ce qu'il est possible de lister les répertoires à partir d'un
chemin prédéfini au lieu d'avoir la totalité de l'arborescence du poste de
travail.
Merci
Bonjour.
Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String)
_
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" <Thierry@discussions.microsoft.com> a écrit dans le message de
news: 52D86C0C-47ED-45AD-AB2C-87EB542575B1@microsoft.com...
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un
répertoire à un autre.
J'ai mis le nom complet du dossier de départ une Texbox et idem pour le
dossier de destination. Cela marche bien, mais si je veux utiliser un
autre
chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui
n'est
plus pratique du tout. Donc je ce que voudrais faire c'est comme lors
d'une
installation de programme,
mettre un chemin par défaut dans contrôle style une combobox ou autre
chose
et cliquer dessus pour remmonter/descendre l'arborescence du chemin.
Merci pour votre aide.
Merci pour ta réponse, cela marche bein. Par contre est-ce qu'il est possible de lister les répertoires à partir d'un chemin prédéfini au lieu d'avoir la totalité de l'arborescence du poste de travail. Merci
Bonjour. Copie tout ce code et exécute la macro Test :
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub Test()
Dim Msg As String
Msg = "Choisissez un répertoire."
MsgBox GetDirectory(Msg)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Cordialement.
Daniel
"Thierry" a écrit dans le message de news:
Bonjour,
J'ai créer un formulaire qui me permet de copier des fichiers d'un répertoire à un autre. J'ai mis le nom complet du dossier de départ une Texbox et idem pour le dossier de destination. Cela marche bien, mais si je veux utiliser un autre chemin, je suis obliger de saisir en entier le nouveau chemin, ce qui n'est plus pratique du tout. Donc je ce que voudrais faire c'est comme lors d'une installation de programme, mettre un chemin par défaut dans contrôle style une combobox ou autre chose et cliquer dessus pour remmonter/descendre l'arborescence du chemin. Merci pour votre aide.