Seite 1 von 1

[gelöst] Mit Makro nach Gültigkeitsprüfung die Eingabe lösch

Verfasst: Sa, 24.05.2014 14:02
von Krangel
Hi,

ich möchte in Calc bei ungültiger Eingabe ein Makro starten. Das Problem ist, dass die Gültigkeitsprüfung bei aufruf eines Makros nicht die Eingabe stoppt und ungültige Daten in der Zelle stehen bleiben.
Was ich bis jetzt habe ist, für jede Zelle ein eigenes Makro zu schreiben. Da es aber ca. 240 Zellen sind, und ich dafür zu faul bin habe ich ein "Undo" Makro gebastelt. Das Makro funktioniert, wenn ich es direkt aufrufe, aber aus der Gültigkeitsprüfung heraus funktioniert es nicht.
Meine Frage ist nun, wie komme ich an die Zelle mit der letzten Eingabe heran oder wie kann ich mein Undo-Makro ändern, dass es aus der Gültigkeitsprüfung heraus funktioniert?

Code: Alles auswählen

sub undo

dim document   as object
dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dispatcher.executeDispatch(document, ".uno:Undo", "", 0, Array())

end sub
Grüße

Re: Mit Makro nach Gültigkeitsprüfung die Eingabe löschen

Verfasst: Sa, 24.05.2014 14:11
von Karolus
Hallo

Wähle bei ....Fehlermeldung einfach Anhalten aus, damit werden ungültige Eingaben gelöscht.

Karolus

Re: Mit Makro nach Gültigkeitsprüfung die Eingabe löschen

Verfasst: Sa, 24.05.2014 14:30
von Krangel
Hi,
meinst du diese Einstellung?
Bei Stopp wird die Eingabe nicht übernommen, aber es läuft kein Makro. Bei Einstellung Makro wird die Eingabe übernommen.

Grüße

Re: Mit Makro nach Gültigkeitsprüfung die Eingabe löschen

Verfasst: Sa, 24.05.2014 14:52
von Karolus
Hallo

Wieso möchtest du ein Makro laufen lassen was das gleiche tut wie die Aktion Stop

???

Karolus

Re: Mit Makro nach Gültigkeitsprüfung die Eingabe löschen

Verfasst: Sa, 24.05.2014 14:56
von Krangel
Hi,

will ich doch gar nicht. Das Makro soll was anderes tun, die ungültigen Daten muß ich zusätzlich los werden.

Grüße

Re: Mit Makro nach Gültigkeitsprüfung die Eingabe löschen

Verfasst: Sa, 24.05.2014 14:59
von Stephan
Das Problem ist, dass die Gültigkeitsprüfung bei aufruf eines Makros nicht die Eingabe stoppt und ungültige Daten in der Zelle stehen bleiben.
Dann mach das doch selber indem Du den Makrocode in einer Function kapselst, z.B.:

Code: Alles auswählen

Function meineFunction() As Boolean
	'hier der auszuführende Code
	
	'Übernahme der aktuellen Eingabe verweigern:
	meineFunction = False
End Function

Gruß
Stephan

Re: Mit Makro nach Gültigkeitsprüfung die Eingabe löschen

Verfasst: Sa, 24.05.2014 15:09
von Krangel
Super, funktioniert!

Danke für die Hilfe.
Grüße Krangel