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

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Birbey
Beiträge: 5
Registriert: Do, 21.03.2013 00:53

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

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

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

Beitrag von Karolus »

Hallo
Im Bearbeitungmodus der Schaltfläche →Rechtsklick→Kontrollfeld→Ereignisse→Maustaste gedrückt....

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

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

Beitrag von juetho »

Besser als "Maustaste gedrückt" ist "Aktion ausführen"; das ist für viele derartige Kontrollfelder das wichtigste Ereignis. Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Birbey
Beiträge: 5
Registriert: Do, 21.03.2013 00:53

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

Beitrag 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.
Antworten