Hallo zusammen,
bei Excel kann man bspw. mit solchen Befehlen
LetzteSpalte = ActiveSheet.Cells(6, Columns.Count).End(xlToLeft).Column
LetzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
die letzte Spalte bzw. letzte Zeile des Sheets ermitteln, wobei leere Sp. oder leere Z. mit berücksichtigt werden.
Gibt es für Calc-Basic Ähnliches oder wie kann man diese Werte ermitteln?
Grüße-
Dietrich
Calc, letzte Spalte, letzte Zeile ?
Moderator: Moderatoren
Calc, letzte Spalte, letzte Zeile ?
Dietrich
Re: Calc, letzte Spalte, letzte Zeile ?
Hallo
Gruß Karo
Code: Alles auswählen
Sub letzte_nichtleere_Spalte_und_Zeile
oSheet = thisComponent.sheets(0) '1.Blatt
ocursor = oSheet.createCursor()
ocursor.gotoStart()
ocursor.gotoEndofUsedArea(false) 'letzte Zelle des Bereiches
letzteSpalte = ocursor.getRangeAddress.endColumn 'index letzte Spalte des Bereichs
letzteZeile = ocursor.getRangeAddress.endRow 'index letzte Zeile des Bereichs
End Sub
Zuletzt geändert von Karolus am Do, 31.01.2008 19:14, insgesamt 1-mal geändert.
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: Calc, letzte Spalte, letzte Zeile ?
Danke für den Tipp!
Aber bei mir im VB2005-Programm funktioniert es nicht. Ich mache Folgendes:
Das Dokument wird richtig geöffnet, aber alles weitere funktioniert nicht. Der Cursor wird nicht gesetzt und die Indizes nicht ermittelt.
Muss ich eventuell noch einen speziellen Dienst initialisieren?
Gruß-
Dietrich
Aber bei mir im VB2005-Programm funktioniert es nicht. Ich mache Folgendes:
Code: Alles auswählen
Dim oSM As Object 'Hauptobjekt fuer den Zugriff auf OpenOffice von VB.Net aus (SM: ServiceManager)
Dim oDesk, oDoc, oSheet, oRange, oCell, oCursor As Object 'Objekte von der OpenOffice-Schnittstelle (API)
...
oSM = CreateObject("com.sun.star.ServiceManager") 'OpenOffice instanziieren: Zwingend notwenig fuer die Kommunikation von VB.Net mit der OpenOffice API
oDesk = oSM.createInstance("com.sun.star.frame.Desktop") 'Erstelle den ersten & wichtigsten Dienst
...
Dim ladeZustand(0)
ladeZustand(0) = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
ladeZustand(0).Value = True
...
Dim str As String = fName 'das ist der Dateiname der OO-Calc
str = str.Replace("\", "/")
str = "file:///" + str.Replace(":", "|")
oDoc = oDesk.loadComponentFromURL(str, "_blank", 0, ladeZustand)
...
oSheet = oDoc.getSheets().getByName("Tabelle1") 'Bezugspunkt: 1.Blatt der Mappe
ocursor = oSheet.createCursor()
ocursor.gotoStart()
oCursor.gotoEnd() 'letzte Zelle des Bereiches
lastSp = oCursor.getRangeAddress.endColumn 'index letzte Spalte des Bereichs
lastZe = oCursor.getRangeAddress.endRow 'index letzte Zeile des Bereichs
...
Muss ich eventuell noch einen speziellen Dienst initialisieren?
Gruß-
Dietrich
Dietrich
Re: Calc, letzte Spalte, letzte Zeile ?
Hallo Dietrich
'lastSp' und 'lastZe' speichern an dieser Stelle nur Spaltenindex und Zeilenindex der letzten benutzten Zelle, es wird noch nichts selektiert oder geschrieben.
prüfen kannst du das mit:
Was möchtest du denn weiter tun ?
Gruß Karo
'lastSp' und 'lastZe' speichern an dieser Stelle nur Spaltenindex und Zeilenindex der letzten benutzten Zelle, es wird noch nichts selektiert oder geschrieben.
prüfen kannst du das mit:
Code: Alles auswählen
....
msgbox (lastSp & " " & lastZe )
Gruß Karo
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: Calc, letzte Spalte, letzte Zeile ?
Hallo Dietrich
Ich hab noch einen Fehler in meinem Makrocode entdeckt:
tausche die Zeile:
oCursor.gotoEnd()
gegen:
ocursor.gotoEndofUsedArea(false)
...gotoEnd springt von der Startzelle aus nur bis zur nächsten Bereichsgrenze leer|nichtleer bzw. nichtleer|leer
Gruß Karo
Ich hab noch einen Fehler in meinem Makrocode entdeckt:
tausche die Zeile:
oCursor.gotoEnd()
gegen:
ocursor.gotoEndofUsedArea(false)
...gotoEnd springt von der Startzelle aus nur bis zur nächsten Bereichsgrenze leer|nichtleer bzw. nichtleer|leer
Gruß Karo
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: Calc, letzte Spalte, letzte Zeile ?
Hallo Karolus,
danke dir für die Mitarbeit! Mit der letzten Korrektur funktioniert alles!
Mein Code oben ist nur ein Ausschnitt aus meinem Programm. Nachdem die Werte für letzteSpalte und letzteZeile festgestellt sind, werde ich die Zellwerte auslesen, in ein Array speichern und dann in einem Datengrid anzeigen.
Ciao-
Dietrich
danke dir für die Mitarbeit! Mit der letzten Korrektur funktioniert alles!
Mein Code oben ist nur ein Ausschnitt aus meinem Programm. Nachdem die Werte für letzteSpalte und letzteZeile festgestellt sind, werde ich die Zellwerte auslesen, in ein Array speichern und dann in einem Datengrid anzeigen.
Ciao-
Dietrich
Dietrich