pascals
Goto Top

Textdatei importieren

Hallo zusammen,

ich möchte eione Textdatei in Excel einlesen, bei der zu Anfang keine Spaltentrennung vorgenommen werden soll.

Nun habe ich mir gedacht, dass das ja eigentliuch nicht so schwer sein kann und man das via Makrorekorder hinbvekommen können.
Tja da hab ich wohl falsch gedacht. Es funktioniert zwar, aber nicht so wie ich mir es vorstelle.
Der Makrorekorder importiert mir die Textdatei in eine neue Excel-Arbeitsmappe, ich möchte sie aber in der Arbeitsmappe haben, von der aus ich auch das Makro ausführe...

Hat jemand eine Idee?
Viele Grüße
Pascal

Content-ID: 66927

Url: https://administrator.de/contentid/66927

Ausgedruckt am: 20.11.2024 um 00:11 Uhr

SvenGuenter
SvenGuenter 23.08.2007 um 15:43:53 Uhr
Goto Top
Option Explicit

Sub dateilesen()
'Diese Sub kann dazu genutzt werden einen String der eingelesen wird zu ergänzen oder anderweitig zu
'manipulieren
'erstellt am 23.05.2007
'Autor: Sven Günter


'Konstanten die FileSystemObject Objekte besser lesbar zu machen
Const ForReading = 1, ForWriting = 2, ForAppending = 8


'Definition der benötigten internen Variablen
Dim abgleich
Dim speicher
Dim fs, a, retstring
Dim zeile As Integer
Dim spalte As Integer
'Erzeugen des FileSystemObject
Set fs = CreateObject("Scripting.FileSystemObject")

'Erzeugen der Zieldatei
'fs.CreateTextFile "c:\gesamtneu.txt"
'Zuweisung der Quelldatei
Set a = fs.opentextfile("C:\mahnungenbackup\Mahnlauf_24_Protokoll.txt", ForReading, False)


zeile = 1
spalte = 1
'2-24 ohne 12

'Schleife bis das Ende der Quelldatei erreicht ist
Do While a.AtEndOfStream <> True
'Einlesen der 1. zeile
retstring = a.readline
'Erzeugen eines Arrays welches die einzelnen Werte aufnimmt
'abgleich = Split(retstring, vbTab, -1) brauchst du nur wenn du den string teilen willst
'MsgBox (retstring)
Tabelle1.Cells(zeile, spalte) = retstring
'abgleich = Split(retstring, vbTab, -1)
'speicher = abgleich(1)brauchst du nur wenn du den string teilen willst
zeile = zeile + 1


'abgleich = Split(retstring, vbTab, -1)


Loop
a.Close

End Sub

EDIT-----------sorry hatte den zeilenzähler nicht mit drin. Aber nun müßte es klappen. Hatte vorher den import UND Export in eine Textdatei realisiert udn den code nur rauskopiert.
PascalS
PascalS 23.08.2007 um 16:08:19 Uhr
Goto Top
Hi Sven,

danke für die Antwort face-smile
Habe bei Zeile und Spalte "1,1" eingetragen, es passiert auch etwas, das ganze beschränkt sich allerdings auf die Zelle A1. Wie kann ich denn den Sprung in die nächste Spalte einbauen?

Gruß
Pascal
SvenGuenter
SvenGuenter 23.08.2007 um 18:58:57 Uhr
Goto Top
indem du bei dem befehl Tabelle1.Cells(zeile,1) eingibst und dann zeile immer um 1 hochzählen lässt ;)
PascalS
PascalS 24.08.2007 um 10:17:34 Uhr
Goto Top
Hallo Sven,

vielen Dank, läuft!!!

Grüße
Pascal