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 » So, 19.11.2017 12:56

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: 10517
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan » So, 19.11.2017 13:09

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 » So, 19.11.2017 13:31

Danke Stephan,
ich werde es probieren :-)

F3K Total
********
Beiträge: 3220
Registriert: Mo, 28.02.2011 17:49

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von F3K Total » So, 19.11.2017 13:44

... 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) 37-mal heruntergeladen

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

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von MatFynus » So, 19.11.2017 14:58

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: 10517
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan » So, 19.11.2017 15:05

... 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: 10517
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan » So, 19.11.2017 15:08

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 » So, 19.11.2017 15:09

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 » So, 19.11.2017 15:11

Kann ich nicht machen dass z.B. E13 auf Tabelle2 E13 auf Tabelle1 entspricht und E13 auf Tabelle2 abgefragt wird?

Stephan
********
Beiträge: 10517
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wenn Zellwert = 1 aktivierung von Makro

Beitrag von Stephan » So, 19.11.2017 15:36

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