Liebe www-Gemeinde,
ich versuche aus excel (2010) ein Setup-File für Linux zu schreiben. Dafür muss als Dezimaltrennzeichen ein . (Punkt) verwendet werden. In excel verwende ich üblicherweise das Komma als Trennzeichen.
Auch wenn ich vor dem Befüllen der Variablen setze:
Application.UseSystemSeparators = False
wird offensichtlich als Dezimaltrennzeichen ein Komma verwendet, was unter Linux natürlich als neuer Parameter interpretiert wird.
Der Aufbau meiner Setup Datei lautet in etwa:
Application.UseSystemSeparators = False
WarmLeit = Cells(25, 9).Value
Open „C:\01_Arbeit\Setup.inp“ For Output As #1
Print #1, „cond,constant,“ & WarmLeit
Close #1
Application.UseSystemSeparators = True
Kann mir jemand sagen, wie ich einen Punkt als Dezimaltrennzeichen für WarmLeit bekomme?
Kann mir jemand sagen, wie ich einen Punkt als
Dezimaltrennzeichen für WarmLeit bekomme?
Hallo MwieMichel,
Option Explicit
Sub tt()
Dim WarmLeit, appEditor
Cells(25, 9).Value = 3.14
WarmLeit = Cells(25, 9).Value
Open „C:\01_Arbeit\Setup.inp“ For Output As #1
Print #1, „cond,constant,“ & Replace(CStr(WarmLeit), „,“, „.“)
Close #1
appEditor = Shell(„notepad.exe C:\01_Arbeit\Setup.inp“, vbMaximizedFocus)
End Sub
Kann mir jemand sagen, wie ich einen Punkt als
Dezimaltrennzeichen für WarmLeit bekomme?
Hallo MwieMichel,
Hallo Reinhard,
Option Explicit
Sub tt()
Dim WarmLeit, appEditor
Cells(25, 9).Value = 3.14
WarmLeit = Cells(25, 9).Value
Open „C:\01_Arbeit\Setup.inp“ For Output As #1
Print #1, „cond,constant,“ & Replace(CStr(WarmLeit), „,“, „.“)
Close #1
appEditor = Shell(„notepad.exe C:\01_Arbeit\Setup.inp“,
vbMaximizedFocus)
End Sub
ähm, kann man dass nicht einfach über die Systemsteuerung
erledigen?
Das dachte ich auch. Die Systemsteuerung habe ich versucht mit
Application.UseSystemSeparators = False
auf das richtige Trennzeichen umzustellen.
So würde man das bei CSV (comma seperated values) Dateien machen, egal ob Ein- oder Auslesen.
Bei „echtem“ Text ist das offensichtlich anders.
ähm, kann man dass nicht einfach über die Systemsteuerung
erledigen?
Das dachte ich auch.
ich GLAUBE Fronk meinte die manuelle Trennzeicheneinstellung
in der Systemsteuerung. Das wirkt sich aber auf alle Programme aus, speziell Office-Programme. So globale Änderungen vermeide ich sofern
möglich.
Die Systemsteuerung habe ich versucht mit
Application.UseSystemSeparators = False
auf das richtige Trennzeichen umzustellen.
Woher soll Excel wissen was das RICHTIGE Trennzeichen ist?
Wenn schon, so mein Gedankengang, dann so:
Sub tt()
Application.UseSystemSeparators = False
Application.DecimalSeparator = „.“
Application.ThousandsSeparator = „,“
'andrer Code
Application.UseSystemSeparators = True
End Sub
Aber in deinem Fall nützt das nix. Es wirkt sich nicht auf das
Trennzeichen im PRINT Zellenwert aus.
PS: professioneller Code benutzt kein #1. Sie benutzen FreeFile.
Also so:
Dim FF as Long
FF=FreeFile
Open „C:\MistEintracht0:3gegenDortmund\fluch.txt“ for Output as #FF
usw.
So würde man das bei CSV (comma seperated values) Dateien
Deute das lieber als characters seperated Values. Denn das gilt in
Amerika. Hier in D ist das Trennzeichen das Semikolon.
Hallo Reinhard,
hab schon immer vermutet, dass ich keinen professionellen Code schreibe. Aber jetzt hab ich es schwarz auf weiss .
Danke für Eure Unterstützung.
MfG MwieMichel