bin leider noch ein newby im Schreiben von calc-Makros und benötige etwas input bei folgendem Problem:
Ich habe eine Tabelle mit 3 Spalten: A, B und C. Spalte A kann entweder den Wert 0 oder 1 enthalten. Wenn Spalte A den Wert 0 enthält, dann sollen die Inhalte der Spalten B und C ausgetauscht werden. Hat Spalte A den Wert 1, dann soll nichts passieren d.h. die Spalten B und C bleiben unverändert. Das ganze soll für Zeilen x bis y funktionieren.
sub if_A_gleich_0_change_B_C
odoc =thisComponent
osheet = odoc.sheets().getbyname("Tabelle1") 'Tabellennamen anpassen
x = ??? ' erste Zeile eintragen
y = ??? ' letzte Zeile eintragen
for i = x-1 to y-1 'Zeilenindex beginnt bei 0
if osheet.getcellbyposition(0,i).value = 0 then
tempvar = osheet.getcellbyposition(1,i).formulalocal
osheet.getcellbyposition(1,i).formulalocal = osheet.getcellbyposition(2,i).formulalocal
osheet.getcellbyposition(2,i).formulalocal = tempvar
end if
next i
end sub
Gruß Karo
LO7.4.7.2debian 12(bookworm) auf Raspberry5 8GB (ARM64) LO25.2.3.2 flatpakdebian 12(bookworm) auf Raspberry5 8GB (ARM64)
das Switchen der Werte funktioniert super! Leider wird jedoch die if-Anweisung ignoriert d.h. es werden alle Werte geswitcht, unabhängig davon ob in Spalte A eine 0 oder eine 1 steht. Wahrscheinlich ist die Lösung easy ...ich kenn mich leider nur noch nicht mit der OO-Makro-Syntax aus. Kennt jemand ne Lösung?
odoc = thisComponent
osheet = odoc.sheets().getbyname("Tabelle1") 'Tabellennamen anpassen
x = 5 ' erste Zeile eintragen
y = 183 ' letzte Zeile eintragen
for i = x-1 to y-1 'Zeilenindex beginnt bei 0
if osheet.getcellbyposition(7,i).value = LA then
tempvar = osheet.getcellbyposition(30,i).formulalocal
osheet.getcellbyposition(30,i).formulalocal = osheet.getcellbyposition(31,i).formulalocal
osheet.getcellbyposition(31,i).formulalocal = tempvar
end if
next i
Der Wert in Spalte 7 kann entweder den String RA oder LA beinhalten. Kann es sein, dass Strings in if-Anweisungen anders bezeichnet werden müssen?