Wenn Zellwert = 1 aktivierung von Makro

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

Moderator: Moderatoren

MatFynus
*
Beiträge: 11
Registriert: So, 19.11.2017 12:48

Wenn Zellwert = 1 aktivierung von Makro

Beitrag von MatFynus »

Hallo,
ich habe ein kleines Problem. Auf dem Tabellenblatt1 soll,wenn E13 = 1234 ist ein Makro ausgeführt werden welches ich bereits geschrieben habe. Brauche also ein „if-Makro“ kenne mich jedoch nicht damit aus. Könnte jemand mir den Corde posten?
Würde mich freuen wenn mir jemand helfen könnte!

Gruß
Matthias
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan »

Code: Alles auswählen

Sub start_pruefen()
	If ThisComponent.Sheets().getByName("Tabellenblatt1").getCellRangeByName("E13").Value = 1234 Then
		DeinMakro()
	End If
End Sub

Sub DeinMakro()
	'...
End Sub
Gruß
Stephan
MatFynus
*
Beiträge: 11
Registriert: So, 19.11.2017 12:48

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von MatFynus »

Danke Stephan,
ich werde es probieren :-)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von F3K Total »

... oder per benutzerdefinierter FUNCTION, schaue in angehängter Datei in die Zelle F13.

Code: Alles auswählen

Function IS_CELL_VALUE(CELLVALUE,VALUE)
    if CELLVALUE = VALUE then
        S_DEIN_MAKRO(VALUE)
    endif
End function

SUB S_DEIN_MAKRO(VALUE)
    MSGBOX "Der Zellwert "+VALUE+" wurde eingetragen"
End SUB
Gruß R
Dateianhänge
UDF_CELLVALUE.ods
(9.61 KiB) 101-mal heruntergeladen
MatFynus
*
Beiträge: 11
Registriert: So, 19.11.2017 12:48

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von MatFynus »

Hallo,
danke das ihr mir geholfen habt. Stephan es scheint so als würde was bei ihren Code nicht funktionieren es kommt immer eine Fehlermeldung.
Können sie mir Helfen (Problem wird in der 2. Codezeile angezeigt)

Danke!
Gruß
Matthias
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan »

... oder per benutzerdefinierter FUNCTION
ja, aber Vorsicht, diese Lösung ist nicht universell, denn falls das schon geschriebene Makro (das wir hier nicht kennen) Code enthält der Änderungen in (u.a.) Tabellenzellen des gleichen Tabellenblattes machen soll ist das unmöglich.
Das ist eine bekannte Einschränkung benutzerdefinierter Funktionen.

Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan »

Stephan es scheint so als würde was bei ihren Code nicht funktionieren es kommt immer eine Fehlermeldung.
Können sie mir Helfen (Problem wird in der 2. Codezeile angezeigt)
Kann ich nicht nachvollziehen. Ist denn der Name(!) des Tabellenblattes auch "Tabellenblatt1" oder geht es vielleicht in Wahrheit um das 1. Tabellenblatt, dessen Name jedoch "Tabelle1" ist? Dann müsste der Code natürlich lauten:

Code: Alles auswählen

Sub start_pruefen()
	If ThisComponent.Sheets().getByName("Tabelle1").getCellRangeByName("E13").Value = 1234 Then
		DeinMakro()
	End If
End Sub
Gruß
Stephan
MatFynus
*
Beiträge: 11
Registriert: So, 19.11.2017 12:48

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von MatFynus »

Mein Makro macht 4 Schaltflächen Aktivierbar.
MatFynus
*
Beiträge: 11
Registriert: So, 19.11.2017 12:48

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von MatFynus »

Kann ich nicht machen dass z.B. E13 auf Tabelle2 E13 auf Tabelle1 entspricht und E13 auf Tabelle2 abgefragt wird?
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan »

Kann ich nicht machen dass z.B. E13 auf Tabelle2 E13 auf Tabelle1 entspricht und E13 auf Tabelle2 abgefragt wird?
ja, natürlich, schreibe in E13 (Tabelle2) die Formel =Tabelle1.E13 und frage dann eben E13 in Tabelle2 ab - ich weiß aber nicht wozu das jetzt gut sein soll.


Gruß
Stephan
Antworten