Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Txt im Format "Text" importieren mit Makro

Forumthread: Txt im Format "Text" importieren mit Makro

Txt im Format "Text" importieren mit Makro
11.08.2016 16:01:38
Michael
Hallo, ich habe die unten aufgegührte Makro, von einem Helfer im Forum erhalten.
Nun werden manche Werte, die in den Texten tatsächlich Kommawerte sind verändert in die Excel überneommen.
Zum Beispiel: in der txt Datei steht der Wert: 1369,523 In der Excel ausgegeben als 1.369.523
Werte mit 2 Stellen hinter dem Komma werden nicht verändert, da sie automatisch als text formatiert werden.
Das verfälscht leider die Ergebnisse
Wie kann ich dieses Makro so verändern, dass der gesamte Inhalt der Textdateien in der Excel als "Text" formatiert werden ?
Kann mir da jemand helfen ?
Sub Michael8000()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
sPath = "D:\Users\MichaelHerbst\Desktop\abc1\"
sFile = Dir(sPath & "*.txt")
Do While Len(sFile)
With Sheets.Add(, , , sPath & sFile)
ls = Sheets("Daten").Cells(1, Columns.Count).End(xlToLeft).Column + 1
.Columns(1).Copy Sheets("Daten").Cells(1, ls)
.Delete
End With
sFile = Dir
Loop
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Txt im Format "Text" importieren mit Makro
11.08.2016 16:31:40
Daniel
Hi
das Problem ist, das beim Öffnen von Textfiles mit VBA im Normalfall die englisch/amerikanische Schreibweise zum erkennen und umwandeln von Datumswerten verwendet wird.
Beim Öffnen mit Workbooks.Open kann man über den Parameter Local:=True anweisen, dass die lokalen(deutschen) Schreibweisen verwendet werden sollen.
Diese Option gibt es bei Sheets.Add aber nicht, daher musst du etwas anders vorgehen:
lege ein leeres Blatt an und importiere die Textdatei mit der Importfunktion DATEN - EXTERNE DATEN - AUS TEXT.
hierbei kannst du im Schritt 3 des Assistenten bei Klick auf WEITERE genau angeben, mit welchem Trennzeichen (Punkt oder Komma) die Zahlen in deiner Textdatei geschrieben sind, so dass sie korrekt umgewandelt werden können.
Importiere also die Textdatei mit dieser Methode, bei der Umsetzung in ein Makro hilft dir der Recorder.
Gruß Daniel
Anzeige
AW: mit Workbook.open
11.08.2016 16:57:04
VBA-Forum
Hi Michael,
Daniel ist einfach gut! Hier der geänderte Code mit dem Vorschlag:

Sub Michael8001()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
sPath = "z:\generic-Flashdisk-01\myExcel\vba\foren\"
sFile = Dir(sPath & "michael vba*.txt")
Do While Len(sFile)
With Workbooks.Open(sPath & sFile, local:=True)
ls = ThisWorkbook.Sheets("Daten").Cells(1, Columns.Count).End(xlToLeft).Column + 1
.Sheets(1).Columns(1).Copy ThisWorkbook.Sheets("Daten").Cells(1, ls)
.Close 0
End With
sFile = Dir
Loop
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
An einem Beispiel habe ich es getestet.
mfg
Anzeige
AW: mit Workbook.open
12.08.2016 12:47:40
Michael
Vielen Dank. Es hat geklappt :D
;
Anzeige
Anzeige

Infobox / Tutorial

Textdatei in Excel importieren mit Makro


Schritt-für-Schritt-Anleitung

Um eine Textdatei in Excel mithilfe eines Makros zu importieren und sicherzustellen, dass alle Inhalte als "Text" formatiert werden, folge diesen Schritten:

  1. Öffne Excel und gehe zum VBA-Editor (Alt + F11).
  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject", wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein:

    Sub TextDateiImportieren()
       With Application
           .DisplayAlerts = False
           .ScreenUpdating = False
       End With
    
       Dim sPath As String
       sPath = "D:\Users\MichaelHerbst\Desktop\abc1\"
       Dim sFile As String
       sFile = Dir(sPath & "*.txt")
    
       Do While Len(sFile)
           With Workbooks.Open(sPath & sFile, Local:=True)
               Dim ls As Long
               ls = ThisWorkbook.Sheets("Daten").Cells(1, Columns.Count).End(xlToLeft).Column + 1
               .Sheets(1).Columns(1).Copy ThisWorkbook.Sheets("Daten").Cells(1, ls)
               .Close False
           End With
           sFile = Dir
       Loop
    
       With Application
           .DisplayAlerts = True
           .ScreenUpdating = True
       End With
    End Sub
  4. Passe den Pfad (sPath) zur Textdatei an.
  5. Führe das Makro aus, um die Textdatei in Excel zu importieren.

Häufige Fehler und Lösungen

  • Problem: Kommazahlen werden falsch formatiert

    • Lösung: Stelle sicher, dass du beim Importieren die Local:=True-Option verwendest, um die lokale Schreibweise zu berücksichtigen.
  • Problem: Textdatei wird nicht gefunden

    • Lösung: Überprüfe den angegebenen Pfad (sPath) und stelle sicher, dass die Datei vorhanden ist.

Alternative Methoden

Eine andere Möglichkeit, eine Textdatei in Excel zu importieren, besteht darin, die integrierte Importfunktion zu nutzen:

  1. Gehe zu Daten > Externe Daten > Aus Text.
  2. Wähle die Textdatei aus und folge dem Assistenten.
  3. Achte darauf, im Schritt 3 des Assistenten das korrekte Trennzeichen auszuwählen (z. B. Komma oder Punkt).

Diese Methode ermöglicht eine präzise Anpassung der Importoptionen und ist besonders nützlich, wenn du mit verschiedenen Formaten arbeitest.


Praktische Beispiele

Wenn du eine Textdatei hast, die Werte im txt format enthält, kannst du mit dem oben genannten Makro die Daten problemlos importieren. Zum Beispiel:

  • Beispieltextdatei: D:\Users\MichaelHerbst\Desktop\abc1\data.txt
    Diese Datei könnte Zahlen wie 1369,523 enthalten, die durch die Verwendung von Local:=True korrekt in Excel übernommen werden.

Tipps für Profis

  • Nutze VBA-Recorder, um dir beim Erstellen von Makros zu helfen. Dies kann dir wertvolle Einblicke in die Syntax und Struktur geben.
  • Experimentiere mit verschiedenen Trennzeichen beim Import, um sicherzustellen, dass Zahlen und Texte richtig erkannt werden.
  • Wenn du regelmäßig mit Textdateien arbeitest, speichere die Makros in einer Personal Macro Workbook, um sie für zukünftige Excel-Sitzungen verfügbar zu haben.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle importierten Werte als Text formatiert werden?
Verwende die Local:=True-Option beim Öffnen der Textdatei, um sicherzustellen, dass die lokalen Formate angewendet werden.

2. Kann ich das Makro anpassen, um mehrere Textdateien gleichzeitig zu importieren?
Ja, das Makro ist bereits so konzipiert, dass es alle .txt-Dateien im angegebenen Verzeichnis importiert. Stelle nur sicher, dass der Pfad korrekt ist.

3. Welche Excel-Version benötige ich für die Verwendung von VBA?
VBA ist in den meisten Excel-Versionen ab Excel 97 verfügbar. Stelle sicher, dass du eine Version verwendest, die die VBA-Funktionalität unterstützt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige