Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

txt.-Datei per UF mit getdirectory

txt.-Datei per UF mit getdirectory
12.10.2006 21:29:35
Wolfgang
Hallo*
einmal mehr benötige ich die Hilfe des Forums; Über eine UF würde ich gerne diverse Textdateien "ansteuern" (alle mit nicht feststehenden Namen) und die Daten dann in ein jeweils auszuwählendes Tabellenblatt und eine jeweils auszuwählende Spalte einfügen. Ich denke mir, dass die UF mehrere Sektionen enthalten könnte und jede Sektion a) die Möglichkeit der Anwahl der Textdatei (hierzu habe ich einen evtl. denkbaren Code in Recherche entdeckt und untenstehend eingefügt), b) ein Auswahlfenster für die anzusteuernde Tabelle und C) ein Auswahlfenster für die auszuwählende Spalte, in die die Daten ab Zeile 1 hineinkopiert werden sollen. Wie könnten die Codes umgestellt werden, dass ein Ansteuern nach vorgenannten Modalitäten erfolgen kann? - Herzlichen Dank schon jetzt wieder Allen für die Rückmeldung.
Gruß
Wolfgang
Hier der Code für getdirectory:
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
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 DirAuswahl()
Dim msg As String
msg = "Wählen Sie bitte einen Ordner aus:"
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
bInfo.pidlRoot = 0&
If IsMissing(msg) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
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

Hier der Code für den Import der Textdatei:

Sub Import1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Dokumente und Einstellungen\A\Desktop\KundeA.txt", _
Destination:=Range("A1"))
.Name = "KundeA"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(9, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: txt.-Datei per UF mit getdirectory
13.10.2006 00:49:54
fcs
Hallo Wolfgang,
ich habe hier mal etwas gebastelt, allerdings nicht als Userform sondern einfach als Tabelle mit den entsprechenden Steuerungsfunktionen. so lassen sich die VBA-prozeduren für einen VBA-Anfäger etwas einfacher nachvollziehen, als wenn man über ein Userform geht. In der Tabelle "Steuerung" werden mehrfach Bereichsnamen verwendet, um die Auswahlboxen mit Daten zu füttern.
Der eigentliche Textimport funktioniert noch nicht, da gibt es eine Fehlermeldung. Evtl ist die von dir gewählte Importfunktion auch nicht die geeignete. Mit QuerryTables.Add wird eine Abfragetabelle eingefügt. Diese ermöglicht nach Änderungen in der Quelldatei eine "einfache" Aktualisierung der Daten in Excel. Ich weiß nicht ob es das ist, was du möchtest. Mir scheint, du willst einfach die Daten aus der Textdatei in eine Spalte einer Tabelle übertragen und fertig. Dazu muss der Datenimport anders aussehen und eine Textdatei mit ein paar Testdaten wäre sehr hilfreich, um dir da auch noch etwas weiter zu helfen.

Die Datei https://www.herber.de/bbs/user/37360.xls wurde aus Datenschutzgründen gelöscht

Gruss
Franz
Anzeige
Danke Franz!! - das klappt wunderbar
13.10.2006 05:45:37
Wolfgang
Hallo Franz,
allerherzlichsten Dank. Die Idee, die Schaltflächen und Einstellungsmöglichkeiten in das Tabellenblatt einzubauen ist hier sogar noch besser, als über UF. Überschaubar gelöst. Der Datenimport klappt auch wunderbar -ich vermute, dass es speziell an der Datei liegt. Ich habe den Code per Marko-Rekorder aufgenommen und viele Spalten dabei übespringen lassen, weil ich aus der Datei jeweils immer nur eine Spalte benötige. Du hast mir sehr geholfen, alles weitere, denke ich zumindest, komme ich jetzt weiter mit klar. Nochmals herzlichen Dank für Deine Rückmeldung und Deine Ausarbeitung.
Gruß - Wolfgang
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige