Seite 1 von 1

CALC: Zeilen löschen, Makro über Schaltfläche auslösen

Verfasst: Mo, 25.03.2013 15:30
von Birbey
Hallo,

das Problem steht bereits im Betreff.

Das Makro funktioniert, wenn ich es über den Makros oben im Programm ausführen.

Nur mit der Schaltfläche (Button) geht es nicht. Bei Excel geht das mit der rechten Maustaste. Aber im Calc habe ich es noch nicht rausgefunden.


Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; CODE tags gesetzt; Betreff erweitert

Re: Wie Makros mit Schaltfläche verknüpfen.

Verfasst: Mo, 25.03.2013 15:44
von Karolus
Hallo
Im Bearbeitungmodus der Schaltfläche →Rechtsklick→Kontrollfeld→Ereignisse→Maustaste gedrückt....

Karolus

Re: Wie Makros mit Schaltfläche verknüpfen.

Verfasst: Mo, 25.03.2013 17:37
von juetho
Besser als "Maustaste gedrückt" ist "Aktion ausführen"; das ist für viele derartige Kontrollfelder das wichtigste Ereignis. Jürgen

Re: Wie Makros mit Schaltfläche verknüpfen.

Verfasst: Mo, 25.03.2013 19:07
von Birbey
Super danke. Hat geklappt.

Nun habe ich das Problem, dass er die Zellen nach und nach löscht.

Basic kenne ich mich nicht gut aus, aber bin mir sicher, dass es in eine Zug geht, dass alles gelöscht wird.

Eintrag in Basic:

Code: Alles auswählen

REM  *****  BASIC  *****



sub Main
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 = "$W$111"

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

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

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$W$110"

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
Wie muss ich es nun abändern? Ich habe ca. 50 Zellen. Ich habe nur einen Ausschnitt rauskopiert.