Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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

txt to Excel

txt to Excel
Sascha
Hallo Forum
Hier nun mal eine frage ob sowas möglich ist.
Ich habe eine CF Karte auf der befinden sich mehrer txt Dateien. Ich möchte denn Inhalt der txt datei in Excel einfügen und das in getrennte Spalten.
Ein Beispiel von der txt datei 202.txt

013
26202000013520000146500000000033456403347800000000000000000001300002010022606432920100226194431013
das steht drin und bedeutet 013 Kfz Nummer 1352 Pesonalnummer1 1465 Personalnummer 2
Datum 2010 02 26 (20100226)
Hoffe das mir jemand helfen kann und danke schon mal

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: txt to Excel
28.02.2010 17:45:36
Ramses
Hallo
TXT Datei öffnen
Menü "Daten - Text in Spalten" und dem Assistenten folgen
Was du nicht brauchst, kannst du anschliessend ja wieder löschen
Gruss Rainer
AW: txt to Excel
28.02.2010 18:16:58
Sascha
Hallo
Danke für die hilfe aber kann man das auch automatesieren das excel in der zeile nachschaut und die daten dann in die richtigen spalten speichert?
Makrorekorder aufzeichnen...
28.02.2010 18:31:20
Ramses
Hallo
"...und die daten dann in die richtigen spalten .."
Was sind die richtigen Spalten ?
Zeichne dir das ganze mit dem Makrorekorder auf, dann kannst du es jederzeit wiederholen indem du über "Extras - Makro - Makro ausführen" dein gespeichertes Makro neu startest.
Öffne die jeweilige Datei
Starte nun die Aufzeichnung des Makros
Vergib u.U. einen ShortCut
Vergib als Speicherort "Persönliche Arbeitsmappe"
Mach das was du willst.
Wenn alles so ist wie du es möchtest, dann stop die Aufzeichnung.
Künftig kannst du einfach die Datei öffnen und über den Shortcut das Makro starten.
Schon hast du es automatisiert :-)
Gruss Rainer
Anzeige
AW: Makrorekorder aufzeichnen...
28.02.2010 18:45:15
Sascha
Das hab ich schon Probiert ohne efolg er macht zwar einen teil so wie ich es vor gemacht habe aber kopiert nicht immer richtig.
Die entscheidenten Zahlen stehen ja immer an der gleichen Position in dem Zahlen txt kann man da nicht sagen Zahlen 1 - bis kopieren und in ZelleA einfügen.
01326202000013520000146500000000033456403347800000000000000000001300002010022606432920100226194431013
Kopiere Zahlen 1-3 also die 013 und Füge sie in A2 ein.
Nachdenken...
28.02.2010 19:00:21
Ramses
Hallo
"...Kopiere Zahlen 1-3 also die 013 und Füge sie in A2 ein...."
Davon war ja bisher auch nicht die Rede,... oder ?
Überleg dir mal was du sonst noch alles machen willst. Ich, und auch andere TN im Forum, haben keine Lust gratis für nix und wider nix zu arbeiten, nur weil der Fragesteller nicht weiss was er will.
Gruss Rainer
Anzeige
AW: Nachdenken...
28.02.2010 19:10:17
Sascha
Hallo
Sorry das es nicht sofort klar war was es genau wird aber das ist ja nur ein kleiner Baustein von was anderem und ich hab nicht gewusst wie ich das nun genau Beschreibe.
Dieser Lange Zahlenstrang ist also immer gleich und die Position der entscheidenten Zahlen auch und das ganze per MAkro zu machen hat nicht geklappt also die Zahlen kopieren und in Zelle einfügen.
Ich hoffe das ich euch nun damit nicht verärgert habe das meine Erleuterung unklar war.
AW: Nachdenken...
28.02.2010 19:18:08
Josef
Hallo Sacha,

das Aufzeichnen von "TextInSpalten" ergibt, leicht nachbearbeitet, diesen Code.
Ich habe angenommen, das die Strings in Spalte A stehen.

Sub Makro1()
  Columns(1).TextToColumns _
    Destination:=Range("A1"), _
    DataType:=xlFixedWidth, _
    FieldInfo:=Array(Array(0, 2), Array(3, 9), Array(12, 1), _
    Array(16, 9), Array(20, 1), Array(24, 9), Array(70, 1), Array(78, 9))
  
  Range("A:E").EntireColumn.AutoFit
End Sub

Gruß Sepp

Anzeige
AW: Nachdenken...
28.02.2010 19:38:50
Sascha
Danke Sepp
Also wenn ich dein MAkro richtig verstehe muss ich denn Zahlenstrang in Excel in eine Zelle Kopieren dann das Makro arbeiten lassen und das sgat dann mit Array s welche Zahlen kopiert werden sollen und speichert sie dann in zelle A bis E oder?
AW: Nachdenken...
28.02.2010 19:46:19
Josef
Hallo Sascha,

ja, aber warum probierst du es nicht einfach mal aus, also manchmal stellt ihr euch an wie die Kuh auf dem Tanzboden!

Gruß Sepp

Anzeige
AW: Nachdenken...
28.02.2010 20:38:49
Sascha
HAllo Sepp
Die Kuh grüßt also hab es klar zu vor ausprobiert aber zum lernen muss man auch wissen wie es geht daher die frage über denn verlauf des makros.
Kann das Makro auch die txt datei selber öffnen und die daten in Excel einfügen?
In der Txt datei ist es die erste Zeile.
Grüsse Sascha
Neuanfang.,..
28.02.2010 20:47:30
Ramses
Hallo
"...Kann das Makro auch die txt datei selber öffnen und die daten in Excel einfügen?..."
Klar, einfach mit dem Rekorder aufzeichnen
"...In der Txt datei ist es die erste Zeile...:"
Davon war bisher nicht die Rede.
Neuanfang also deshalb, weil du die Anforderungen WAS du alles haben willst und WIE es erfolgen soll und WELCHE Daten WOHIN sollen in WELCHER Form (führende Nullen werden z.B. in EXCEL per Default nicht dargestellt)
Gruss Rainer
Anzeige
AW: Nachdenken...
28.02.2010 22:01:00
Josef
Hallo Sascha,

wie Ramses schon sagte, wenn sich die Vorgaben dauernd ändern, ist es schwierig zu helfen und manch einer verliert gar die Lust dazu.
Lade doch eine Textdatei hoch, die deinen Originaldateien entspricht. Beschreibe auch nochmal was wohin geschrieben werden soll.

Gruß Sepp

AW: Nachdenken...
28.02.2010 23:57:45
Sascha
Hallo Sepp
Hoffe das ich nun nicht noch merh missverständnisse schaffe hier nun meine Erklärung.
Habe eine Excel Datei erstellt wo man erkennt wie das Ergebnis aussehen soll.
Funktionieren soll es so Excel soll die txt datei öffnen die Zeile kopieren in Excel einfügen und dann auswerten das die Zahlen in die richtigen Zellen kopiert werden. Hoffe das mir nun noch jemand hilft.
Grüsse Sascha
https://www.herber.de/bbs/user/68288.xls
Anzeige
AW: Nachdenken...
01.03.2010 00:17:53
Josef
Hallo Sascha,

toll, aber eigentlich hatte ich dich gebeten, eine der Textdateien hochzuladen.
Ausserdem sind die Zahlen in deiner Datei nun wieder ganz anders aufgeteilt als in deiner ersten Beschreibung.

Gruß Sepp

AW: Nachdenken...
01.03.2010 22:03:36
Sascha
Hallo Sepp
Hab gedacht das die Erklärung in der Excel datei einfacher ist aber nun dein Wunsch hier die TXT Datei.
Grüsse Sascha
https://www.herber.de/bbs/user/68310.txt

Die Datei https://www.herber.de/bbs/user/68311.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Nachdenken...
02.03.2010 00:11:07
Josef
Hallo Sascha,

du willst ja einen Code zum Importieren der txt-Dateien, da ist eine solche schon hilfreich.
Ich hoffe, du kannst damit leben, das die Datumsspalte ans Ende wandert.
Schaltfläche "Import" drücken, Verzeichnis auswählen und los geht's.

Die Datei https://www.herber.de/bbs/user/68312.xls wurde aus Datenschutzgründen gelöscht



Gruß Sepp

Anzeige
AW: Nachdenken...
02.03.2010 00:22:47
Sascha
Hallo Sepp
Zu später Stunde eine super hilfe der Wahnsinn.
Hab es getestet doch leider kann ich keine einzelne txt importieren sondern nur Ordner und irgenwie schmird dann Excel ab.
Gibt es eien möglichkeit wenn man auf Import drückt eine einzelne txt zu öffnen?
Grüsse Sascha und Sau mal Danke
AW: Nachdenken...
02.03.2010 00:40:55
Josef
Hallo Sascha,

dann ersetze den Code durch folgenden.

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub importTXT()
  Dim strFile As String
  Dim lngRow As Long
  
  On Error GoTo ErrExit
  
  strFile = Application.GetOpenFilename("Text Dateien (*.txt),*.txt")
  
  If strFile = CStr(False) Then GoTo ErrExit
  
  With Application
    .EnableEvents = False
    .DisplayAlerts = False
  End With
  
  With Sheets("Tabelle1")
    lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    With .QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=.Cells(lngRow, 1))
      .Name = Left(strFile, Len(strFile) - 3)
      .FieldNames = True
      .RowNumbers = False
      .FillAdjacentFormulas = False
      .PreserveFormatting = True
      .RefreshOnFileOpen = False
      .RefreshStyle = xlInsertDeleteCells
      .SavePassword = False
      .SaveData = True
      .AdjustColumnWidth = True
      .RefreshPeriod = 0
      .TextFilePromptOnRefresh = False
      .TextFilePlatform = 850
      .TextFileStartRow = 1
      .TextFileParseType = xlFixedWidth
      .TextFileTextQualifier = xlTextQualifierDoubleQuote
      .TextFileConsecutiveDelimiter = False
      .TextFileTabDelimiter = True
      .TextFileSemicolonDelimiter = False
      .TextFileCommaDelimiter = False
      .TextFileSpaceDelimiter = False
      .TextFileColumnDataTypes = Array(1, 9, 1, 9, 1, 9, 5, 9)
      .TextFileFixedColumnWidths = Array(3, 9, 4, 4, 4, 46, 8)
      .TextFileTrailingMinusNumbers = True
      .Refresh BackgroundQuery:=False
    End With
    .Columns("A:E").AutoFit
  End With
  
  ErrExit:
  With Err
    If .Number <> 0 Then MsgBox "Fehler " & .Number & vbLf & vbLf & _
      .Description & vbLf & vbLf & "In Prozedur (importTXT) in Modul Modul2", _
      vbExclamation, "Fehler in Modul2 / importTXT"
  End With
  
  With Application
    .EnableEvents = True
    .DisplayAlerts = True
  End With
End Sub

Gruß Sepp

Anzeige
AW: Nachdenken...
02.03.2010 00:58:05
Sascha
Hallo Sepp
Du bist der beste so klappt das perfekt.
Ich hoffe das ich dich nicht zu sehr genervt habe und das ich auf dich wieder zurückkommen kann wenn ich denn nächsten Zahlencode entschlüsselt habe um ihn dann auch in die Excel liste einzubinden.
Grüsse Sascha
Erfolg
02.03.2010 01:58:20
Sascha
Hallo Sepp
Durch deine hilfe hat das auch super geklappt und hab es auch noch um 2 sachen erweitern können.
Nun verstehe ich auch warum du die txt datei benötigt hast weil das Makro die Zahlen Zählt und dann einfügt.
Grüsse Sascha
https://www.herber.de/bbs/user/68314.xls
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Sub importTXT()
Dim strFile As String
Dim lngRow As Long
On Error GoTo ErrExit
strFile = Application.GetOpenFilename("Text Dateien (*.txt),*.txt")
If strFile = CStr(False) Then GoTo ErrExit
With Application
.EnableEvents = False
.DisplayAlerts = False
End With
With Sheets("Tabelle1")
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
With .QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=.Cells(lngRow, 1))
.Name = Left(strFile, Len(strFile) - 3)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 5, 9)
.TextFileFixedColumnWidths = Array(3, 9, 4, 4, 4, 9, 6, 1, 6, 38, 8)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
.Columns("A:E").AutoFit
End With
ErrExit:
With Err
If .Number  0 Then MsgBox "Fehler " & .Number & vbLf & vbLf & _
.Description & vbLf & vbLf & "In Prozedur (importTXT) in Modul Modul2", _
vbExclamation, "Fehler in Modul2 / importTXT"
End With
With Application
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige