Thema Datum  Von Nutzer Rating
Antwort
22.04.2008 13:13:21 Murmelweb
NotSolved
23.04.2008 11:06:55 jh
NotSolved
23.04.2008 14:26:50 Murmelweb
NotSolved
24.04.2008 10:59:32 jh
NotSolved
Rot Aw:Aw:Aw:Aw:TXT-Dateien import Excel
24.04.2008 16:17:23 Murmelweb
NotSolved
29.04.2008 13:50:52 Murmelweb
NotSolved

Ansicht des Beitrags:
Von:
Murmelweb
Datum:
24.04.2008 16:17:23
Views:
1067
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Aw:TXT-Dateien import Excel
Hallo jh,

SUPER vielen vielen Dank das hat mir sehr geholfen ;-)

jh schrieb am 24.04.2008 10:59:32:

Hallo,

wie du sicher festgestellt hast, ist die Sub so angelegt,
dass sie mit dem Pfad zu den Textdateien als Parameter
aufgerufen wird. Wenn du den Pfad nicht im Code festlegen
kannst oder willst, weil es z. B. mehrere Möglichkeiten
gibt und die Auswahl dem Benutzer überlassen werden soll,
sind von einfach bis kompliziert mehrere Möglichkeiten
denkbar.

Private Sub TextDateienEinlesen_Aufrufen()
Dim vntOrdner As Variant, strPrompt As String, _
strTitel As String
strPrompt = "Geben Sie den Pfad ein:"
strTitel = "Textdateien einlesen"
vntOrdner = Application.InputBox (Prompt:=strPrompt, _
Title:=strTitel, Type:=2)
If Not vntOrdner = False Then
TextDateienEinlesen CStr(vntOrdner)
End If
End Sub

Das ist eine einfache Möglichkeit für versierte Anwender,
denen es keine Schwierigkeiten bereitet, den Zielpfad
manuell einzugeben. Für DAUs (Dümmster Anzunehmender User)
:-) ist das eher nix. Damit es ein bisschen professionell
aussieht, wäre sowieso der Windows-Standarddialog zur
Ordnerauswahl die beste Lösung, aber das geht schon ein
bisschen ans Eingemachte. Weil ich natürlich nicht alle
API-Funktionen auswendig kann, habe ich dafür ein bisschen
gegoogelt und übernehme für das Ergebnis keine Garantie,
aber ausprobiert habe ich es natürlich.

Füge ein Modul ein, in das folgender Code kommt:

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

Const BIF_RETURNONLYFSDIRS = 1
Const MAX_PATH = 260

Private Declare Sub CoTaskMemFree Lib "ole32.dll" _
(ByVal hMem As Long)

Private Declare Function lstrcat Lib "kernel32" Alias _
"lstrcatA" (ByVal lpString1 As String, ByVal lpString2 _
As String) As Long

Private Declare Function SHBrowseForFolder Lib _
"shell32" (lpbi As BrowseInfo) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal ClassName As String, ByVal WindowName _
As String) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pidList As Long, ByVal lpBuffer As String) As Long

Public Function vntOrdner() As Variant
Dim iNull As Integer, lpIDList As Long, sPath As String, _
udtBI As BrowseInfo
vntOrdner = False
With udtBI
.hWndOwner = FindWindow(vbNullString, Application.Caption)
.lpszTitle = lstrcat("Ordner für Textdateien auswählen:", "")
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lpIDList, sPath
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
vntOrdner = Left$(sPath, iNull - 1)
End If
End If
End Function

Die Function vntOrdner gibt False zurück, wenn der Benutzer
auf Abbrechen klickt, ansonsten den ausgewählten Ordner mit
komplettem Pfad.

Gruß

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
22.04.2008 13:13:21 Murmelweb
NotSolved
23.04.2008 11:06:55 jh
NotSolved
23.04.2008 14:26:50 Murmelweb
NotSolved
24.04.2008 10:59:32 jh
NotSolved
Rot Aw:Aw:Aw:Aw:TXT-Dateien import Excel
24.04.2008 16:17:23 Murmelweb
NotSolved
29.04.2008 13:50:52 Murmelweb
NotSolved