Makro selektiert auslösen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makro selektiert auslösen

Re: Makro selektiert auslösen

von Stephan » Do, 21.04.2016 06:53

Schwebt mir vor, ist aber wohl ein Traumwunsch?
Nein, im Normalfall nicht. Ob im Detail genau das umzusetzen ist was Du haben willst hängt natürlich von den Anforderungen ab.

Im Anhang ein Beispiel das nur auf Tastendruck einige Werte kopiert und löscht und eine Zelle in den Edit-Modus versetzt.

Hinweis:
der Code im Beispiel ist nicht sehr elegant, erfüllt aber seinen Zweck:

Code: Alles auswählen

sub Main2
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")

dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())

i = 10
Do
	i = i + 1
	tmp = ThisComponent.Sheets(0).getCellByPosition(3, i).FormulaLocal
Loop While tmp <> ""
With ThisComponent.Sheets(0)
	.getCellByPosition(3, i).String = .getCellByPosition(0, 1).String
	.getCellByPosition(4, i).String = .getCellByPosition(1, 1).String
	.getCellByPosition(0, 1).FormulaLocal = ""
	.getCellByPosition(1, 1).FormulaLocal = ""
End With

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$2"

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

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


end sub

Gruß
Stephan
Dateianhänge
Beispiel.ods
(10.79 KiB) 109-mal heruntergeladen

Makro selektiert auslösen

von MaximilianWe » Mi, 20.04.2016 17:55

IUch befasse mich mich folgendem Gedanken:

Ich rufe eine TAbelle auf arbeite dort (neu eingeben, ergänen usw,) Während dieser SDession möchte ich dazwischen z.B. ein Makro aufrufen, das aus den aktuellen Eingaben Daten errechnet oder an anderer Stelle der >TAbelle einsetzt und ich kann anschließend manuell weiterarbeiten und im wewiteren Verlauf wieder ein Makro aufrufen und dann weiter arbeiten.
Also Tabelle offnen/ersdtellen> in der TAbelle manuell opeerieren > durch Tastendruck ein Makro aufrufen das in der TAbelle Operationen auslöst > kehrt automatisch in den Bearbeitungsmodus zurück > usf.
Schwebt mir vor, ist aber wohl ein Traumwunsch?

Max

Nach oben