Makro zum Kopieren

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 zum Kopieren

von alter » Do, 08.12.2005 18:52

Noch ein Nachtrag zu meiner letzten Nachricht:

Wenn ich das Makro direkt aus dem Basic-Programm heraus ausführe funktioniert es mit dem Kopieren.
Aber so bald ich das Makro per Klick auf eine Schaltfläche (Ereignisse / Beim Auslösen) ausführe, funktioniert das mit dem Kopieren nicht! Dies ist sowohl auf meinem PC als auch auf meinem Laptop der Fall.

Gruß alex

von alter » Do, 08.12.2005 16:55

Hallo Thomas,

Ich verwende WinXP (SP 2) und OOO 2.0.

Nach dem Ausführen des Makros sind auch die Icons fürs kopieren, ausschneiden und einfügen nicht mehr aktivierbar (grau). Das funktioniert dann nur noch übers Komtextmenü.
Ich hab auch schon in den Optionen von OOO nachgesehen, ob was verstellt ist, aber nichts gefunden. Wenn es aber bei Dir funktioniert, muß hier wohl ein Fehler auf meinem Rechner vorliegen.
Vielleicht sollte ich OOO einfach mal neu installieren, oder fällt Dir oder jemand anderes noch was dazu ein?

Bin für jeden Tip dankbar!

Gruß alex

von Toxitom » Do, 08.12.2005 08:35

Hey Alex,
Beim kopieren wird offensichtlich nicht in die Zwischenablage kopiert.
Hmm, kann ich nicht bestätigen. Bei mir (Win XP, OOo 2.0.1) wird in die Zwischenablage kopiert - und ich kann auch in andere Dokumente einfügen.

Welches BS verwendest du?

Gruss
Thomas

von alter » Mi, 07.12.2005 21:56

Hallo Toxitom,

Erstmal vielen Dank für Deine prompte Hilfe. Mir war zwar klar, daß ich nur die fixe Adresse ersetzen muß, wußte aber nicht wie. Dieses Problem ist Dank Deiner freundlichen Hilfe nun gemeistert.


Ein Problem besteht aber weiterhin:

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

Beim kopieren wird offensichtlich nicht in die Zwischenablage kopiert. D. h. wenn ich in eine andere Tabelle gehe und einfüge, wird das davor kopierte eingefügt. Der o. g. Befehl überschreibt die Zwischenablage also nicht!

Hat mir dazu noch jemand einen Tip?

Gruß alex

von Toxitom » Mi, 07.12.2005 08:55

Hey Alex,
Es soll in der Adressenliste in der Zeile, in welcher sich der Cursor befindet, die Zellen von A bis Q ausgewählt und kopiert werden, um sie in einer anderen Datei einzufügen.
In die Zwischenablage? Ist es da icht schneller, die Zellen per Maus zu markieren, "Strg" + "C" zu drücken und fertig - als erst umständlich ein Makro zu starten?

Im Übrigen ist es nicht so schwierig: der Makrorekorder hat dir doch den Code aufgezeichnet. Jetzt musst du nur noch die fixe Adresse durch eine selbst erstellte ersetzen - die sich aus der aktuellen Position des Cursors ergibt:

Code: Alles auswählen

sub Main
dim sBereich as string
oDoc = thisComponent
oSel = thiscomponent.getCurrentSelection()
if not oSel.supportsService("com.sun.star.sheet.SheetCell") then
  msgbox "bitte nur eine Zelle markieren!"
  exit sub
end if
oZellAdr = oSel.CellAddress
sBereich = "$A$" & oZellAdr.row +1 & ":$Q$" & oZellAdr.row +1          
rem  --- ab hier Dispatcher Code aus dem Makrorekorder
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 = sBereich

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
end sub
Viele Grüße
Thomas

Makro zum Kopieren

von alter » Di, 06.12.2005 19:24

Hallo,
ich brüte gerade an meiner Technikerarbeit mit OOO 2.0 Calc. Hierbei erstelle ich Kalkulationslisten, Adresslisten usw.. Soweit klappt auch alles ganz primajavascript:emoticon(':D')
Very Happy, aber ich benötige noch ein paar einfache (?) Makros. Da ich aber unter großem Zeitdruck stehe kann ich mich nicht auch noch in die Makroprogrammierung einarbeiten und unsere Lehrer sind auch keine Hilfe.
Das Makro soll so funktionieren:
Es soll in der Adressenliste in der Zeile, in welcher sich der Cursor befindet, die Zellen von A bis Q ausgewählt und kopiert werden, um sie in einer anderen Datei einzufügen.
Wenn ich nun ein Makro aufzeichne wird immer dasselbe (was ich beim Aufzeichnen des Makros ausgewählt habe - Stichwort: absoluter Bezug) ausgewählt und das mit dem Kopieren funktioniert auch nicht.
Meine anderen Makros funktionieren einwandfrei, nur hier bin ich hoffnungslos überfordert. Könnte bitte jemand so nett sein und mir einen Tip geben?

Gruß Alex :D :D

Nach oben