lena123
Goto Top

Daten aus Text-File in bestimmte Zellen in Excel importieren

Hallo!

Mein Problem ist folgendes:

Ich habe ein Textfile: "Beispiel.txt" mit nur einer Spalte mit folgendem Inhalt, wobei die Zahlen mit tabs getrennt sind:

Zahl1 Zahl2 Zahl3 ...

Diese Zahlen möchte ich nun in Excel importieren, und zwar soll Zahl1 in [B4], Zahl2 in [C4] usw.
(Bis jetzt habe ich es nur geschafft alle Werte in eine oder zwei Zellen zu schreiben)
Wenn die Daten importiert sind, soll die Text-Datei gelöscht werden.
Mein Code sieht bis jetzt so aus:


Sub importData()

    Dim sTxt As String
    
    Dim strVerzeichnis As String
    Dim strDatei As String
    Dim strTyp As String
    Dim strDateiname As String
        
    strTyp = "*.txt"  
    strVerzeichnis = ThisWorkbook.Worksheets("Tabelle2").Cells(25, 2)  
    strDateiname = Dir(strVerzeichnis & strTyp)
  
With ThisWorkbook.Worksheets("Tabelle1")  
         Do While strDateiname <> ""  
            Open strDateiname For Input As #1
            Do Until EOF(1)
            Line Input #1, sTxt
            
        ...
     
End Sub

Gruß + Danke

Content-ID: 70809

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

bastla
bastla 12.10.2007 um 16:11:51 Uhr
Goto Top
Hallo lena123!

Wenn die Daten tatsächlich nur in einer (der ersten) Zeile der Textdatei stehen, könntest Du etwa so vorgehen:
Sub importData()

Const iAbSpalte = 2 'B  
Const iAbZeile = 4

Dim sTxt As String
Dim vWert As Variant, iSpalte As Integer

Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String

strTyp = "*.txt"  
strVerzeichnis = ThisWorkbook.Worksheets("Tabelle2").Cells(25, 2)  
strDateiname = Dir(strVerzeichnis & strTyp)

With ThisWorkbook.Worksheets("Tabelle1")  
    If strDateiname <> "" Then 'Datei gefunden  
        Open strDateiname For Input As #1
        If Not EOF(1) Then 'Daten vorhanden  
            Line Input #1, sTxt 'Nur erste Zeile lesen ...  
            aDaten = Split(sTxt, vbTab) '... zerlegen, die Werte der einzelnen Felder in ein Array schreiben ...  
            iSpalte = iAbSpalte
            For Each vWert In aDaten ... und diese Werte einzeln ...
                .Cells(iAbZeile, iSpalte).Value = CDbl(vWert) ... (nach Umwandlung in eine Zahl) eintragen.
                iSpalte = iSpalte + 1
            Next
        End If 'Daten vorhanden  
        Close 1
    End If 'Datei gefunden  
End With
End Sub
Die Adresse, ab welcher die Daten eingetragen werden sollen, habe ich (wegen der Übersichtlichkeit) in den "Const"-Zeilen am Anfang festgelegt.

Grüße
bastla
lena123
lena123 14.10.2007 um 17:43:11 Uhr
Goto Top
Hallo bastla,

das hat funktioniert, vielen Dank!

Gruß