Seite 1 von 1
Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 10:28
von popofz
Hallo Forum
Ich habe eine EXCEL 2003 Tabelle die ich auf OO abändern muss da der künftige Anwender nur OO hat. 2 Makros konnte ich mit dem Makrorekorder neu erstellen. Ein anderes Makro kann aber nicht auf diese Weise erstellt werden und ich habe keine Ahnung von Basic und bin somit voll auf Euch angewiesen.
Da die Tabelle etwas lang ist, hatte ich ein VBA Makro das in Spalte C die letzte Eingabe suchte und dort den Cursor für neue Eingaben hin setzte.
Kann mir da jemand das Makro für OOc erstellen?
MfG. Peter
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 10:49
von Karolus
Hallo
Zeichne folgendes auf:
Klick in C1 --
strg+↓ --
↓
Mit manueller Kürzung aufs wesentliche:
Code: Alles auswählen
sub Main
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args2())
end sub
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 10:55
von Jörg
So, könnte es gehen.
Läßt sich m.E. aber auch mit dem Recorder machen.
Gruß Jörg
Code: Alles auswählen
odoc = ThisComponent
osheet = odoc.sheets(2) 'Quellbereich
orange = osheet.getCellRangeByName("F37:U37") ' Daten, die eingefügt werden
orangeAddress = orange.getrangeaddress
odata()= orange.getdataarray
oZielSheet = oDoc.sheets(3) 'Zielbereich
c = oZielSheet.getCellRangeByName("C1:C250").queryEmptyCells 'Spalte C Bereich entsprechend anpassen
oZielCell = c(0).getcellbyposition(0,0)
oZielCellAddress = oZielCell.getcelladdress
X1=oZielCellAddress.column
Y1=oZielCellAddress.row
X2=oZielCellAddress.column+(orangeAddress.EndColumn-orangeAddress.StartColumn)
Y2=oZielCellAddress.Row+(orangeAddress.EndRow-orangeAddress.StartRow)
oZielrange=oZielSheet.getCellRangeByPosition(X1,Y1,X2,Y2)
oZielrange.setdataarray(odata())
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 11:04
von Karolus
Hallo
@Jörg: Hab ich was verpasst, wo steht in der Frage das irgendwelche Daten von a nach b kopiert werden sollen??
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 18:25
von popofz
Hallo Karolus
Als erstes ein Danke für Deine schnelle Hilfe. Dein Makro macht genau das was ich wollte.
Nun habe ich aber noch ein anderes Problem und hoffe dass Du mir da auch weiter helfen kannst.
Wenn ich über EXTRA Makro Makro ausführen aufrufe kommt folgende Meldung.

- OO_JRE-Meldung-1.jpg (16.28 KiB) 4556 mal betrachtet
Nach einem Klick auf OK öffnet sich nach kurzer Zeit ein neues Fenster aus dem ich dann ein Makro auswählen u. starten kann.
Kannst Du mir sagen was und wie ich das Installiere?
Mfg. Peter
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 18:36
von nikki
http://www.oracle.com/technetwork/java/ ... 33155.html Achte aber darauf, dass Du die 32-bit-Version benötigst und diese unter
Extras/Einstellungen.../OpenOffice/Java auch aktiviert werden wird.
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 18:46
von popofz
Hallo Jörg
Auch Dir ein Danke für Dein Makro. Da das Makro von Karolus das macht was ich wollte habe ich sein Makro genommen.
Ist Dein Makro komplett, oder wäre das eine Ergänzug zu Karolus Makro denn ich vermisse am Anfang das sub.
Mfg. Peter
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 18:50
von popofz
Hallo Nikki
Danke für Deine Pfeilschnelle Antwort. Läuft die 32 bit Version auf meinem WIN 7 64K?
Mfg. Peter
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 20:03
von nikki
popofz hat geschrieben:Läuft die 32 bit Version auf meinem WIN 7 64K?
Du hast aber eine mächtige Maschine. Ich habe
nur 64-Bit.
Unter Win.7 64-Bit laufen alle 32-Bit-Programme jedoch unter Win.7 32-Bit keine 64-Bit-Programme.
OO für Windows ist ein 32-Bit-Programm, deshalb benötigst Du JRE in der 32-Bit-Version.
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 21:05
von popofz
Hallo Nikki
Da hab ich mich wohl vertippt. Ich habe nun mal schnell die Internetadr. aufgerufen die Du angegeben hast aber da finde ich keine 32Bit Version. Siehe nachfolgendes Bild. Erfolgt die Auswahl erst bei der Installation?

- OO_IRE-Download.PNG (38.42 KiB) 4520 mal betrachtet
Mfg. Peter
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Mi, 22.04.2015 22:10
von F3K Total
Die aktuelle 32-Bit Version ist eine der
Windows x86 - jre-8u45-windows-i586...
Gruß R
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Do, 23.04.2015 07:09
von Karolus
Das installieren der Java-JRE kannst du dir schenken, die wird nicht wirklich gebraucht um Basic auszuführen.
Gehe stattdessen über →Extras→Makros→Makros verwalten→Basic....→→Ausführen
Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.
Verfasst: Do, 23.04.2015 09:22
von popofz
Hallo Karolus
Danke für den Tipp. Zum Testen der Makros reicht mir diese vorgehensweise. Später versuche ich die Makros dann auf Buttons zu legen.
Mfg. Peter