Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
408to412
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
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Daten aus Textdatei in Textfenster e. UF -VBA-
Wolfgang
Hallo*
Ich hatte vor geraumer Zeit ähnliche Frage an das Forum gerichtet, mich aber wohl lt. Rückmeldung missverständlich ausgedrückt. Somit erneuter Versuch:
In einer Textdatei (Laufwerk C, Temp) befinden sich Daten, die teilweise für das Anlegen von Datensätzen in einer Excel-Mappe benötigt werden.- Die Textdatei selbst wird laufend (im Rahmen einer Vernetzung) über Unix wieder geändert. - Unter anderem benötige ich z.B. Name, Vorname, Geburtsdatum und Anschrift aus der Textdatei. Diese Daten sollen möglichst wiederum in jeweils dafür bestimmte Textfester importiert werden, damit noch weitere Daten innerhalb der UF manuell ergänzt werden können. Die dann vollständigen Datensätze sollen dann innerhalb der Excel-Mappe unter verschiedene Tabellen abgelegt werden.
Mein Anliegen nun:
Ist es möglich, einzelne Daten aus einer Textdatei (Auszug siehe unten) gesondert in verschiedene Textfenster einer UF zu importieren? (Die weiteren Wege des Abspeicherns etc. sind dabei gelöst)Hintergrund soll übrigens sein, dass ich mir hierdurch viel Tipperei ersparen kann, da die benötigten Daten sich doch bereits in der Textdatei befinden.
Bsp.: Textfenster Name: NAME^ Textfenster Vorname: VORNAME^ etc.
Wäre wiederum für Eure Mitwirkung sehr dankbar.
Gruß und schon allen ein schönes Wochenende.
Wolfgang Berger
Hier ein Auszug aus der Textdatei:
NAME^VORNAME^GEBDAT^STRASSE^Postleitzahl, Wohnort (etc.)
P.S.
Die vorliegende Textdatei wird hier für die Serienbrieffunktion in WORD verwandt.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Textdatei einlesen
IngoG
Hallo Wolfgang,
mit folgendem Code kannst Du Satzweise Zeilen aus einer Textdatei auslesen.
wenn Du dann den String weiter aufteilst hast Du deine Feldinhalte...

Sub Textdatei_Lesen()
Dim arr() As String
Dim icounter As Integer, icountD As Integer
Dim sSource As String, sTxt As String, sPath As String, sTarget as String
sPath = "C:\TEMP\"
sSource ="Meine_Datei.txt"
sTarget = sPath & sSource
With Application.FileSearch
.LookIn = sPath
.FileName = sSource
.Execute
If .FoundFiles.Count = 0 Then
MsgBox "Datei im angegebenen Verzeichnis nicht gefunden !!!"
Exit Sub
End If
Close
ReDim arr(1 To 3) As String
Open sTarget For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
icounter = icounter + 1
ReDim Preserve arr(1 To icounter) As String
arr(icounter) = sTxt
Loop
Close
' hier kannst Du in arr() die entsprechende Zeile suchen und die Textabschnitte
' Deinen Textfeldern zuweisen.
End With
End Sub

Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: Textdatei einlesen
Wolfgang
Hallo Ingo,
vorab schon den allerherzlichsten Dank für Deine prompte Rückmeldung. Finde ich einfach super. - Als Laie doch noch eine Bitte/Frage:
Wie packe ich die Zuweisung der einzelnen Textfelder an?
z.B. txtName, txtVorname
ist arr. damit evtl. gemeint?
ist da evtl. neues Sub anzulegen?
Wäre Dir da für eine Rückmeldung noch sehr dankbar.- Werde dann am Wochenende zuhause testen und wieder am Montag von mir hören lassen.-
Danke Dir nochmals.
Gruß Wolfgang Berger
AW: Textdatei einlesen
IngoG
Hallo Wolfgang,
eine Textdatei besteht ja aus Zeilen, die wiederum eine unbestimmte anzahl von zeichen beinhalten.
In deinem Fall mußt Du jetzt eine möglichkeit finden, wie du alle informationen (Felder) aus einer zeile selektierst. wenn zB immer von Zeichen1-zeichen20 der Name steht, von zeichen21-zeichen40 der vorname, usw kannst du einfach auf die entsprechenden stellen im string arr() zugreifen... also zB
textbox1=mid(arr(1),1,20) ' mid liefert einen teilstring von arr(1) (s.Hilfe)
textbox2=mid(arr(1),21,20)
...
bei arr() handelt es sich um ein string-Array, d.h.
arr(1) enthält die erste Zeile, arr(2) die zweite Zeile, usw.
um einen bestimmten Datensatz(zeile) hereauszufiltern, mußt Du uU die Inhalte mit Deinen Suchkriterien abgleichen...
Ich wünsche Dir schonmal viel Erfolg am Wochenende, über die VBA-Hilfe kannst Du wahrscheinlich schon eine ganze Menge Deiner Fragen erklären, ansonsten solltest Du einfach nochmal ins forum schauen...
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: Textdatei einlesen
Wolfgang
Hallo Ingo,
Hallo Forumsgemeinde,
habe die vorgenannten Hinweise getestet und ausprobiert - es klappt auch soweit. Mir ist nur bewußt geworden, dass durch neue Namen etc. sich ja auch die Zeichenlänge wieder verändert so dass das Bild in den jeweiligen Textboxen bzw. das jeweil. Arr. dadurch wieder verschoben wird.
Andere Überlegung:
Geht es, die vollständige Textdatei (mit ca. 300 verschiedenen Feldtrennern^)in ein Arbeitsblatt zu importieren? Hieraus könnte ich dann ja auf jeden Fall die jeweiligen Textboxen bedienen.
Also z.B.
NAME^erscheint in A 1, VORNAME^erscheint in A2 GEBDAT^erscheint in A3 etc.
Hierbei spielte dann, wenn ich das richtig sehe, die Anzahl der Zeichen keine Rolle und ich könnte anhand der jeweiligen Zellen (die ja nach jedem neuen Import als feststehende Größe bleiben) die benötigten Angaben daraus in eine UF (von den ca. 300 Feldern in der Textdatei werden ca. 15 benötigt)kopieren.
Unter Excel-Recherche hatte ich mir mal verschiedene Muster hierzu angesehen.- Problem dabei ist, dass die vollständige Textdatei wohl in A 1 kopiert wird. Mein Anliegen wäre somit die Aufteilung in die Zellen.
Kann mir da jemand Hinweise geben?- Ich wäre weiterhin sehr dankbar.- Auch Dir, Ingo, nochmals herzlichen Dank für Deine bisherigen Hinweise und Bemühungen.
Gruß - Wolfgang Berger
Anzeige
AW: Textdatei einlesen
03.04.2004 13:23:25
Oberschlumpf
Hallo Wolfgang
Wie sieht denn in dieser TXT-Datei so eine Zeile mit Einträgen aus?
Du schreibst von 300 Feldern, von denen 15 benötigt werden.
Welcher Feldtrenner wird in der Datei verwendet?
Hier mal ein Bsp, welches nur als Ansatz dienen soll, und in dem davon ausgegangen wird, dass der Feldtrenner ein Komma ist "," und dass die ersten 5 Felder die benötigten sind.

Sub txtAuslesen()
Dim strVName As String
Dim strNName As String
Dim strStrase As String
Dim strPLZ As String
Dim strOrt As String
Dim iZeile As Integer
iZeile = 1
Open "C:\Temp\DeineTXT.txt" for Input As #1
While Not Eof(1)
Input #1, strNName, strVName, strStrasse, strPLZ, strOrt
Sheets(1).Range("A" & iZeile").Value = strNName
Sheets(1).Range("B" & iZeile").Value = strVName
Sheets(1).Range("C" & iZeile").Value = strStrasse
Sheets(1).Range("D" & iZeile").Value = strPLZ
Sheets(1).Range("E" & iZeile").Value = strOrt
iZeile = iZeile + 1
Loop
Close
End Sub

Erklärung:
In diesem Bsp wird die erste Zeile aus der Datei "C:\Temp\DeineTXT.txt" mit den Feldern Nachname, Vorname, Strasse, PLZ und Ort in die verwendeten Variablen eingelesen.
Danach werden, beginnend mit A1 - E1 die Inhalte der Variablen der eben genannten Zellen zugewiesen.
Nun wird die nächste Zeile aus der Datei eingelesen und wieder an die Zellen weitergegeben. Die Zellen haben sich in A2 - E2 geändert.
So geht das weiter, bis die letzte Zeile in der Datei erreicht ist.
Konnte ich hiermit helfen?
Ciao
Thorsten
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige