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

Forumthread: Punkt in xlText-file per vba durch Komma ersetzen

Punkt in xlText-file per vba durch Komma ersetzen
Bernd

Liebe Excel-Gemeinde,
mit dem nachstehenden Code wird ein Blatt mit xls-Format in ein Blatt txt-Format konvertiert.
With wbZiel
Application.DisplayAlerts = False
.SaveAs strFile, _
FileFormat:=xlText, CreateBackup:=False 'Zeile neu aufgenommen f. tabstopp getrennt
.Close 'wenn die neue Mappe geschlossen werden soll!
Dabei werden jedoch leider die ursprünglichen Kommata in Punkte umgewandelt.
Mit nachstendem Replacement-Code werden die Kommata zwar ersetzt, aber nur bei den Zellen mit Werten 0 (Nullwerte bleiben mit Punkt). Als krönender Abschluss wird auch noch Anführungszeichen eingefügt.
Range("A3:P37").Select
Selection.Replace What:=".", Replacement:=","
Konkretes Beispiel: https://www.herber.de/bbs/user/67079.txt
Wer weiss bitte Rat?
Danke im Voraus,
Bernd
Anzeige
AW: Punkt in xlText-file per vba durch Komma ersetzen
08.01.2010 14:27:26
Daniel
Hi
Excel hat so seine Tücken mit dem Umwandeln von Zahlen beim Konvertieren in Text, das liegt halt daran, das deutsche und englische Schreibweise nicht sauber getrennt sind.
ich behelfe mir mittlerweise damit, daß ich beim Erstellen einer Text- oder CSV-Datei mir per Makro oder Formel alle Werte einer Zeile mit dem entsprechenden Trennzeichen in einer Zelle zusammensammle und dann diese Hilfstabelle als Textfile speichere.
Für Excel ist das dann ein grosser Textwert in einer Spalte, somit entfallen sämtliche Umwandlungs- und Trennzeichenautomatiken von Excel und das Textfile sieht hinterher so aus, wie ich das haben will.
Gruß, Daniel
Anzeige
AW: Punkt in xlText-file per vba durch Komma ersetzen
08.01.2010 14:29:07
Tino
Hallo,
versuch mal und ersetze die Punkte direkt in der Textdatei.
Dim sFilename$, sFilename$
Dim F%
sFilename = strFile 'Deine Textdatei
If Dir$(sFilename, vbNormal)  "" Then
'Lesen der Textdatei
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sLines
Close #F
sLines = Replace(sLines, ".", ",")
'Zurückschreiben
Open sFilename For Output As #F
Print #F, sLines
Close #F
End If
Wenn aber noch andere Texte mit Punkt enthalten sind werden die auch ersetzt,
die habe ich inm Beispiel nicht gesehen.
Gruß Tino
Anzeige
AW: Punkt in xlText-file per vba durch Komma ersetzen
08.01.2010 15:00:28
Bernd
Hallo Daniel, hallo Tino,
Danke f.d. Hilfe, aber leider hilft mir das wenig, da das txt.-File korrekt formartiert (mit Kommata) vorliegen muss.
Offensichtlich scheint es keinen Befehl zu geben, der das korrekt bewerkstelligt.
Grüße Bernd
liegt es doch nach meinem Code?! owT.
08.01.2010 15:11:20
Tino
AW: Punkt in xlText-file per vba durch Komma ersetzen
08.01.2010 15:14:28
Daniel
Hi
bei der von mir beschriebenen Methode funktioniert das schon, ist halt etwas aufwendiger.
es gibt bei SaveAs noch die Option: Local:=True
ActiveWorkbook.SaveAs "Dein Dateiname", xlText, local:=True
damit müssten die Zahlenwerte korrekt mit Komma gespeichert werden (deutsches Format).
Diese Option ist leider nur per Makro aktivierbar.
damit du auch wirklich nur zwei nachkommastellen speicherst, würde ich unter EXTRAS-OPTIONEN-BERECHNEN noch die Option "Genauigkeit wie angezeigt" aktivieren, nachdem du das Zahlenformat auf 2 NK-Stellen eingegrenzt hast (hier ist wieder der Recorder dein Freund)
Gruß, Daniel
Anzeige
AW: klappt! @Daniel, @ Tino
08.01.2010 15:31:37
Bernd
Hallo Daniel,
das mit dem "local:=True" hat sofort geklappt. Vielen herzlichen Dank an Dich, du hast mir super damit geholfen. Dank auch an Timo für dessen Mühe.
Grüße, Bernd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Punkt in xlText-Datei per VBA durch Komma ersetzen


Schritt-für-Schritt-Anleitung

  1. Öffne deinen Excel-Arbeitsblatt. Stelle sicher, dass du das gewünschte Blatt mit den Daten, die du konvertieren möchtest, geöffnet hast.

  2. Füge den folgenden VBA-Code ein:

    Sub ExportToText()
       Dim wbZiel As Workbook
       Dim strFile As String
       strFile = "C:\dein\pfad\deineDatei.txt" ' Passe den Pfad an
    
       Set wbZiel = ThisWorkbook
       Application.DisplayAlerts = False
       wbZiel.SaveAs strFile, FileFormat:=xlText, CreateBackup:=False
       Application.DisplayAlerts = True
       wbZiel.Close
    End Sub
  3. Ersetze die Punkte durch Kommas: Füge nach dem Speichern den folgenden Code hinzu, um die Punkte in der Textdatei durch Kommas zu ersetzen:

    Dim sFilename As String
    Dim F As Integer
    sFilename = strFile
    If Dir$(sFilename, vbNormal) <> "" Then
       F = FreeFile
       Open sFilename For Binary As #F
       Dim sLines As String
       sLines = Space$(LOF(F))
       Get #F, , sLines
       Close #F
       sLines = Replace(sLines, ".", ",")
       Open sFilename For Output As #F
       Print #F, sLines
       Close #F
    End If
  4. Speichere die Änderungen und führe das Makro aus. Damit werden alle Punkte in deiner Datei durch Kommas ersetzt.


Häufige Fehler und Lösungen

  • Fehler: Punkte bleiben in Nullwerten.

    • Lösung: Vergewissere dich, dass du den Replace-Befehl auf die gesamte Zeile anwendest und nicht nur auf Zellen mit Werten.
  • Fehler: Anführungszeichen werden hinzugefügt.

    • Lösung: Achte darauf, dass du beim Export keine Formate verwendest, die zusätzliche Zeichen hinzufügen.

Alternative Methoden

  • Speichern mit local:=True: Du kannst die Methode von Daniel verwenden, um die Datei mit korrektem deutschen Format zu speichern:

    ActiveWorkbook.SaveAs "C:\dein\pfad\deineDatei.txt", xlText, Local:=True
  • Verwenden von Formeln: Du kannst auch in Excel eine Hilfstabelle erstellen, in der du alle Werte in einer Zelle zusammenfügst und dann diese Zelle als Textdatei speicherst.


Praktische Beispiele

  • Beispiel 1: Wenn du eine Excel-Tabelle mit Währungsangaben hast, kannst du den VBA-Code verwenden, um die Punkte in den Währungssummen durch Kommas zu ersetzen:

    Range("A1:A10").Replace What:=".", Replacement:=","
  • Beispiel 2: Bei Konvertierungen von Zahlenformaten, stelle sicher, dass die Einstellungen in Excel so sind, dass beim Export die Punkte in Kommas umgewandelt werden.


Tipps für Profis

  • Nutze den Recorder in Excel, um Makros zu erstellen, die die genauen Schritte aufzeichnen, die du machst. So kannst du den Code später anpassen.
  • Achte bei der Verwendung von FileFormat:=xlText, dass du die richtige Textcodierung wählst, um sicherzustellen, dass die Datei korrekt gespeichert wird.
  • Verwende Genauigkeit wie angezeigt: Gehe zu Extras > Optionen > Berechnen und aktiviere die Option, um sicherzustellen, dass die Zahlen korrekt gerundet werden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Punkte ersetzt werden?
Stelle sicher, dass du den Replace-Befehl auf den gesamten Inhalt der Datei anwendest.

2. Was passiert, wenn ich wichtige Punkte in Texten habe?
Die oben genannten Methoden ersetzen alle Punkte. Du kannst spezifischere Ersetzungen vornehmen, indem du Bedingungen hinzufügst oder bestimmte Bereiche auswählst.

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