von gurkende_gurke » Mo, 10.11.2008 21:54
Hallo, hab mich mal an ein Rechnungsnummernmakro rangewagt. Auch wenn es vielleicht einfachere Lösungen gäbe, hier ist das was ich bisher habe:
Code: Alles auswählen
sub ReNr
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 = "Nr"
args1(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$($B$1)"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "1"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())
end sub
Dies soll dazu führen, dass immer eine Zeile tiefer eine 1 hingeschrieben wird... Diese wäre dann mit einer Zählenwenn() funktion innerhalb meiner Rechnungsnummernzeile eine gute Rechnungsnummer. B1 ist ebenfalls eine Zählenwenn Funktion, =ZÄHLENWENN($A$1:$A$10000;1)+1 . Meine Überlegung war, dass dadurch immer eine Zeile Tiefer gegangen wird, als es 1en gibt, wodurch die 1 des aktuell ausgeführten Makros immer in die erste leere Zelle geschrieben wird. Allerdings ist $A$($B$1) keine gültige Zelle. Wie krieg ich das also zum laufen?

Hilfe.
mfg gurke
Hallo, hab mich mal an ein Rechnungsnummernmakro rangewagt. Auch wenn es vielleicht einfachere Lösungen gäbe, hier ist das was ich bisher habe:
[code]sub ReNr
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 = "Nr"
args1(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$($B$1)"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "1"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())
end sub[/code]
Dies soll dazu führen, dass immer eine Zeile tiefer eine 1 hingeschrieben wird... Diese wäre dann mit einer Zählenwenn() funktion innerhalb meiner Rechnungsnummernzeile eine gute Rechnungsnummer. B1 ist ebenfalls eine Zählenwenn Funktion, =ZÄHLENWENN($A$1:$A$10000;1)+1 . Meine Überlegung war, dass dadurch immer eine Zeile Tiefer gegangen wird, als es 1en gibt, wodurch die 1 des aktuell ausgeführten Makros immer in die erste leere Zelle geschrieben wird. Allerdings ist $A$($B$1) keine gültige Zelle. Wie krieg ich das also zum laufen? :( Hilfe.
mfg gurke