Hilfe bei rechnungsnummernmakro

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

gurkende_gurke
**
Beiträge: 42
Registriert: So, 21.09.2008 16:42

Hilfe bei rechnungsnummernmakro

Beitrag von gurkende_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: 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Hilfe bei rechnungsnummernmakro

Beitrag von Karolus »

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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
gurkende_gurke
**
Beiträge: 42
Registriert: So, 21.09.2008 16:42

Re: Hilfe bei rechnungsnummernmakro

Beitrag von gurkende_gurke »

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
Antworten