Das Archiv des Excel-Forums

Daten import aus txt--Datei


Betrifft: Daten import aus txt--Datei
von: Rico

Geschrieben am: 18.09.2019 19:21:57
Hallo,

ich habe eine Text-Datei die sieht wie folgt aus:
#1
!Name1
46001 100.01
46002 100.01
46003 100.01
End
#2
!Name2
46001 200.02
46002 200.02
46003 200.02
End
...usw
#100
!Name100
46001 300.03
46002 300.03
46003 300.03
End
End

Die Anzahl an Zeilen zwischen !Name1 und End variiert. Bisher muss ich den Text in Excel einfügen, Text in Spalten, Punkt durch Komma ersetzen und per STR+Pfeil Kopieren und nebeneinander in eine 2. Excel-Datei kopieren. Dort soll es wie folgt aussehen:

Spalte A Spalte B Spalte C Spalte D
!Name1 !Name1 !Name2 !Name2
46001 100,01 46001 200,02
46002 100,01 46001 200,02
46003 100,01 46001 200,02

Kann man das mit Hilfe von VBA automatisieren?
Würde mich über Eure Hilfe freuen,
Grüße Rico

Betrifft: AW: Daten import aus txt--Datei
von: 1713886.html
Geschrieben am: 19.09.2019 13:48:14
Hallo Rico,
versuche einmal ob das Sheet das macht.
Hinweis im Sheet beachten.

https://www.herber.de/bbs/user/132114.xlsm

Gruß Armin

Betrifft: AW: Daten import aus txt--Datei
von: 1713907.html

Geschrieben am: 19.09.2019 14:28:24
Hallo Rico,

hier ein entsprechendes Makro mit Dateiauswahldialog.
Für den Import wird immer ein neues Tabellenblatt angelegt.

LG
Franz

Sub Inport_Txt_Datei()
Dim wks As Worksheet
Dim varTxt
Dim bolName As Boolean
Dim strTemp As String, varSplit
Dim lngSpa As Long, lngZeile As Long
Dim iKanal As Integer
'Textdatei auswählen
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte Textdatei auswählen, die importiert werden soll"
.FilterIndex = 6 'Textdateien
.AllowMultiSelect = False
If .Show = -1 Then
varTxt = .SelectedItems(1)
Else
Exit Sub
End If
End With
'Neues Blatt anlegen
ActiveWorkbook.Worksheets.Add Before:=ActiveWorkbook.Sheets(1)
Set wks = ActiveSheet
Application.ScreenUpdating = False
'Kanal für Textdatei öffnen
iKanal = FreeFile()
Open varTxt For Input As #iKanal
lngSpa = 0
With wks
'Textdaten Zeilenweise einlesen
Do Until EOF(1)
Input #1, strTemp
If InStr(1, strTemp, "#") > 0 Then
'Nächste Spalte und Startzeile setzen
If lngSpa = 0 Then lngSpa = 1 Else lngSpa = lngSpa + 2
lngZeile = 1
bolName = True 'auf Zeile mit "#" folgt Zeile mit Name
ElseIf Trim(strTemp) = "End" Or Trim(strTemp) = "" Then
'do nothing - Zeilen überspringen
Else
If bolName = True Then
'Name in beiden Spalten der 1. Zeile eintragen
.Cells(lngZeile, lngSpa).Value = strTemp
.Cells(lngZeile, lngSpa + 1).Value = strTemp
bolName = False
Else
'Text in Zeilen ohne Name aufbereiten
strTemp = Trim(strTemp) 'Leerzeichen am Anfang/Ende entfernen
strTemp = Replace(strTemp, "  ", " ") 'Doppelte Leerzeichen durch einfaches  _
ersetzen
varSplit = Split(strTemp, " ") 'Text am Leerzeichen auftrennen
lngZeile = lngZeile + 1
If UBound(varSplit) > 0 Then
.Cells(lngZeile, lngSpa).Value = varSplit(0) '1. Zahl eintragen
.Cells(lngZeile, lngSpa + 1).Value = CDbl(Replace(varSplit(1), ".", ",")) ' _
2. Dezimalzahl eintragen
Else
.Cells(lngZeile, lngSpa).Value = varSplit(0)
End If
End If
End If
Loop
End With
'Kanal für Textdatei schliessen
Close iKanal
Application.ScreenUpdating = True
End Sub

Betrifft: AW: Daten import aus txt--Datei
von: 1713948.html
Geschrieben am: 19.09.2019 17:36:56
Hallo Franz,
getestet und bin begeistert, dein VBA Code funktioniert einwandfrei. Vielen Dank für Deine Hilfe!
Grüße Rico

Betrifft: AW: Daten import aus txt--Datei
von: 1713947.html

Geschrieben am: 19.09.2019 17:36:13
Hallo Armin,
getestet und bin begeistert, dein Makro funktioniert einwandfrei. Vielen Dank für Deine Hilfe!
Grüße Rico

Excel-Beispiele zum Thema "Daten import aus txt--Datei"

Zeichenfolgen in Zahlen nach Textimport download Textimport aus Text-Datei mit Smikoli als Feldtrenner download
Import aus dem Internet download Textimport mit Semikolon als Feldseparator download
In importierter Textdatei englische Werte in deutsche wandeln download Textdatei in Tabellenblatt importieren download
Nach Textimport Strings in Zahlen wandeln download Textdatei nach Begriff durchsuchen und Fundzeile importieren download
Diagramm exportieren und in Tabellenblatt importieren download Suchbegriffe in UserForm eingeben, Fundstelle importieren download
Benannte Bereich aus mehreren Arbeitsmappen importieren download Textdatei mit 250.000 Zeilen anlegen und importieren download
Name und Vorname suchen, Werte und Fundstellen importieren download Grafik importieren und in Zelle zentrieren download
Arbeitsblatt aus einer anderen Arbeitsmappe importieren download VBA-Import einer Textdatei mit Semikoli als Feldtrenner download
Textimport in UserForm-Elemente download Textdatei über QueryTables importieren download
Import einer Textdatei mit mehr als 256 Spalten download Textdatei in ein neues Tabellenblatt der Arbeitsmappe importieren download
Alle Textdateien eines Verzeichnisses importieren download Werte aus Textdatei importieren und umwandeln download
Import einer Grafikdatei aus dem Internet download Werte aus anderen Arbeitsmappen importieren download