Hilfe bei rechnungsnummernmakro

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Hilfe bei rechnungsnummernmakro

Re: Hilfe bei rechnungsnummernmakro

von gurkende_gurke » Di, 11.11.2008 16:32

Vielen Dank. Klappt alles ganz wunderbar. :D

eine Frage hätt ich allerdings noch. Ist es möglich eine Zelle zu schützen auf die ein makro angewendet wird?
mit "Zelle Sperren" und "Tabelle schützen" geht das nicht, da dann kein Makro mehr auf die Zelle angewendet werden kann.

mfg gurke

Re: Hilfe bei rechnungsnummernmakro

von Karolus » Di, 11.11.2008 03:16

Hallo
Trag am Anfang zusätzlich ein:
'(das 4.Tabellenblatt hat den Index 3)
izeile = thisComponent.sheets(3).getcellrangebyname("B2").value
und die Adressangabe machst du mit:
args2(0).Value = "A" & izeile

Das ganze ist aber genausogut mit einem Dreizeiler möglich ohne zusätzliche ZÄHLENWENN-funktionen:

Code: Alles auswählen

Sub neue_Rechnungsnr
thisComponent.sheets(3).getcellrangebyname("B2").value =_
thisComponent.sheets(3).getcellrangebyname("B2").value + 1
end sub
Gruß Karo

Hilfe bei rechnungsnummernmakro

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

Nach oben