ActiveSheet und ActiveCell
Moderator: Moderatoren
ActiveSheet und ActiveCell
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.
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.
Re: ActiveSheet und ActiveCell
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
aus einer beliebigen Tabelle heraus, kannst du hiermit die letzte benutzte Zelle in der Tabelle "Master" abfragen.
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
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: ActiveSheet und ActiveCell
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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: ActiveSheet und ActiveCell
Hi Karolus,
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.
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.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: ActiveSheet und ActiveCell
dich zwingt niemand dazu mit der Code-aufzeichnung zu arbeiten ( die im übrigen ziemlich genau das abbildet was $Benutzer zusammenklickt)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.
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, ...
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: ActiveSheet und ActiveCell
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 ??
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 ??
