Makro innerhalb eines Makros aufrufen

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 innerhalb eines Makros aufrufen

Re: Makro innerhalb eines Makros aufrufen

von WorstCases » Di, 24.06.2008 19:21

Unglaublich!

Du hast recht! Danke für den Hinweis

Eigenartig ist, dass ich ein Makro im Code aufrufen wollte "datum_und_zeit", was auch nicht ging. Habe das in "Datum_Zeit" abgeändert und jetzt geht's.

Kann das irgend jemand erklären?

Gruß.
WorstCases

Re: Makro innerhalb eines Makros aufrufen

von turtle47 » Di, 24.06.2008 18:01

Hallo WorstCase,

Ersetze mal

Code: Alles auswählen

KontrollfeldPlus1
durch

Code: Alles auswählen

Kontrollfeld_Plus1
dann funktioniert es. :D

Frag mich aber bitte nicht warum. :?

Gruss

Jürgen

Re: Makro innerhalb eines Makros aufrufen

von WorstCases » Di, 24.06.2008 17:38

@ WorstCase: Kannst Du das Dokument mit ein paar fiktiven Daten mal online stellen?
Da haben sich unere Beiträge überschnitten.

Ich habe mal ein Fiktivdokument mit identischem, aber abgespecktem Code erstellt.

Zwei Makros:
AutoAll01: Dieses Makro soll das andere Makro ausführen
KontrollFeldPlus1: soll durch das AutoAll01-Makro ausgeführt werden

Gruß.
WorstCases
Dateianhänge
MakroBeispiel.ods
(12.58 KiB) 143-mal heruntergeladen

Re: Makro innerhalb eines Makros aufrufen

von WorstCases » Di, 24.06.2008 16:52

Mein Code ist nach wie vor der aus meinem Ersten posting, jedoch mit "call" vor den Makronamen, die von extern geladen werden sollen...

Call und Makroname ohne Anführungszeichen und eine Leerzeichen zwischen "call" und "Makroname"

Es funktioniert nach wie vor nicht. Mein Makro wird ohne Fehlermeldungs abgearbeitet, überspringt aber die Makros, die ich von einer anderen Stelle ausführen will bzw. laden will.

Nur nochmal zur Sicherheit: Die Makros, die ich aufrufen möchte funktionieren alle problemlos, wenn ich sie direkt ausführe. Auch in meinen Makro (code aus Erstem Posting) wird der externe Makroname in grüner Schrift angezeigt. Das bedeutet doch, dass zumindest erkannt wird, dass das Makro vorhanden ist.

Wo liegt mein Fehler?

Gruß.
WorstCases

Re: Makro innerhalb eines Makros aufrufen

von turtle47 » Di, 24.06.2008 16:51

Hallo Zusammen,
ooodoc hat geschrieben:Innerhalb eines Makro werden andere Makros über "call Makroname" aufgerufen.
Das "Call" braucht man nicht. In OOoBasic reicht der alleinige Makroname zum Aufrufen vollkommen aus!

@ WorstCase: Kannst Du das Dokument mit ein paar fiktiven Daten mal online stellen?

Viele Grüsse.

Jürgen

Re: Makro innerhalb eines Makros aufrufen

von WorstCases » Di, 24.06.2008 16:41

Deine Zeile BasicLibraries*** ist durch das voranstellen des Hochkommas auskommentiert
Ja. Ich hätte bei meinem Beispielcode das Hochkomma vielleicht raus nehmen sollen...
Habe ich aber erst auskommentiert, nachden nichts ging!
Innerhalb eines Makro werden andere Makros über "call Makroname" aufgerufen.
Danke! Ich denke, dass ist die Info, die ich brauchte - werde das gleich mal versuchen!

Gruß.
WorstCases

Re: Makro innerhalb eines Makros aufrufen

von ooodoc » Di, 24.06.2008 16:21

Moin
Innerhalb eines Makro werden andere Makros über "call Makroname" aufgerufen.

Re: Makro innerhalb eines Makros aufrufen

von komma4 » Di, 24.06.2008 15:30

Hallo WorstCase,


Deine Zeile BasicLibraries*** ist durch das voranstellen des Hochkommas auskommentiert - wird also nicht ausgeführt (ebenso: die Anweisung 'KontrollfeldPlus1).

***Ich glaube aber auch, dass sie nicht nötig ist, da die Bibliotheken aller geöffneten Dokumente geladen sind.


Hilft das?

Makro innerhalb eines Makros aufrufen

von WorstCases » Di, 24.06.2008 10:39

Hallo Leute,

irgendwie hänge ich bei meiner Makro-Programmierung.
Vielleicht at jemand von euch einen Tipp?

Mein Problem:
Ich versuche mir gerade ein Makro zu erstellen, dass währen des Ablaufs auf andere Makros innerhalb des selben Dokumentes zugreifen soll. Das Problem: Der Code generiert keinen Fehler, aber die "verlinkten" Makros werden nicht abgearbeitet.
Ich habe auf einer Hilfeseite gelesen, dass dafür folgende Codezeile eingefügt werden soll:

Code: Alles auswählen

'BasicLibraries.LoadLibrary("Standard")
Die Makros, die ich aufrufen möchte sind in dem Ordner "Standard", das ausführende Makro ist innerhalb eines anderen Ordners, aber auch im selben Dokument.
Gebe ich in meinem Makro nur den Namen des zu "verlinkenden" Makros an, wird anscheinend erkannt, dass es vorhanden ist. Es macht anscheinend keinen Unterschied, ob ich den oben genannten Code mit ausführen lasse oder nicht.

Hier mal mein Code:
[co[co

Code: Alles auswählen

to_01

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

'erhöht den Wert in dem "Kontrollfeld" Plus1
'BasicLibraries.LoadLibrary("Standard")
'KontrollfeldPlus1


'wählt das Feld für Datums-Eingabe aus
  dim args1(0) as new com.sun.star.beans.PropertyValue
  args1(0).Name = "ToPoint"
  'XXX anpassung nächste Zeile
  args1(0).Value = "Datum01"
  dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())


'hier wird das Zeitstempel-Makro Datum_und_Zeit ausgeführt und der Wert in das oben ausgewählte Feld gesetzt
Datum_und_Zeit


'Hier wird das Makro aufgerufen, dass die Spalten "Win" und "Zeit" nach Zeit absteigend sortiert
Zahl_und_Zeit_nach_Zeit_absteigend_sortieren


End Sub[/code[/code
Nur zur Anmerkung: Die zu "verlinkenden" Makros funktionieren fehlerfrei, sofern ich sie einzeln ausführe.

@Admin: Habe diese Frage fälschlicherweise schon im Calc-Forum gestellt. Wenn möglich dort bitte löschen - hier passt meine Frage anscheinend besser.

Gruß.
WorstCases

Nach oben