Beiträge von aetti im Thema „LibreOffice Calc Makros“
-
-
Natürlich kannst Du Fragen stellen (PM habe ich leider nicht verstanden).
Hier noch einige Ergänzungen:
Zuerst versuchte ich zu verstehen was die Herausforderung ist.
-> Es gibt eine Datei mit Daten die ergänzt (weitere Zeilen) werden kann und neu berechnet werden soll.
Im Internet habe ich ein wenig gesucht und dann einige Funktionen zusammengelegt und natürlich getestet!
Ich habe festgestellt, dass es viele Wege gibt. Vermutlich ist mein Makro nicht immer auf der Autobahn.
Im "Makro" wird im ersten Teil die letzte leere Zeile des aktuellen Dokuments ermittelt. Dies passiert hier mit der Spalte "B".
Im zweiten Teil werden dann alle Zeilen bis zur letzten Zeile mit Inhalt in einer Schleife bearbeitet ("Do....").
Heimtücksich an der Geschichte ist, dass alles mit "0" beginnt.
Beispiel: oBlatt.getCellByPosition(0, 0) wäre die Zelle A1.
Zum Testen habe ich ein neues Dokument mit 3 Zeilen und 3 Spalten inklusive Zahleninhalt erstellt.
Im Dokument unter Extras - Makros - Makros bearbeiten die erwähnten Zeilen eingefügt und das Makro ausgeführt.
Das Makro "aetti" ist unter "Meine Makros" abgelegt.
Das wärs im Moment.
-
Ich habe einen kleinen Test durchgeführt. Du kannst die folgenden Befehle im LibreOffice Calc unter Makros bearbeiten einfügen:
SUB aetti
dim iLetzte as integer
oBlatt= ThisComponent.CurrentController.getActiveSheet()
With oBlatt ' Letzte Zeile der Spalte B ermitteln
x = .Columns(1).queryEmptyCells()
iLetzte = x(x.Count-1).RangeAddress.StartRow - 1
End With
Print "iLetzte:",iLetzte
dim i as integer
i = 0
Do
print "a:",oBlatt.getCellByPosition(0, i).value
print "b:",oBlatt.getCellByPosition(1, i).value
print "c:",oBlatt.getCellByPosition(2, i).value
oBlatt.getCellByPosition(2, i).value = oBlatt.getCellByPosition(0, i).value + oBlatt.getCellByPosition(1, i).value
print "c-geändert:",oBlatt.getCellByPosition(2, i).value
i = i + 1
Loop While i <= iLetzte
end sub
Hinweise:
Die "print" Befehle habe ich nur zum Testen benutzt.
Unter Sub kannst Du natürlich aetti ändern