Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

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

Moderator: Moderatoren

popofz
***
Beiträge: 53
Registriert: Mi, 12.01.2011 16:53

Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
WIN 7 64bit, WIN XP, OO 4.1.1
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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())
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag von Karolus »

Hallo

@Jörg: Hab ich was verpasst, wo steht in der Frage das irgendwelche Daten von a nach b kopiert werden sollen??
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
popofz
***
Beiträge: 53
Registriert: Mi, 12.01.2011 16:53

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
OO_JRE-Meldung-1.jpg (16.28 KiB) 4554 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
WIN 7 64bit, WIN XP, OO 4.1.1
nikki
******
Beiträge: 787
Registriert: Do, 05.03.2015 10:42

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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.
Gruß

---------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)
popofz
***
Beiträge: 53
Registriert: Mi, 12.01.2011 16:53

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
WIN 7 64bit, WIN XP, OO 4.1.1
popofz
***
Beiträge: 53
Registriert: Mi, 12.01.2011 16:53

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag von popofz »

Hallo Nikki

Danke für Deine Pfeilschnelle Antwort. Läuft die 32 bit Version auf meinem WIN 7 64K?

Mfg. Peter
WIN 7 64bit, WIN XP, OO 4.1.1
nikki
******
Beiträge: 787
Registriert: Do, 05.03.2015 10:42

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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.
Gruß

---------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)
popofz
***
Beiträge: 53
Registriert: Mi, 12.01.2011 16:53

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
OO_IRE-Download.PNG (38.42 KiB) 4518 mal betrachtet
Mfg. Peter
WIN 7 64bit, WIN XP, OO 4.1.1
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag von F3K Total »

Die aktuelle 32-Bit Version ist eine der
Windows x86 - jre-8u45-windows-i586...
Gruß R
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
popofz
***
Beiträge: 53
Registriert: Mi, 12.01.2011 16:53

Re: Mit Makro in Spalte C letzte Eingabe suchen u. Cursor setzen.

Beitrag 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
WIN 7 64bit, WIN XP, OO 4.1.1
Antworten