Makro funktioniert nur unter "Ausführen" manuell

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Makro funktioniert nur unter "Ausführen" manuell

Beitrag von Jörg »

Hallo Fachleute,
Nachstehendes Makro möchte ich irgendwie zuordnen, sodass es automatisch läuft.

Code: Alles auswählen

sub Zahlung
odoc = ThisComponent
       osheet = odoc.sheets(2)
Dim Alter as integer
myCelle = osheet.getCellRangeByName ("A12")
Alter = oSheet.getCellRangeByName("J8").value

if Alter < "18" then
print "Von Zuzahlung befreit"
myCelle.string = "O"
end if

end sub
Zur Erläuterung:
In "A12" steht der Referenzwert eines Markierfeldes. "X" für an, "O" für aus.
In "J8" steht das Alter als Ergebnis folgender Formel:

Code: Alles auswählen

=WENN(D10="";"";JAHRE(D10;HEUTE();0))
Folgendes habe ich bisher leider ohne Erfolg versucht.
1. über Tabellenereignis "Inhalt gändert" (ist eh nicht so gut, da sich ständig was ändert)
2. Über "J8" Daten-> Gültigkeit->Fehlermeldung-> Makro
Habe im Forum auch schon gesehen, dass statt der Sub eine Function verwendet werden könnte (müßte?), doch weiß ich da nicht weiter.

Habt Ihr einen Rat?
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Makro funktioniert nur unter "Ausführen" manuell

Beitrag von Karolus »

Hallo

Versuch mal per Tabellenereignis `Inhalt geändert`:

Code: Alles auswählen

Sub geaendert( event )

	with event.Spreadsheet
		if .getCellRangeByName("J8").Value < 18 then
			.getCellRangeByName("A12").String = "0"
			exit sub
		else
			.getCellRangeByName("A12").String = "X"
			exit sub
		end if
	end with
	
End Sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Makro funktioniert nur unter "Ausführen" manuell

Beitrag von Jörg »

hallo Karolus,
Danke Dir erstmal. Leider funktioniert das noch nicht ganz.
Insbesondere, wenn der Wert im per Markierfeld manuell geändert wurde, springt der Ref.-Wert erst beim 2. Mal um.
Die zweite Frage wäre:
Unter Tabellenereignis"Inhalt geändert" habe ich im Originaldokument schon ein Makro zu laufen:

Code: Alles auswählen

sub Pruefung_richtige_KK_richtige_Preisliste
(steht auch in der Beispieldatei)
Daher könnte event. das exit sub stören.

Ich hänge mal eine Beispieldatei dran.
Markierfeld.ods
(239.29 KiB) 58-mal heruntergeladen
Gruß Jörg
Gruß Jörg

Win 10 Pro AOO 4.1.15
Jörg
*****
Beiträge: 401
Registriert: Mo, 21.10.2013 12:05

Re: Makro funktioniert nur unter "Ausführen" manuell

Beitrag von Jörg »

P.S. die Auswahl erfolgt über "I5" Tabelle 2(index)
Gruß Jörg

Win 10 Pro AOO 4.1.15
Antworten