LO 4.1.3.x/WinXP Pro: Umwandeln einer Formel in einen Wert funktioniert nicht mehr

04/12/2013 - 23:46 von Bernd Zeitzen | Report spam
Guten Abend zusammen.

Ich habe in einer Tabellenvorlage (Rechnung) in einer Zelle ein Makro, das eine in einer Textdatei
befindliche Zahl ausliest, anzeigt und die ausgelesene Zahl um "1" erhöht wieder in die Datei
schreibt (fortlaufende Rechnungsnummer). In einer weiteren Zelle steht die Formel "=heute()" für das
Tagesdatum. Damit bei einem nachtràglichen Öffnen der Rechnung die Rechnungsnummer durch das Makro
weiterhin hochgezàhlt wird, habe ich den Inhalt der Zelle ausgeschnitten und über "Inhalte einfügen"
wieder eingefügt. Dabei wurde die Option Formel abgewàhlt. Ähnlich habe ich es mit dem Datum
gemacht. Das alles funktionierte unter 3.6.7. wunderbar.

Vor einiger Zeit bin ich auf 4.1.3.x umgestiegen und seitdem können die Formeln nicht mehr durch die
Werte ersetzt werden. Leider erst heute entdeckt. :-(
Hat hier jemand àhnliche Erfahrungen gemacht und hat eine Lösung parat?

Schon jetzt besten Dank für eure Ideen.
Bernd
 

Lesen sie die antworten

#1 Bernd Zeitzen
05/12/2013 - 08:23 | Warnen spam
Vergessen zu erwàhnen habe ich, dass ich das beschriebene Vorgehen als Makro aufgezeichnet habe.
Dieses hànge ich einmal unten an. Innerhalb des Makros gelingt das ersetzen nicht. Führe ich die
Schritte des Ausschneidens und Einfügens der Inhalte manuell durch, passiert das, was vor dem Update
das Makro erledigte.

Am 04.12.2013 23:46 schrieb Bernd Zeitzen:
Guten Abend zusammen.

Ich habe in einer Tabellenvorlage (Rechnung) in einer Zelle ein Makro, das eine in einer Textdatei
befindliche Zahl ausliest, anzeigt und die ausgelesene Zahl um "1" erhöht wieder in die Datei
schreibt (fortlaufende Rechnungsnummer). In einer weiteren Zelle steht die Formel "=heute()" für das
Tagesdatum. Damit bei einem nachtràglichen Öffnen der Rechnung die Rechnungsnummer durch das Makro
weiterhin hochgezàhlt wird, habe ich den Inhalt der Zelle ausgeschnitten und über "Inhalte einfügen"
wieder eingefügt. Dabei wurde die Option Formel abgewàhlt. Ähnlich habe ich es mit dem Datum
gemacht. Das alles funktionierte unter 3.6.7. wunderbar.

Vor einiger Zeit bin ich auf 4.1.3.x umgestiegen und seitdem können die Formeln nicht mehr durch die
Werte ersetzt werden. Leider erst heute entdeckt. :-(
Hat hier jemand àhnliche Erfahrungen gemacht und hat eine Lösung parat?

Schon jetzt besten Dank für eure Ideen.
Bernd




sub testnumber
Dim m as string
m=GetAndSetNumber
msgbox m
end sub

function GetAndSetNumber as string
dim f as Integer
dim rechnungsdatei as string
dim renummer as string
rechnungsdatei="N:/re.txt"
if FileExists("file:///"&rechnungsdatei) then
f = FreeFile()
Open "file:///"&rechnungsdatei for Input as #f
Line Input #f, renummer
close #f
f = FreeFile()
Open "file:///"&rechnungsdatei for output as #f
Print #f, val(renummer)+1
close #f
else
renummer=0
endif
GetAndSetNumber=renummer
end function

sub ReNrEintragen
rem -
rem define variables
dim document as object
dim dispatcher as object
rem -
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem -
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$17"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem -
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=getandsetnumber()"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())

rem sub WahreWerteEintragen
rem -
rem define variables
rem dim document as object
rem dim dispatcher as object
rem -
rem get access to the document
rem document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem -
rem dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$17"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem -
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem -
dim args3(5) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Flags"
args3(0).Value = "SVDNT"
args3(1).Name = "FormulaCommand"
args3(1).Value = 0
args3(2).Name = "SkipEmptyCells"
args3(2).Value = false
args3(3).Name = "Transpose"
args3(3).Value = false
args3(4).Name = "AsLink"
args3(4).Value = false
args3(5).Name = "MoveMode"
args3(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args3())

rem -
args1(0).Name = "ToPoint"
args1(0).Value = "$E$17"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem -
args2(0).Name = "StringName"
args2(0).Value = "=HEUTE()"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())

rem -
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem -
dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVDNT"
args6(1).Name = "FormulaCommand"
args6(1).Value = 0
args6(2).Name = "SkipEmptyCells"
args6(2).Value = false
args6(3).Name = "Transpose"
args6(3).Value = false
args6(4).Name = "AsLink"
args6(4).Value = false
args6(5).Name = "MoveMode"
args6(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())

rem -
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "NumberFormatValue"
args7(0).Value = 36

rem -
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())

rem -
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, Array())

rem -
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, Array())

end sub

Ähnliche fragen