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

Probleme beim Speicherformat

Probleme beim Speicherformat
Patrick
Hallo zusammen,
mein Problem aus dem letzten Beitrag (Datei öffen / Datei speichern) ist grundsätzlich gelöst. Ich kann flexibel Dateien auswählen und Namen/Speicherorte bestimmen.
Zum Speichern habe ich folgendes festgelegt:
Application.GetSaveAsFilename("c:\irgendeine\datei.txt, "TXT Files (*.txt), *.txt")
Das Problem jetzt ist:
a) Wenn ich meine erstellte Datei von Hand im Format txt mit Tabstopps speichere, dann werden Zahlen richtig im Format 1.000.000,00 in die txt-Datei geschrieben.
b) Wenn ich das Makro laufen lasse, dann werden die Zahlen im amerikanischen Format inkl Anführungszeichen in das txt geschrieben ("1,000,000.00").
Woran kann das liegen? ist Application.GetSaveAsFilename("c:\irgendeine\datei.txt, "TXT Files (*.txt), *.txt") ein anderes Format als das txt mit Tabstopp, das man manuell auswählt?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Probleme beim Speicherformat
30.07.2009 09:26:46
Hajo_Zi
Hallo Patrick,
mit dem Code den Du gepostetst hast wird nichts gespeichert. Vermute ich mal. Bei mir wird der Teil auch rot angezeigt.
Gruß Hajo
AW: Probleme beim Speicherformat
30.07.2009 09:32:31
Patrick
Ergänzung: es gibt zwei Phänomene:
Zahlen in Excel (deutsch) angezeigt: 200.000,00 (Formatiert mit Befehl Selection.NumberFormat = "#,##0.00"). Im txt wird dann folgendes angezeigt: "200,000.00"
Zahlen die explizit eingetragen wurden (ohne weitere Formatierung: Excel-Anzeige 1,00, im txt dann als amerikanische 1.00 angezeigt.
Gespeichet wird mit dieser Befehlsfolge (aus einer vorherigen Antwort die ich bekam...):
strFilename = Application.GetSaveAsFilename("c:\irgendeine\datei.txt", "TXT Files (*.txt), *.txt")
If VarType(strFilename) = vbBoolean Then MsgBox "Abbrechen gedrückt": Exit Sub
wbkWorkbook.SaveAs strFilename
wbkWorkbook.Close
Set wbkWorkbook = Nothing
Anzeige
AW: Probleme beim Speicherformat
30.07.2009 09:42:02
Hajo_Zi
Hallo Patrick,
ich habe jetzt mal den Makrorecorder benutzt. Vielleicht reicht es.
wbkWorkbook.SaveAs Filename:=strFilename, FileFormat:=xlText
ich habe es unter 2007 getestet.
Gruß Hajo
AW: Probleme beim Speicherformat
30.07.2009 09:52:34
Patrick
Hallo Hajo,
naja, das wars leider auch nicht ganz.
Ich vermute, wenn man mit VBA das txt auswählt kapiert der Rechner nicht ganz die Umsetzung der Formate von Zahlen.
Speichere ich manuell als txt Tab, dann wird eine Zahl 1.000.000,00 auch so ins txt geschrieben. Wenn ich mittels meines VBA-Codes speichere, dann kommt "1,000,000.00" raus. Oder ich formatiere vorab auf Zahlenformat "#.00" ohne tausender-Trennung, dann steht im txt 1000000.00, also auch das amerikanische Format!
Ich hab leider keinen Plan warum, bin aber auch absoluter VBA-Laie und nutze meist den Rekorder plus Anpassungen dank eurer Hilfe...
Kann es sein, dass mein Befehl nicht den normalen txt mit Tab, sondern Unicode oder irgendwas anderes als txt verwendet.
Anzeige
AW: Probleme beim Speicherformat
30.07.2009 09:57:27
Hajo_Zi
Hallo Patrick,
vielleicht reicht wenn Du noch ergänzt ", Local:=True"
weitere Vorschläge habe ich dann nicht.
Gruß Hajo
AW: Probleme beim Speicherformat
30.07.2009 09:53:28
Tino
Hallo,
versuche es mal so.
Sub Makro2()
Dim fileSaveName As String
Dim strPfad As String, FileName As String

strPfad = "c:\irgendeine\datei.txt" 'Pfad + Dateiname 

ChDrive Left(strPfad, 2) 'Login Laufwerk 
ChDir Left(strPfad, InStrRev(strPfad, "\")) 'Login Ordner 

FileName = Right(strPfad, Len(strPfad) - InStrRev(strPfad, "\")) 'Dateiname 
fileSaveName = Application.GetSaveAsFilename(FileName, "Text- File (*.txt), *.txt") 'Dialog mit vorgabe 



If fileSaveName <> CStr(False) Then 'rückgabe 
  ThisWorkbook.SaveAs FileName:=fileSaveName, FileFormat:=xlText, CreateBackup:=False
  MsgBox "Datei wurde gespeichert " & fileSaveName
Else
  MsgBox "Speichern wurde abgebrochen!"
End If

End Sub
Gruß Tino
Anzeige
was ich dir noch anbieten kann...
30.07.2009 10:53:01
Tino
Hallo,
, dies mit diesem Makro zu machen.
Nachteil, die Zahlen werden normal dargestellt, also ohne 1000er- Trennzeichen.
Sonst müsste man jede Zelle einzeln durchgehen und noch das Format auslesen.
Option Explicit

Sub Beispiel_Makro()
Dim fileSaveName As String
Dim strPfad As String, FileName As String

strPfad = "E:\1 Forum\Mappe1.txt" 'Pfad + Dateiname 

If Dir(Left(strPfad, 2), vbDirectory) <> "" Then
   ChDrive Left(strPfad, 3) 'Login Laufwerk 
   
   If Dir(Left(strPfad, InStrRev(strPfad, "\")), vbDirectory) <> "" Then
    ChDir Left(strPfad, InStrRev(strPfad, "\")) 'Login Ordner 
   Else
    ChDir Left(strPfad, 3)
   End If
End If

FileName = Right(strPfad, Len(strPfad) - InStrRev(strPfad, "\")) 'Dateiname 
fileSaveName = Application.GetSaveAsFilename(FileName, "Text- File (*.txt), *.txt") 'Dialog mit vorgabe 


If fileSaveName <> CStr(False) Then
  DateiSpeichern fileSaveName, ThisWorkbook.ActiveSheet 'Tabelle angeben 
  MsgBox "Datei wurde gespeichert " & fileSaveName
Else
  MsgBox "Speichern wurde abgebrochen!"
End If

End Sub

Sub DateiSpeichern(sFilename As String, meTab As Worksheet)
Dim Bereich As Range, rZellen As Range
Dim strString As String
Dim F As Integer

Set Bereich = meTab.UsedRange

With Application
    For Each rZellen In Bereich.Rows
     strString = strString & Join(.Transpose(.Transpose(rZellen.Value)), vbTab) & vbCrLf
    Next rZellen
End With
 
  strString = Left(strString, Len(strString) - 1)
  
  F = FreeFile
  Open sFilename For Output As #F
  Print #F, strString
  Close #F

End Sub
Gruß Tino
Anzeige
AW: Probleme beim Speicherformat
30.07.2009 10:55:26
Patrick
Danke an alle! Ihr habt mir sehr geholfen! Ich komme jetzt weiter...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige