Supportnet / Forum / Tabellenkalkulation
Pfad auswählen
Frage
Hallo,
Ich möchte einen Button so programmieren das man einen Pfad aus einem Verzeichnis auswählen kann. Mir fehlen leider
die nötigen grundlagen und deswegen bitte ich um Hilfe.
Danke im Voraus
MFG
Christian
Antwort 1 von rauti24
hi
hat das nicht mehr mit programmierung/erstellung von webseiten zu tun?
wenn ich dich richtig verstehe willst du z.b. dein display unterteilen in 2 fenster und je nachdem welches du anklickst soll eine neue oder weitere option kommen sowie wenn 1 dann ....
richtig verstanden?
hat das nicht mehr mit programmierung/erstellung von webseiten zu tun?
wenn ich dich richtig verstehe willst du z.b. dein display unterteilen in 2 fenster und je nachdem welches du anklickst soll eine neue oder weitere option kommen sowie wenn 1 dann ....
richtig verstanden?
Antwort 2 von nighty
hi :)
hier ein beispiel wo das gewuenschte leicht zu isolieren geht
gruss nighty
Option Explicit
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDList As Long, ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Sub makro01()
Dim i As Integer, letzte As Integer
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = Ordnerwählen("Ab welchem Verzeichnis einlesen?")
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
Rem hier deine bereichsangaben leicht anpassbar sind
Workbooks(2).Sheets(1).Range("A1:A22", "B1:F22").Copy
letzte = Workbooks(1).Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Workbooks(1).Sheets(1).Cells(letzte, 1).Insert Shift:=xlDown
Workbooks(2).Sheets(1).Application.CutCopyMode = False
Workbooks(2).Close
Next i
End If
End With
Application.DisplayAlerts = True
End Sub
Private Function Ordnerwählen(ByVal strTitle As String) As String
Dim lngIDList As Long
Dim strBuffer As String
Dim UserBrowseInfo As BrowseInfo
With UserBrowseInfo
.hwndOwner = 0
.lpszTitle = lstrcat(strTitle, "")
.ulFlags = 3
End With
lngIDList = SHBrowseForFolder(UserBrowseInfo)
If (lngIDList) Then
strBuffer = Space(260)
SHGetPathFromIDList lngIDList, strBuffer
strBuffer = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
Ordnerwählen = strBuffer
End If
End Function
hier ein beispiel wo das gewuenschte leicht zu isolieren geht
gruss nighty
Option Explicit
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDList As Long, ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Sub makro01()
Dim i As Integer, letzte As Integer
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = Ordnerwählen("Ab welchem Verzeichnis einlesen?")
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
Rem hier deine bereichsangaben leicht anpassbar sind
Workbooks(2).Sheets(1).Range("A1:A22", "B1:F22").Copy
letzte = Workbooks(1).Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Workbooks(1).Sheets(1).Cells(letzte, 1).Insert Shift:=xlDown
Workbooks(2).Sheets(1).Application.CutCopyMode = False
Workbooks(2).Close
Next i
End If
End With
Application.DisplayAlerts = True
End Sub
Private Function Ordnerwählen(ByVal strTitle As String) As String
Dim lngIDList As Long
Dim strBuffer As String
Dim UserBrowseInfo As BrowseInfo
With UserBrowseInfo
.hwndOwner = 0
.lpszTitle = lstrcat(strTitle, "")
.ulFlags = 3
End With
lngIDList = SHBrowseForFolder(UserBrowseInfo)
If (lngIDList) Then
strBuffer = Space(260)
SHGetPathFromIDList lngIDList, strBuffer
strBuffer = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
Ordnerwählen = strBuffer
End If
End Function