Seite 1 von 1

LibreOffice Basic

Verfasst: Do 13. Jun 2024, 18:38
von Trudchen
Moin moin,
ich versuche erfolglos, mittels LibreOffice (6.4) Basic (LO-Basic) eine Zeile in Calc zu löschen. Als prinzipielles Beispiel:
Ich habe nur 1 Tabellenblatt und 5 belegte, lückenlose Zeilen. Ich will die Zeile 3 löschen. Da ich im Netz rein gar nichts dazu gefunden habe, auch nicht in der LibreOffice Hilfe für Basic, auch nicht in der Analyse einer Makro-Aufzeichnung, brauche ich eure Hilfe. Ich habe versucht, den VBA-Befehl dazu zu verwenden – geht nicht. Könnte mir jemand meinen Code so korrigieren, dass ich damit eine Zeile löschen kann und mir vielleicht kurz erläutern, was an meinem Code falsch oder verbesserungsfähig ist. Für jede noch so kleine Hilfe bedanke ich mich vielfach im voraus:
Option Explicit
Option VBASupport 1
sub ZeileLoeschen()
dim doc as object
dim sheet as object
dim row as object
doc = ThisComponent
sheet = doc.sheets(0)
row = row(4)
row.Delete
end sub

Re: LibreOffice Basic

Verfasst: Do 13. Jun 2024, 22:12
von mikele

Re: LibreOffice Basic

Verfasst: Fr 14. Jun 2024, 14:17
von F3K Total
mikele hat geschrieben:
Do 13. Jun 2024, 22:12
guggst du hier:
... und dann verstehst du vermutlich diesen Code:

Code: Alles auswählen

sub ZeileLoeschen()
    dim doc as object
    dim sheet as object
    dim rows as object
    doc = ThisComponent
    sheet = doc.sheets(0)'Tabellenblatt 1
    rows = sheet.rows
    rows.removeByIndex(2,1)'( nIndex as long, nCount as long ) der Index von Zeile 1 = 0, Zeile 2 = 1, Zeile 3 = 2 usw., nCount ist die Anzahl der Zeilen ab hier, also eine Zeile wird gelöscht -> removeByIndex(2,1)
end sub
Gruß R

Re: LibreOffice Basic

Verfasst: Fr 14. Jun 2024, 16:19
von Trudchen
Danke für die Hilfe bis hierher, aber der Code funzt noch immer nicht. Bei der Zeile sheet=doc.sheet(0) erscheint die Fehlermeldung: Laufzeitfehler 423 - (Eigenschaft oder Methode nicht gefunden).Mein Code sieht bisher so aus:
Option Explicit
Option VBASupport 1
sub ZeileLoeschen()
' MsgBox " Funktioniert nicht!"
dim doc as object
dim sheet as object
dim rows as object
doc = ThisComponent
sheet = doc.sheets(0)
rows = sheets.rows ' Laufzeitfehler 423 - (Eigenschaft oder Methode nicht gefunden)
rows.removeByIndex(4,1)
end sub

Re: LibreOffice Basic

Verfasst: Fr 14. Jun 2024, 16:41
von karolus
Hallo

rows = sheets.rows

Das rote s kannst du weglassen!

Re: LibreOffice Basic

Verfasst: Fr 14. Jun 2024, 20:14
von Trudchen
Juchuuuuuuuu! Es funktioniert. Vielen herzlichen Dank an Karolus und alle anderen, die sich die Mühe gemacht haben, einem Greenhorn auf die Hufe zu helfen. Ich hoffe, ich werde auch ein Mal so kompetent wie ihr und kann dann vielleicht auch anderen helfen. Nochmals vielen Dank!
Trudchen