Microsoft Excel

Herbers Excel/VBA-Archiv

Punkt in xlText-file per vba durch Komma ersetzen | Herbers Excel-Forum


Betrifft: Punkt in xlText-file per vba durch Komma ersetzen von: Bernd
Geschrieben am: 08.01.2010 14:15:40


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

  

Betrifft: AW: Punkt in xlText-file per vba durch Komma ersetzen von: Daniel
Geschrieben am: 08.01.2010 14:27:26

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


  

Betrifft: AW: Punkt in xlText-file per vba durch Komma ersetzen von: Tino
Geschrieben am: 08.01.2010 14:29:07

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


  

Betrifft: AW: Punkt in xlText-file per vba durch Komma ersetzen von: Bernd
Geschrieben am: 08.01.2010 15:00:28

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


  

Betrifft: liegt es doch nach meinem Code?! owT. von: Tino
Geschrieben am: 08.01.2010 15:11:20




  

Betrifft: AW: Punkt in xlText-file per vba durch Komma ersetzen von: Daniel
Geschrieben am: 08.01.2010 15:14:28

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


  

Betrifft: AW: klappt! @Daniel, @ Tino von: Bernd
Geschrieben am: 08.01.2010 15:31:37

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


Beiträge aus den Excel-Beispielen zum Thema "Punkt in xlText-file per vba durch Komma ersetzen"