Microsoft Excel

Herbers Excel/VBA-Archiv

Daten als txt - Probs mit Zellformaten

Betrifft: Daten als txt - Probs mit Zellformaten von: Gerhard
Geschrieben am: 20.08.2008 06:06:49

Moin

Speichere einen Ausschnitt meiner Tabelle wie folgt als txt Datei ab:

Sub TXT_DATEI()
  Dim Bereich As Range
  Dim SpeicherPfad As String
  
  Application.ScreenUpdating = False
  SpeicherPfad = _
  IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\") & _
    "Meine.TXT"
    
  Set Bereich = Tabelle1.UsedRange.SpecialCells(xlCellTypeVisible)
    
  With Workbooks.Add
     Application.CutCopyMode = False
     Bereich.Copy
     
     .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     
     Application.DisplayAlerts = False
     ActiveWorkbook.SaveAs Filename:= _
      SpeicherPfad, _
          FileFormat:=xlUnicodeText, CreateBackup:=False
     
     .Close
     Application.DisplayAlerts = True
  End With
  Application.ScreenUpdating = True
  End Sub



Wenn ich nun diese Dateien in eine neue Tabelle kopieren will sind meine ganzen Zellformate verschwunden.
23,5 wird zu 23.5 und somit als Datum angezeigt.
0005 wird als 5 angezeigt (benutzerdefiniertes Format "0000"

Das einzige was ich mir denken kann ist, das es an diesem Satz liegt:

FileFormat:=xlUnicodeText, CreateBackup:=False

Was muss da bei FileFormat rein, das die Zellformate mitübernommen werden?

thx Gerhard

  

Betrifft: AW: Daten als txt - Probs mit Zellformaten von: Daniel
Geschrieben am: 20.08.2008 10:17:52

Hi

grundsätzlich:
Text-Files kennen keine Formate !!!!!!
Zahlen werden immer als Wert in in die Textdatei übertragen.
wenn du Formatierte Zahlen in ein Text-File übertragen willst, musst du diese erst in einen Text umwandeln.

dazu könntest du diese Schleife verwenden (muss nach dem Kopieren in den Code eingefügt werden)

Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
If IsNumeric(Zelle) Then Zelle.Value = "'" & Zelle.Text
Next



damit die Zahlen richtig gespeichert werden, musst du beim Speichern (SaveAs) noch die Option setzen: "Local:=True"
das dürfte aber nach der obigen Schleife obsolet sein, da du ja keine Zahlen in deiner Datei mehr hast, sondern nur noch Texte.

Wenn du prüfen willst, ob eine Textdatei richtig erstellt wurde, musst du die Datei mit einem Texteditor öffnen, nicht mit Excel.

Gruß, Daniel