Hallo,
ich habe eine Tabelle, in der ich Ergebnisse eintrage (Kickerspiele). Beim Drücken eines Buttons, wird die zugehörige Tabelle erstellt. Funktiert alles. Ich möchte jetzt aber, dass ich nicht mehr den Button drücken muss, sondern beim Ändern des Ergebnisses automatisch das Macro zur Erstellung der Tabelle aufgerufen wird. Habe es über die Definition einer Gültigkeit versucht. Dabei habe ich eine Bedingung erstellt, die nie erfüllt wird (Zulassen: Wert > 100) und dann in der Fehlerbehandlung das Macro aufgerufen.) Irgendwie funktiniert das aber nur bei jeder zweiten Änderung. Außerdem ist natürlich nicht wirklich elegant. Wer kenn einen besseren Wert.
Macro starten bei Änderung in einem Feld
Moderator: Moderatoren
Macro starten bei Änderung in einem Feld
\\// Live long and prosper
MrSpock
MrSpock
Hey Mr. Spock,
Soll wohl "Weg" heissen, oder? Na ja, wenn du mit dem Button nicht einverstanden bist - einen Listener schreiben. Den kannst du an verschiedene Ereignisse binden - zum Beispiel an das Verlassen der Zelle.
Ist aber alles nicht so ganz "ohne" und setzt Erfahrung im Umgang mit der API vorraus.
Such einfach mal im Forum - ich glaube, es gab mal einen Thread, der einen Listener für eine Calczelle beschrieben hat.
Viele Grüße
Thomas
Code: Alles auswählen
Wer kenn einen besseren Wert.
Ist aber alles nicht so ganz "ohne" und setzt Erfahrung im Umgang mit der API vorraus.
Such einfach mal im Forum - ich glaube, es gab mal einen Thread, der einen Listener für eine Calczelle beschrieben hat.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
ja, sollte natürlich "Weg" heißen.
Das mit der Gültigkeitsprüfung scheint jetzt doch zu funktionieren.
Ich habe dabei nur noch ein Problem: Nach Ausführung des Macros steht der Cursor (also die aktuelle Zelle) an der falschen Stelle.
Ich möchte das Macro jetzt am Anfang und am Ende leicht modifizieren, so dass sich das Programm am Anfang die aktuelle Cursor Position merkt und am Ende dort wieder den Cursor hinsetzt. Ist bestimmt einfach, aber ich bekomme es nicht hin.
ja, sollte natürlich "Weg" heißen.
Das mit der Gültigkeitsprüfung scheint jetzt doch zu funktionieren.
Ich habe dabei nur noch ein Problem: Nach Ausführung des Macros steht der Cursor (also die aktuelle Zelle) an der falschen Stelle.
Ich möchte das Macro jetzt am Anfang und am Ende leicht modifizieren, so dass sich das Programm am Anfang die aktuelle Cursor Position merkt und am Ende dort wieder den Cursor hinsetzt. Ist bestimmt einfach, aber ich bekomme es nicht hin.

\\// Live long and prosper
MrSpock
MrSpock
Hey Mr.Spock,

Da können wir bestimmt leicht helfen.
Gruss
Thomas
Na, dann poste den Code doch malst bestimmt einfach, aber ich bekomme es nicht hin.

Da können wir bestimmt leicht helfen.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
zum Merken habe ich folgende Zeilen benutzt:
und zum Setzen des Cursors:
Funktioniert jetzt auch, aber es ist unschön,dass ich die Zelle über die Reihen- und Spaltennummer auslese und dann in eine Buchstaben/Zahlenkombination setze.
zum Merken habe ich folgende Zeilen benutzt:
Code: Alles auswählen
Dim Doc As Object
Dim Sheet As Object
Dim oRow, oCol as Integer
Doc = ThisComponent
Sheet = Doc. Sheets (0)
oRow=Doc.getCurrentSelection().getCellAddress().Row
oCol=Doc.getCurrentSelection().getCellAddress().Column
Code: Alles auswählen
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = Chr(oCol+65) & oRow+1
' msgbox args3(0).Value
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
\\// Live long and prosper
MrSpock
MrSpock