Anzeige
Archiv - Navigation
1676to1680
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
Inhaltsverzeichnis

werte von txt.Datei in Exceldatei einfügen

werte von txt.Datei in Exceldatei einfügen
01.03.2019 08:29:19
txt.Datei
Hallo,
ich habe hier diese Code gefunden. Funktion dieser Code ist, dass er kopiert die Werte in Textdatei und einfügt sie in Excel Datei. Das funktioniert super.
Das Problem ist: er fügt jede Zeile in einer Zelle und gibt die Werte mit punkt (z.B. 0.75 usw.)
Wie kann man dieser Code anpassen, dass er:
1) Nach jeder Leerzeichen, trennt er die Werte in spalten
2) Werte mit punkt in werte mit komma umwandelt (z.B. 0.75 in 0,75)
3)Pfad in P1 lesen
4)Dateiname in P2 lesen
5)ab Spalte D sollte Zahlenformat sein und nicht als Text
Sub TextImport()
Dim iRow As Integer, iCol As Integer
Dim sFile As String, sTxt As String
Dim vntTmp As Variant
sFile = Range("P1").Value
If Dir(sFile) = "" Then
Beep
MsgBox "Datei wurde nicht gefunden!"
Exit Sub
End If
iRow = 1
iCol = 1
Open sFile For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
sTxt = Replace(sTxt, ",", ".")
vntTmp = Split(sTxt, "|")
vntTmp = Application.Transpose(Application.Transpose(vntTmp))
Cells(iRow, iCol).Resize(1, UBound(vntTmp, 1)) = vntTmp
iRow = iRow + 1
Loop
Close #1
End Sub
Vielen Dank im Voraus!
Grüße
Ro

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: werte von txt.Datei in Exceldatei einfügen
02.03.2019 22:11:08
txt.Datei
Hallo Robert,
ich denke, dass du das mit dem folgendermaßen abgeänderten Code machen kannst:
Sub TextImport()
Dim iCol As Long
Dim iRow As Long
Dim maxCol As Long
Dim pfad As String
Dim sFile As String
Dim sTxt As String
Dim vntTmp As Variant
Dim wb As Workbook
Dim wsD As Worksheet
Dim wsS As Worksheet
Set wb = ThisWorkbook
Set wsS = wb.Worksheets("Steuerung")
Set wsD = wb.Worksheets("Daten")
wsD.UsedRange.ClearContents
pfad = wsS.Range("P1")
sFile = wsS.Range("P2")
If Dir(pfad & sFile) = "" Then
MsgBox pfad & sFile & vbNewLine & _
"Datei wurde nicht gefunden!"
Exit Sub
End If
iRow = 1
Open sFile For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
vntTmp = Split(sTxt, " ")
vntTmp = Application.Transpose(Application.Transpose(vntTmp))
iCol = UBound(vntTmp, 1)
If iCol > maxCol Then maxCol = iCol
wsD.Cells(iRow, 1).Resize(1, iCol) = vntTmp
iRow = iRow + 1
Loop
Close #1
For iCol = 1 To maxCol
wsD.Columns(iCol).TextToColumns
Next iCol
wsD.Activate
End Sub
https://www.herber.de/bbs/user/128055.xlsm
Falls es noch ein Problem gibt, wäre es schön, wenn du ein Beispiel für deine Textdateien hochladen könntest, Daten ggf. verändert und/oder anonymisiert.
mfg
Dieter
Anzeige
AW: werte von txt.Datei in Exceldatei einfügen
04.03.2019 15:52:37
txt.Datei
Hallo Vielen Dank...
leider hat die Makro nicht funktioniert. Fehler liegt hier:
Open sFile For Input As #1
hier ein Beispiel Datei:
Kann man in Code auch schreiben, dass die Werte aus txt.Datei ab Spalte B der Exceldatei eingefügt werden und in Spalte A die Dateiname … z.B. Wenn B1 hat ein Wert dann A1 Dateiname aber nicht 12345.xls sondern 12345 , wenn B2 nicht leer, dann A1 usw.
https://www.herber.de/bbs/user/128091.txt
Vielen Dank im Voraus.
Ro
AW: werte von txt.Datei in Exceldatei einfügen
04.03.2019 21:37:12
txt.Datei
Hallo Robert,
bei dem Statement
Open sFile For Input As #1
fehlte der Pfad. Es muss lauten
Open pfad & sFile For Input As #1
Ich habe mir deine Beispieldatei angeschaut.
Du kannst sie mit dem folgenden Programm übernehmen:
Sub TextImport_neu()
Dim iCol As Long
Dim iRow As Long
Dim maxCol As Long
Dim pfad As String
Dim sFile As String
Dim sFile_oE As String
Dim sTxt As String
Dim vntTmp As Variant
Dim wb As Workbook
Dim wsD As Worksheet
Dim wsS As Worksheet
Dim zeile As Long
Set wb = ThisWorkbook
Set wsS = wb.Worksheets("Steuerung")
Set wsD = wb.Worksheets("Daten")
wsD.UsedRange.ClearContents
pfad = wsS.Range("P1")
sFile = wsS.Range("P2")
sFile_oE = Left$(sFile, InStrRev(sFile, ".") - 1)
If Dir(pfad & sFile) = "" Then
MsgBox pfad & sFile & vbNewLine & _
"Datei wurde nicht gefunden!"
Exit Sub
End If
iRow = 1
Open pfad & sFile For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
If sTxt  "" Then
vntTmp = Split(sTxt, " ")
For iCol = 2 To UBound(vntTmp, 1) + 2
wsD.Cells(iRow, iCol) = vntTmp(iCol - 2)
Next iCol
End If
iRow = iRow + 1
Loop
Close #1
For zeile = 1 To iRow - 1
If Not IsEmpty(wsD.Cells(zeile, "B")) Then
wsD.Cells(zeile, "A") = sFile_oE
End If
Next zeile
wsD.Activate
End Sub

https://www.herber.de/bbs/user/128105.xlsm
mfg
Dieter
Anzeige
AW: werte von txt.Datei in Exceldatei einfügen
05.03.2019 13:46:42
txt.Datei
Super super super...danke dir. hat es super funktioniert :)
Noch etwas wenn es geht..
noch etwas: Wenn ich wieder eine neue Textdatei habe, muss ich die daten in selben Blatt der gleichen Exceldatei einfügen möchte, ohne dass die vorherigen Daten der vorherige Textdatei lösche... z.B. dass ich mit einem Anfragen (msgbox) selbst auswählen kann, ab welche Zeile die daten eingefügt werden müssen...? Kann man das schon in Makro anpassen? Das wäre mega toll...
Danke im Voraus...
AW: werte von txt.Datei in Exceldatei einfügen
05.03.2019 13:49:10
txt.Datei
oder ab nächste leere Zeilen
AW: werte von txt.Datei in Exceldatei einfügen
05.03.2019 14:07:14
txt.Datei
Ich habe noch was falsche gesagt: kann man die Werte von Textdatei nicht nach jedem Leerzeichen sondern nach jeder Spalte von Textdatei?
Das wäre sehr nett!!! Danke schön für deine Bemühung...
Anzeige
AW: werte von txt.Datei in Exceldatei einfügen
05.03.2019 18:15:48
txt.Datei
Hallo Robert,
ich habe das Programm jetzt so ergänzt, dass es den Inhalt des Blattes "Daten" nicht löscht und die nächste Textdatei hinter die bisherigen Daten plaziert.
Deine letzte Anforderung habe ich leider nicht verstanden, da wäre es am einfachsten, wenn du ein Beispiel hochladen könntest.
https://www.herber.de/bbs/user/128127.xlsm
Mit freundlichen Grüßen
Dieter
AW: werte von txt.Datei in Exceldatei einfügen
06.03.2019 12:32:49
txt.Datei
Hi Dieter,
Vielen Dank! Was du angepasst hat gut geklappt.
Meine letzte Anforderung wäre: z.B. wenn in Text Datei wäre: Max Mustermann "A2 (2)" 12 13 14, dann sollte in Exceldatei so in spalten getrennt werden:
Spalte A Spalte B Spalte C Spalte D Spalte E Spalte F
Max Musterman "A2 (2)" 12 13 14
und nicht
Spalte A Spalte B Spalte C Spalte D Spalte E Spalte F Spalte G
Max Musterman "A2 (2)" 12 13 14
Also nicht immer die Leerzeichen sollte als Kriterium betrachtet werden.
Beispieldatei sind:
https://www.herber.de/bbs/user/128133.txt
https://www.herber.de/bbs/user/128135.xlsm
Vielen Dank ...was du machst ist Weltklasse!
Anzeige
AW: werte von txt.Datei in Exceldatei einfügen
06.03.2019 18:43:41
txt.Datei
Hallo Robert,
durch Split(sText, " ") werden Texte, die ein Leerzeichen enthalten, getrennt.
Ich habe sie jetzt durch eine Function-Prozedur wieder zusammengefasst.
https://www.herber.de/bbs/user/128150.xlsm
Mit freundlichen Grüßen
Dieter

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige