[Opgelost] macro gezocht

Valentin
Berichten: 9
Lid geworden op: vr jan 29, 2010 6:29 pm
Locatie: Zonhoven Limburg Belgie

[Opgelost] macro gezocht

Bericht door Valentin »

Wie helpt mij aan een macro die naar de eerste lege cel gaat in kolom C van een actief rekenblad?
Laatst gewijzigd door Valentin op zo okt 17, 2010 5:34 pm, 2 keer totaal gewijzigd.
OpenOffice 3.2 Linux Mint + Win 7
DvanAken
Berichten: 13
Lid geworden op: wo mei 27, 2009 10:02 pm

Re: macro gezocht

Bericht door DvanAken »

Ik heb even geprobeerd of ik kon bereiken wat je wilt door macro's op te nemen. Dit geeft in ieder geval resultaat, al vind ik de code niet helemaal overzichtelijk.
Het opnemen heb ik gedaan via Extra - Macro's - Macro opnemen. In eerste instantie de actieve cel naar C1 gebracht, daarna in een aparte macro naar de eerste lege cel. Hierbij maakte ik gebruik van het feit dat je met Ctrl + [Pijl naar beneden] naar de laatste waarde van een rijtje springt. Nog één cel naar beneden zit dus een lege cel en die zocht je blijkbaar.
De macro kun je zoals gebruikelijk starten via het menu, of door een besturingselement (knop) op je spreadsheet te zetten.

De code wordt:

Code: Selecteer alles

REM  *****  BASIC  *****


sub C_Leeg
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 ga naar C1 ----------
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())

rem srping naar laatste cel in kolom C ---------------------------------------
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())

rem ga nog 1 cel verder omlaag -------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false

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

end sub
Groeten, Dirk
Dirk
OpenOffice.org 3.2.1 / Ubuntu 10.10 (Maverick)
Valentin
Berichten: 9
Lid geworden op: vr jan 29, 2010 6:29 pm
Locatie: Zonhoven Limburg Belgie

Opgelost Re: macro gezocht

Bericht door Valentin »

Dank voor de reactie en oplossing
OpenOffice 3.2 Linux Mint + Win 7
LeoDeWeerdt
Berichten: 41
Lid geworden op: wo jan 06, 2010 4:26 pm

Re: Opgelost Re: macro gezocht

Bericht door LeoDeWeerdt »

Valentin schreef:Dank voor de reactie en oplossing
Een alternatieve oplossing misschien.

Sheet(6) is het 7de blad (Blad 1 = Nummer 0)

Code: Selecteer alles

Sub Test
Dim oSheet as Object, oCell as Object    
    oSheet = ThisComponent.Sheets(6)
    oCell=  oSheet.getCellRangeByName("A1")
    ThisComponent.getCurrentController().select(oCell)
End Sub
Leo
Het is voor mij een grote troost dat er geen domme vragen zijn.
Plaats reactie