Seite 1 von 1
Makro auf geschütze Zelle anwenden?
Verfasst: Di, 11.11.2008 19:48
von gurkende_gurke
Hi, ich habe folgende Frage:
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. Danke im Vorraus für jede Hilfe
mfg gurke
Re: Makro auf geschütze Zelle anwenden?
Verfasst: Di, 11.11.2008 21:13
von Stephan
ich verstehe den Hintergrund der Frage nicht, das 'übliche' Vorgehen wäre den Zellschutz per Makro zu entfernen, dann die gewünschte Änderung an der Zelle per Makro zu machen und abschliessend den Zellschutz per Makro wieder zu setzen.
Was spricht dagegen so vorzugehen?
Gruß
Stephan
Re: Makro auf geschütze Zelle anwenden?
Verfasst: Mi, 12.11.2008 14:44
von gurkende_gurke
Normalerweise nichts, hab mein Makro auch so geschrieben. Also erst Protect=false dann die formel und dann protect=true. Aber ich habe ein großes Problem damit. Kann dann das Makro nicht mehr bei "Drucken" ausführen, da drucken das protecten und unprotecten der Tabelle unterdrückt.

Scheint ein bug zu sein. Jmd ne Idee wie das zu lösen ist?
mfg gurke
Re: Makro auf geschütze Zelle anwenden?
Verfasst: Mi, 12.11.2008 16:07
von komma4
Idee?
Ein timing-Problem beim Drucken? Kannst Du Deinen Code mal zeigen (Passwort maskieren!)
Re: Makro auf geschütze Zelle anwenden?
Verfasst: Mi, 12.11.2008 16:17
von gurkende_gurke
Klar kann ich den code zeigen. ein passwort hab ich sowieso nicht... (is nur damit niemand aus versehen Code löscht...)
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 = "Protect"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args1())
thisComponent.sheets(0).getcellrangebyname("K22").value =_
thisComponent.sheets(0).getcellrangebyname("K22").value + 1
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Protect"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args2())
end sub
Wie gesagt bei anderen Ereignissen wie bei Speichern funktioniert alles wunderbar, halt nur nicht bei drucken. Vielen Dank im vorraus für jede Hilfe. K22 ist übrigens meine Rechnungsnummernzeile...
mfg gurke
Re: Makro auf geschütze Zelle anwenden?
Verfasst: Mi, 12.11.2008 16:53
von komma4
mmm, vielleicht ... ist beim Drucken der
frame nicht greifbar.
Versuche mal:
Code: Alles auswählen
oSheet = ThisComponent.Sheets( 0 )
oSheet.Unprotect( "" )
oSheet.getCellRangeByName( "K22" ).value =_
oSheet.getCellRangeByName( "K22" ).value + 1
oSheet.Protect( "" )
Re: Makro auf geschütze Zelle anwenden?
Verfasst: Mi, 12.11.2008 17:05
von gurkende_gurke
Funktioniert jetzt. Vielen Dank
mfg gurke