OVH Cloud OVH Cloud

VBA : créer un configurateur...

11 réponses
Avatar
Ricou
Bonjour,

Voici la situation : J'ai un fichier Excel avec des macros qui appellent
d'autres fichiers avec le chemin d'accès exact.

Mon souci : J'aimerais dupliquer ce fichier pour des personnes différentes
(donc pour des chemins d'accès différents)

Ma solution : créer une sorte de maccro "configurateur" qui peut être lancée
à la demande de l'utilisateur (ca, je sais faire) qui permettrait à
l'utilisateur de rentrer le chemin exact qu'il veut et qui serait mémoriser
une fois pour toute (jusqu'à ce que l'utilisateur décide de changer de
chemin...). Là ca se complique pour moi...

Merci d'avance pour votre aide ;-)

1 réponse

1 2
Avatar
Ricou
Merci Daniel,

cette solution est simple et fonctionne bien.

MMerci à tous pour votre aide !


Change la macro Test comme suit. J'ai supposé que le chemin était stocké
dans la cellule A1 de la feuille active. A modifier selon tes besoins.

Sub Test()
Dim Msg As String, Rep As Integer, Repertoire As String
Rep = MsgBox("Voulez-vous changer de répertoire ?", 1)
Msg = "Choisissez un chemin"
If Rep = 1 Then
Repertoire = GetDirectory(Msg)
Range("A1").Value = Repertoire
Else
Repertoire = Range("A1").Value
End If
End Sub

Daniel
"Ricou" a écrit dans le message de news:

Bonjour Daniel,

OK, cela fonctionne plutôt bien mais cela va m'obliger à redemander le
chemin à chaque fois. Hors moi, j'aimerais le figer assez durablement et
qu'il soit conservé d'une fois sur l'autre. Il faudrait donc un système
qui
enregistre le chemin de manière durable... Et ça, je ne sais pas si ça
existe...

Merci pour ton aide


Bonjour.
Essaie le code suivant :
La macro test te permets de récupérer le chemin d'après une boîte de
dialogue :

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 chemin."
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

"Ricou" a écrit dans le message de
news:

Bonjour,

Voici la situation : J'ai un fichier Excel avec des macros qui
appellent
d'autres fichiers avec le chemin d'accès exact.

Mon souci : J'aimerais dupliquer ce fichier pour des personnes
différentes
(donc pour des chemins d'accès différents)

Ma solution : créer une sorte de maccro "configurateur" qui peut être
lancée
à la demande de l'utilisateur (ca, je sais faire) qui permettrait à
l'utilisateur de rentrer le chemin exact qu'il veut et qui serait
mémoriser
une fois pour toute (jusqu'à ce que l'utilisateur décide de changer de
chemin...). Là ca se complique pour moi...

Merci d'avance pour votre aide ;-)














1 2