Hallo
Es ist in Ordnung, ich habe eine Lösung gefunden!!
Nach mehreren Versuchen überlasse ich Ihnen den Code
Die Lösungen für diese beiden Positionen:
http://codes-sources.commentcamarche.net/forum/affich-15102-selectionner-un-repertoire-avec-une-boite-de-dialogue-en-vba
http://www.cadsharp.com/blog/solidworks-macro-compatible-64-vba7/
Nach Belieben zu ändern:
Privater Typ BROWSEINFO ', der von der Funktion GetFolderName verwendet wird
hBesitzer als LongPtr
pidlRoot As LongPtr
pszDisplayName als Zeichenfolge
lpszTitle als Zeichenfolge
ulFlags als LongPtr
lpfn Als LongPtr
lParam als LongPtr
iImage als LongPtr
Art des Endes
#If VBA7 dann
Private Deklarieren der PtrSafe-Funktion SHGetPathFromIDList Lib "shell32.dll" aka "SHGetPathFromIDListA" (ByVal pidl als LongPtr, ByVal pszPath als String) als LongPtr
Private Declare PtrSafe Function SHBrowseForFolder Lib "shell32.dll" aka "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As LongPtr
#Else
'Private Declare Function SHGetPathFromIDList lib "shell32.dll" aka "SHGetPathFromIDListA" (ByVal pidl as LongPtr, ByVal pszPath as String) so lang
'Private Declare Function SHBrowseForFolder Lib "shell32.dll" aka "SHBrowseForFolderA" (lpBrowseInfo as BROWSEINFO) so lang
#End Eibe
Funktion GetFolderName(Msg als Zeichenfolge) als Zeichenfolge
' gibt den Namen des vom Benutzer ausgewählten Ordners zurück
Dim bInfo As BROWSEINFO, path As String, r As LongPtr, x As LongPtr, pos As Integer
'bInfo.pidlRoot 0& ' Stammordner Desktop
Wenn IsMissing(Msg) dann
bInfo.lpszTitle = "Arbeitsverzeichnis auswählen" ' der Titel des Dialogs
Oder
bInfo.lpszTitle = Msg ' der Titel des Dialogs
Ende, wenn
bInfo.ulFlags = &H1 ' Typ des zurückzugebenden Verzeichnisses
x = SHBrowseForFolder(bInfo) ' zeigt das Dialogfeld an
' Analysieren des Ergebnisses
Pfad = Leerzeichen$(512)
r = SHGetPathFromIDList(ByVal x, ByVal Pfad)
Wenn r Dann
pos = InStr(Pfad, Chr$(0))
GetFolderName = Links(Pfad, pos - 1)
Oder
GetFolderName = ""
Ende, wenn
Ende-Funktion
Privater Sub CommandButton2_Click()
Dim Rep0 als Zeichenfolge
Rep0 = GetFolderName("Arbeitsverzeichnis auswählen")
FrmE2S.TextBox1.Text = Rep0
Ende Sub