Seite 1 von 1

Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: Sa, 25.02.2012 20:28
von apfelmartin@yahoo.de
Ich möchte, dass ein Makro, was ich aufzeichne, nur in einer Tabelle von einem Dokument wirkt, so dass ich in einer anderen Tabelle des gleichen Dokumentes mit dem gleichen Shortcut ein anderes Makro ausführen kann. Geht das?

Re: Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: Sa, 25.02.2012 22:49
von Stephan
Ich möchte, dass ein Makro, was ich aufzeichne, nur in einer Tabelle von einem Dokument wirkt, so dass ich in einer anderen Tabelle des gleichen Dokumentes mit dem gleichen Shortcut ein anderes Makro ausführen kann. Geht das?
Ich verstehe leider die komplette Anfrage nicht, denn weder weiß ich was du mit 'Makro einer Tabelle Zuordnen' meinst noch wie einundderselbe Shortcut verschiedene makros ausführen könnte (ausgeführt würde doch wohl immer dasselbe Makro das nur ggf. zu anderen Makros verzweigen könnte) noch ws ein "Shortcut" in diesem ZUsammenhang überhaupt konkret sein soll.

Meiner Meinung nach triffst Du Annahmen und Mutmaßungen ohne zu wissen wie das alles bei OOo funktioniert und deshalb ist nicht zu verrstehen was du willst oder meinst.

Du solltest bitte einfach beschreiben was Du erreichen willst und nicht auf Begriffe (z.B. "Shortcut") oder Handlungsweisen (z.B. 'einer Tabelle "zuordnen"') hinzuweisen ohne zu wissen ob diese hier überhaupt zutreffen.
Sorry, ich versuche mich hier nicht in Begriffsklauberei, sondern es ist nur einfach nicht klar zu verstehen was Du meinst weil Du mit nicht zutreffenden Begriffen jonglierst.


Gruß
Stephan

Re: Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: So, 26.02.2012 13:04
von apfelmartin@yahoo.de
Als Selbständiger schreibe ich zwei Arten von Rechnungen: Obstrechnungen und Holzrechnungen. Diese beiden sehr unterschiedlichen Arten hab ich in langen Tabellen eines Dokumentes untergebracht, wobei ich die jeweils aktuell nötige durch Kopie einer älteren Rechnung erzeuge. Die aktuelle ist jeweils die oberste. (Das ist ein System, was sich seit einem Jahrzehnt bei mir aufs beste bewährt hat.) Jetzt braucht aber jede Rechnung eine laufende Rechnungsnummer. Die hab ich als Liste in einer dritten Tabelle. Nun hole ich per aufgezeichnetem Makro mit dem Shortcut "cmd+5" die aktuellste Nummer aus der Liste und füge sie in die aktuelle Rechnung ein. Derzeit mache ich das mit zwei Makros. Eines für die Holzrechnungen "cmd+5", eines für die Obstrechnungen "cmd+6". Ich frag mich nun, ob ich diese Aktion nicht zusammenfassen kann. Entweder mit einem Makro, wo ich Wenn-Dann programmieren müsste (ich fürchte mich aber vor dem Programmieraufwand), oder eben, indem ein aufgezeichnetes Makro nur in jeweils einer Tabelle wirkt.

Habe ich mich jetzt verständlich ausgedrückt?

Re: Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: So, 26.02.2012 13:25
von Stephan
Habe ich mich jetzt verständlich ausgedrückt?
ja hast Du.

Gehe in OOo im Menü auf Extras-Anpassen, wechsele zum Register "Tastatur" und ordne zwei verschiedene Makros den zwei verschiedenen Tatataturkombinationen zu.
Die Makros sollten dazu zweckmäßig im Bereich "Meine Makros" und nicht in einem Dokument gespeichert sein.


Zu Details des Vorgehens frage nötigenfalls bitte nochmal nach, denn ich weiß nicht wie DEin Wissensstand ist bzw. wie Du mit den Dialog Extras-Anpassen zurechtkommst.



Gruß
Stephan

Re: Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: So, 26.02.2012 23:26
von apfelmartin@yahoo.de
ordne zwei verschiedene Makros den zwei verschiedenen Tatataturkombinationen zu
Soweit war ich bereits. Ich würde nun gerne mit E I N E R Tastenkombination die Makros starten: Wenn ich in der Tabelle Obstrechnungen bin, sollte die Tastenkombination die gleiche sein, wie wenn ich in der Tabelle Holzrechnungen bin. Ausserdem passiert mir zuviel Blödsinn, wenn ich in anderen Tabellen des Dokumentes bin und versehentlich diese Tastenkombination drücke, deshalb hätte ich es gerne, dass das jeweilige Makro nur in der Tabelle wirkt, für die es aufgezeichnet wurde.

Geht das?
Oder geht das nicht?

Martin

Re: Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: So, 26.02.2012 23:41
von Karolus
Hallo
Starte ein Makro das den Namen des aktuellen Tabellenblatts ausliest und entsprechend verzweigt.

Code: Alles auswählen

tname = thiscomponent.currentselection.Spreadsheet.Name
if tname = "bla" then
...
Karo

Re: Wie ordne ich Makros einer bestimmten Tabelle zu?

Verfasst: Mo, 27.02.2012 00:19
von apfelmartin@yahoo.de
Hier ist das Makro. An welcher Stelle füge ich nun die Zeile
tname = thiscomponent.currentselection.Spreadsheet.Name
if tname = "bla" then


ein? Und braucht es dann nicht noch irgend eine End-Markierung?




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

Sub Main

End Sub


sub Rechnungsnummer
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextTable", "", 0, Array())

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

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false

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

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

rem ----------------------------------------------------------------------
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "SVT"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = false
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(1) as new com.sun.star.beans.PropertyValue
args6(0).Name = "By"
args6(0).Value = 1
args6(1).Name = "Sel"
args6(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args6())

rem ----------------------------------------------------------------------
dim args7(1) as new com.sun.star.beans.PropertyValue
args7(0).Name = "By"
args7(0).Value = 1
args7(1).Name = "Sel"
args7(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args7())


end sub