Hallo Klaus!
Leider ist die Makrosprache in Excel (VBA) nur teilweise kompatibel mit der Makrosprache von Calc (Starbasic). Insbesondere der Zugriff auf die Objekte ist anders.
Dir bleibt wohl eine Neuprogrammierung wohl nicht erspart.
Gruß
Charly
Excel Makros - kann man diese in Open Office übernehmen ?
Moderator: Moderatoren
Re: Excel Makros - kann man diese in Open Office übernehmen ?
Hallo
Das ganze könnte in OOobasic vielleicht so aussehen:
[1]
[2]
[3]
Gruß Karo
Es macht keinen Sinn das sich genau dieser Satz unzählige Male wiederholt. Gibts da keine Zählvariable für Zeilen- und/oder Spaltenindex?Cells(8, 3) = Cells(8, 3) + Cells(8, 6)
Cells(8, 6).ClearContents
Das ganze könnte in OOobasic vielleicht so aussehen:
Code: Alles auswählen
sub tu_was
odoc = ThisComponent 'das aktive Dokument
osheet = odoc.sheets(0) 'das erste Tabellenblatt über den Index -
'osheet = odoc.sheets().getbyName("Tabelle1") '-oder den Namen
'for i = x to z 'evtl. eine Zählschleife für den Zeilenindex ? für x kleinsten Zeilenindex, für z den grössten eintragen
osheet.getcellbyposition(3, i).value =_
osheet.getcellbyposition(3, i).value + osheet.getcellbyposition(6, i).value
osheet.getcellbyposition(3, i).clearcontents(255) ' ? siehe [1]
'next i 'evtl nächste Schleife
end sub
[2]
[3]
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: Excel Makros - kann man diese in Open Office übernehmen ?
Hallo Klaus!
Bei clearContents muss in Form einer Zahl angegeben werden, was zu löschen ist. Dabei steht 4 für Zeichen, 1 für Zahlen, 2 für Datum und Zeit, 16 für Formeln, 8 für Notizen und 32 für Formate. Die Ziffern können zusammengezählt werden, wenn verschieden Sachen gelöscht werden sollen, z.B. 4+1 für Zeichen und Zahlen.
Man muss beim Abfragen der Zelleninhalte auch zwischen Zahlen und Zeichen unterscheiden. Wenn man rechnen will nimmt man value sonst string. In deinem Beispiel gehe ich von Zahlen aus.
Und hier ist der Code allerdings ungetestet:
Im übrigen solltest du mal ins Unterforum "Java und Basic" schauen. Dort ist dieses Thema etwas besser aufgehoben. Es gibt dort Links auf Informationen und viele Programmierbeispiele.
Gruß
Charly
An diesem Beispiel erkennt man am besten den Unterschied. Zellenpositionen werden in VBA in der Reihenfolge Zeile,Spalte dargestellt, in Starbasic umgekehrt. Zudem muss in Starbasic eins abgezogen werden, da hier Spalten und Zeilen ab Null gezählt werden.Klaus.w. hat geschrieben: Cells(8, 3) = Cells(8, 3) + Cells(8, 6)
Cells(8, 6).ClearContents
Bei clearContents muss in Form einer Zahl angegeben werden, was zu löschen ist. Dabei steht 4 für Zeichen, 1 für Zahlen, 2 für Datum und Zeit, 16 für Formeln, 8 für Notizen und 32 für Formate. Die Ziffern können zusammengezählt werden, wenn verschieden Sachen gelöscht werden sollen, z.B. 4+1 für Zeichen und Zahlen.
Man muss beim Abfragen der Zelleninhalte auch zwischen Zahlen und Zeichen unterscheiden. Wenn man rechnen will nimmt man value sonst string. In deinem Beispiel gehe ich von Zahlen aus.
Und hier ist der Code allerdings ungetestet:
Code: Alles auswählen
Sub Test()
Dok = ThisComponent
Controller = Dok.getCurrentController()
Blatt = Controller.ActiveSheet
Zelle1 = Blatt.getCellByPosition(2,7)
Zelle2 = Blatt.getCellByPosition(5,7)
Zelle1.value = Zelle1.value + Zelle2.value
Zelle2.clearContents(1)
end Sub
Gruß
Charly