Veröffentlicht 21. Februar 200223 j Hallo, habe ich da mal wieder ne "Innovation" (=Bug) von Microsoft entdeckt oder was ?!? Nunja, mal von vorne, folgendes Problem mit EXCEL 97 : Die Zellen der Tabelle sind als "Zahl mit 2 Dezimalstellen" definiert. Sieht dann ungefähr so aus : A B 1 23,00 123,23 2 23,45 34,23 3 12,12 124,44 Nun sollen die Inhalte gespeichert werden im *.prn-Format. Dazu wähle ich "Datei speichern unter..." und dann das *.prn-Format. Die Datei wird gespeichert und in der Datei steht dann so wie es sein sollte : 23,00 123,23 23,45 34,23 12,12 124,44 Da das ganze regelmäßig erfolgen soll, habe ich parallel zum Speichervorgang ein Makro aufgezeichnet. Führe ich nun aber das Makro aus, erstellt Excel mir zwar auch eine *.prn-Datei, aber so : 23.00 123.23 23.45 34.23 12.12 124.44 Auf den ersten Blick sieht das ziemlich gleich aus, aber mit dem Makro wird ein PUNKT als Dezimalzeichen geschrieben und nicht wie benötigt ein KOMMA ?!?!?! Wie kann das sein, daß da plötzlich nen anderes Zeichen eingesetzt wird, wenn man den Vorgang automatisiert ablaufen läßt ??! Ich finde das ziemlich widersinnig ! Bislang sind alle Versuche gescheitert, das ganze, mit KOMMA abzuspeichern, in VBA zu realisieren ?!?! Weiß jemand Rat wie ich doch noch ne Datei mit KOMMATA und Leerzeichen als Trennzeichen (ähnlich dem *.prn-Format, jedes andere wäre mir aber auch recht, hauptsache sieht so aus wie oben erwähnt !) abgespeichert bekomme ??? Hoffe mal, jemand wird schlau aus meiner Ausführung und kann mir da nen Tipp geben !?! P.S. Die Ländereinstellungen benutzen auf jeden Fall auch das Komma als Dezimalzeichen.... Gruß Flori
21. Februar 200223 j Autor hm, schade....Idee klang gut..... Aber "Setlocale("de") ist in Excel 97 nicht bekannt....
21. Februar 200223 j Hi, musst (soweit ich das überblicken kann) eigentlich net die ExportFunktion verwenden. Kannste ja auch selbst exportieren, dann kannste dein Format wählen wie du's willst. (Komma, Punkt, LeerZeichen, Slash, ... was du willst) hab mal was zusammen geknaupt Sub SaveInFile() Dim Zeile As String Dim DateiName As String DateiName = "C:\temp\PrmTest.txt" erg = Dir(DateiName) If erg <> "" Then If MsgBox("Die Datei """ & DateiName & """ existiert bereits!" & vbCrLf & "Löschen?", vbQuestion Or vbYesNo, "Löschen?") = vbYes Then Kill DateiName Else MsgBox "Die Daten werden an die bereits bestehende """ & DateiName & """ angehongen!", vbInformation, "Anhängen" End If End If For i = 1 To Tabelle1.UsedRange.Rows.Count Zeile = Tabelle1.Range("A" & i) & " " & Tabelle1.Range("B" & i) Open DateiName For Append As #1 Seek #1, LOF(1) + 1 Print #1, Zeile Close #1 Next i End Sub Hier darauf achten, dass dein Tabellenblatt auch "Tabelle1" heisst. Ausserdem werden hier nur Spalte A und B geprüft, ist aber beliebig veränderbar. Die Variabel DateiName sollte auch eingestellt werden. (Könnte man über ne InputBox machen) MfG KarlBerg
22. Februar 200223 j Autor Jo danke an alle Helfer ! Hab das Problem gelöst und die Datei nun tatsächlich selbst erstellt via open und print und close und allem was so dazu gehört. So konnte ich auch genau managen wieviele Leerzeichen an welcher Stelle eingefügt werden sollen. Die Formatierung der Datei ist nämlich ziemlich wichtig für das Prog, was die Datei anschließend mal importieren soll..... ...aber das alles noch zu erklären, würde den Rahmen hier sprengen.... Also nochmal Danke für die Ideen, Gruß Flori
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.