Makro führt die Kopier Funktion nicht aus

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

Moderator: Moderatoren

aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Makro führt die Kopier Funktion nicht aus

Beitrag von aqua »

Hallo
ich hab in Libre Office ein kleines Problem mit dem folgenden Makro. Das Makro soll nur ein paar Werte kopieren. Der entsprechende Bereich wird zwar markiert, aber es wird nichts kopiert. In Open Office funktioniert das Makro...

Code: Alles auswählen

sub Werte_kopieren
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 = "$A$28"

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$28:$H$29"

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
end sub
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von Toxitom »

Sorry, das Makro funktioniert sicher auch unter OOo nicht;))

Kleine Analyse:
- Du gehst zur Zelle A28.
- Du gehst zum Zellbereich A28:H28
- Du kopierst den Zellbereich A28:H28

Mehr tut das Makro nicht ;))

Und genau das tut es auch in LibreOffice.

(Wenn Du nach dem Ausführen des Makros den Cursor in eine andere Zelle setzt und dann Bearbeiten • Einfügen wählst (Strg+V) wird der Inhalt der Zellbereiche A28:H28 eingefügt;))

VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von aqua »

Toxitom hat geschrieben:
Kleine Analyse:
- Du gehst zur Zelle A28.
- Du gehst zum Zellbereich A28:H28
- Du kopierst den Zellbereich A28:H28

Mehr tut das Makro nicht ;))
mehr soll es auch nicht machen ;) wobei der Code mit A28 überflüssig ist und gelöscht werden kann.
(Wenn Du nach dem Ausführen des Makros den Cursor in eine andere Zelle setzt und dann Bearbeiten • Einfügen wählst (Strg+V) wird der Inhalt der Zellbereiche A28:H28 eingefügt;))
Genau das passiert nicht..es wird dann das hineinkopiert was ich irgendwann mal kopiert habe, aber nicht was im Zellbereich A28:H28 steht
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von Toxitom »

Hmm, bei mir tut es genau das, was ich beschrieben habe ... und funktioniert auch mit "Strg + V"

Windows 10, Lo 5.1.1.3, 32 bit Version.

Ich kann auch zwischenzeitlich etwas anders kopieren oder so... führe ich das Makro aus, passiert genau das, was ich obnen beschrieben habe:)

VG Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von aqua »

ok danke, dann muss ich mal schauen woran es liegt.

Windows 10, Lo 5.1.5.2
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von Stephan »

benenne testweise Dein LO-Benutzerverzeichnis um, das könnte helfen:
viewtopic.php?f=27&t=54231#p206070

Gruß
Stephan
aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von aqua »

Daran lag es leider auch nicht.

Wenn ich das Makro über "Extra-Makros-Makro ausführen" starte dann funktioniert es. Wenn ich es aber über die Schaltfäche machen dann nicht :?
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von Toxitom »

Hey aqua,
Wenn ich es aber über die Schaltfäche machen dann nicht :?
Solch wichtige Informationen hättest Du natürlich vorher schon mal geben können :?

Der dispatcher-Code ist eher ein "Hilfs-Makro Code" und teilweise sehr empfindlich. Der dort benutzte "copy" Befehl kopiert das gerade aktive Element - und das ist dann allerdings in Deinem Fall nicht der markierte Zellbereich - sondern die Schaltfläche (da haste ja gerade draufgeklickt;).
Da die Schaltfläche Teil eines Formulars und dieses wiederum Teil der Drawpage ist, Du Dich aber gerade nicht im Designmodus befindest, kann die Schaltfläche nicht kopiert werden - der Befehl läuft "ins Leere".

Also... hier brauchst Du wohl eher ein korrektes Makro - oder einen anderen Weg (z.B. das Makro auf einen Tastenkombination legen - dann sollte es auch noch funktionieren).

VG Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von Stephan »

Wenn ich das Makro über "Extra-Makros-Makro ausführen" starte dann funktioniert es. Wenn ich es aber über die Schaltfäche machen dann nicht :?
Augenscheinlich ein Fehler in LibreOffice.
Ich habe hier nur Version 5.0.4 am Start und kann das Problem nicht nachvollziehen, aber stelle testweise die Eigenschaft der Schaltfläche "Fokussieren bei Klick" auf Nein.

Alternativ zeichne mit der Zeichenfunktion ein Rechteck und weise dem das Makro zu, Kontextmenü "Makro zuweisen", vielleicht geht das bei deiner LibreOffice-Version.


Gruß
Stephan
aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von aqua »

Stephan hat geschrieben: stelle testweise die Eigenschaft der Schaltfläche "Fokussieren bei Klick" auf Nein.
so funktioniert es. Danke :D
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro führt die Kopier Funktion nicht aus

Beitrag von Stephan »

aqua hat geschrieben:
Stephan hat geschrieben: stelle testweise die Eigenschaft der Schaltfläche "Fokussieren bei Klick" auf Nein.
so funktioniert es. Danke :D
Danke für die Rückmeldung, dann hatte Thomas ja mit seiner Vermutung Recht.


Gruß
Stephan
Antworten