Seite 1 von 1

Per Makro Zahlen aus einer Spalte in eine andere kopieren

Verfasst: Di 26. Aug 2014, 22:11
von berndz2001
Guten Abend zusammen,
ich bin kein Makroprogrammierer und habe mir mit der Aufzeichnungsfunktion in einer Tabelle Makros aufgezeichnet, die Daten kopieren oder in eine andere Sortierreihenfolge bringen.
Ein Makro soll Daten aus einer Spalte kopieren und in eine andere einfügen. Dieses hat in einer frühen 4er-Version gut gearbeitet, verweigert aber jetzt in der Version 4.2.6.2 seine Arbeit.
Das Makro sieht folgendermaßen aus:

Code: Alles auswählen

sub Uebertrag_Wahl1_Setzung
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 = "$F$10:$F$400"

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

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

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$I$10"

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

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


end sub
Nun habe ich versucht, das Makro in der neuen Version erneut aufzuzeichnen und während der Aufzeichnung werden die Daten auch in der Zielspalte eingefügt. Rufe ich das Makro anschließend per "Extras-Makros-Makro ausführen" oder über eine Schaltfläche auf, passiert nichts mehr. Das neu aufgezeichnete Makro hat den gleichen Aufbau wie mein erster Versuch.
Ich würde mich freuen, wenn mir hier jemand helfen könnte.

Schon jetzt vielen Dank.
Bernd

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Di 26. Aug 2014, 22:23
von F3K Total
Moin,
das Makro läuft bei mir unter LO 4.2.6 und Windows 7 ohne Probleme.
Gruß R

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Di 26. Aug 2014, 22:52
von berndz2001
Hallo R,
besten Dank für deine schnelle Antwort.

Ich stelle gerade fest, dass der gepostete Code nicht vollständig war. Hier noch einmal der komplette Schnipsel:

Code: Alles auswählen

sub Uebertrag_Wahl1_Setzung
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 = "$F$10:$F$400"

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

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

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$I$10"

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

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


rem ----------------------------------------------------------------------
args3(0).Name = "ToPoint"
args3(0).Value = "$C$10"

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


end sub
Ich habe jetzt den Teil ganz unten mal entfernt

Code: Alles auswählen

rem ----------------------------------------------------------------------
args3(0).Name = "ToPoint"
args3(0).Value = "$C$10"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
und das Makro ausgeführt und siehe da, es geht wieder. :?:
Woran liegt's?
Danke für deinen Anstoß.
Gruß.
Bernd

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Di 26. Aug 2014, 23:00
von F3K Total
Auch der vollständige Code läuft problemlos, nur das der Fokus am Ende auf Zelle C10 gesetzt wird.
Gruß R

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Di 26. Aug 2014, 23:07
von berndz2001
Danke für die Rückmeldung.
Ich habe noch etwas mit dem Schalter "gespielt". Wenn ich bei dem Kontrollfeld das Ereignis von "Aktion ausführen" auf "Maustaste gedrückt" ändere, läuft das Makro wieder wie früher. :?: Vielleicht haben die Programmierer an den Ereigniseinstellungen etwas geändert.
Hauptsache es funktioniert wieder. :-)
Gute Nacht.
Bernd

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Mi 27. Aug 2014, 06:02
von F3K Total
Na, da hast du einen Bug gefunden. Aktion ausführen funktioniert tatsächlich nicht.
Gruß R

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Mi 27. Aug 2014, 08:24
von berndz2001
Sollte ich den melden? Habe so etwas noch nie gemacht.
Wie geht das?

Grüße.
Bernd

Re: Per Makro Zahlen aus einer Spalte in eine andere kopiere

Verfasst: Mi 27. Aug 2014, 10:21
von karolus
F3K Total hat geschrieben:Na, da hast du einen Bug gefunden. Aktion ausführen funktioniert tatsächlich nicht.
Gruß R
Das Ereignis "Aktion ausführen" sollte meinem Erachtens nur benutzt werden wenn unter 'Allgemein' eine "Aktion" <>'keine' benutzt wird ??