ActiveSheet und ActiveCell

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: ActiveSheet und ActiveCell

Re: ActiveSheet und ActiveCell

von F3K Total » Sa, 28.02.2015 08:25

Hier?
Gruß R

Re: ActiveSheet und ActiveCell

von wolltiger » Sa, 28.02.2015 01:42

Hey Leute, Super, Danke!
Wie Ihre seht, bin ich noch ziemlich neu bei OO-Basic.
Jetzt habe ich meine Aufgabe: Recherche bei dannhöfer.
Und wo finde ich Info zu MRI ?? :D

Re: ActiveSheet und ActiveCell

von Karolus » Fr, 27.02.2015 11:27

clag hat geschrieben:Hi Karolus,
Karolus hat geschrieben:Das geht auch ohne den ganzen Dispatcherquark

das wäre ja direkt ideal, wenn OO gleich den richtigen[1] Basic-Code aufzeichnen würde
(so wie es Excel macht), dann würde bestimmt so manche Frage erst gar nicht aufkommen.

Aber das ist in OO aber leider nicht der Fall, von daher kommt jemand der in OO ein Makro aufgezeichnet hat,
eben nicht drumherum und auch nicht ohne diesen "Dispatcherquark" aus.
dich zwingt niemand dazu mit der Code-aufzeichnung zu arbeiten ( die im übrigen ziemlich genau das abbildet was $Benutzer zusammenklickt)

Mit Grundkenntnissen in Basic, etwas Recherche bei Dannenhöfer und ein wenig "Selberdenken" sollte das gelingen.
Mit der Benutzung von MRI bekommst du übrigens den "richtigen"[1] Code[2] gratis dazu aufgezeichnet.


[1] definiere zunächst mal was "richtig" ist!

[2] wahlweise in Basic, Python, Java, ...

Re: ActiveSheet und ActiveCell

von clag » Fr, 27.02.2015 10:53

Hi Karolus,
Karolus hat geschrieben:Das geht auch ohne den ganzen Dispatcherquark

das wäre ja direkt ideal, wenn OO gleich den richtigen Basic-Code aufzeichnen würde
(so wie es Excel macht), dann würde bestimmt so manche Frage erst gar nicht aufkommen.

Aber das ist in OO aber leider nicht der Fall, von daher kommt jemand der in OO ein Makro aufgezeichnet hat,
eben nicht drumherum und auch nicht ohne diesen "Dispatcherquark" aus.

Re: ActiveSheet und ActiveCell

von Karolus » Fr, 27.02.2015 08:02

Das geht auch ohne den ganzen Dispatcherquark

Code: Alles auswählen

doc = ThisComponent
master = doc.Sheets.getByName("Master")
curs = master.createCursor()
curs.gotoEndOfUsedArea(False)
adress = curs.RangeAddress
lastRow = adress.StartRow
lastColumn = adress.StartColumn

Re: ActiveSheet und ActiveCell

von clag » Fr, 27.02.2015 06:57

Moin wolltiger,

ein paar Zeilen zusätzlich (die eingerückten) vor und nach dem aufgezeichnetenm Code zum auffinden der letzten verwendeten Zelle,
sollten deinen Wunsch erfüllen

Code: Alles auswählen

sub MasterLastCell
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")


	StartSheet = thisComponent.getCurrentSelection.CellAddress.sheet
	thiscomponent.lockcontrollers
	thisComponent.CurrentController.setActiveSheet(thisComponent.Sheets().getByName("Master")) 


rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false

dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())
rem ----------------------------------------------------------------------


	mLCel = thisComponent.getCurrentSelection.AbsoluteName
	mLCol = thisComponent.getCurrentSelection.CellAddress.column
	mLRow = thisComponent.getCurrentSelection.CellAddress.row
	thisComponent.CurrentController.setActiveSheet(thisComponent.Sheets(StartSheet)) 
	msgbox mLCel & chr(10) & "letzte verwendete Spalte = " & mLCol & chr(10) & "letzte verwendete Zeile = " & mLRow 
	thiscomponent.unlockcontrollers

end sub
aus einer beliebigen Tabelle heraus, kannst du hiermit die letzte benutzte Zelle in der Tabelle "Master" abfragen.

ActiveSheet und ActiveCell

von wolltiger » Fr, 27.02.2015 00:12

Hallo!
Ich möchte in einer Tabelle die letzte belegte Zelle finden. Das Problem läßt sich mit dem Macro-Recorder lösen, aber:
Der Macro-Recorder selektiert die Seite nach Index, ich weiß aber nur den Namen. Wenn ich aber mit
srce=thiscomponent.sheets.getbyname("Master")
das sheet hole, wird es nicht automatisch zur ActiveSheet; ich brauche also den Index für den DispatchHelper: wo finde ich den?

Jetzt kann ich mit Tastaturbefehlen die letzte belegte Zelle suchen, und das mit dem Recorder aufzeichnen. Jetzt benötige ich aber im Macro die Zeile/Spalte dieser Zelle. Wo bekomme ich diese Information?
Sprache: OOoBasic
Danke für jede Antwort.

Nach oben