Wie finde ich eine Lösung, dass dies auch dem unbedarften Nutzer nicht passiert? Der eben dann noch "irgendwie" etwas in die Zelle einfügt.
Am Besten indem Du den Nutzer informierst/ausbildest anstatt ihn zu entmündigen und zu versuchen alles vor ihm mit technischen Tricks zu verstecken.
Ansonsten dienen für Eingaben normalerweise Formulare und auch in Calc kann man ein Textformularfeld zur Eingabe einfügen und mit der Zelle verknüpfen, sowie direkt über die Zelle positionieren, so das die Zelle selbst nicht mehr angeklickt werden kann.
Sofern dabei die Gefahr besteht das der Anwender irgendwie doch die Zelle aktiviert (z.B. indem er in das sog. Namensfeld, neben der Rechenzeile den Zellnamen eingibt), könnte man das Textformularfeld auch gleich 'zentral' (z.B. oben im Tabellenblatt) positionieen und per Makro auf Änderungen reagieren und die Eingabe in die gewünschte Zelle übernehmen.
In der angehängten DAtei ist dem Formularfeld-EReignis "Text geändert" folgendes Makro zugeordnet, das alle Eingaben in Zelle A2 überträgt:
Code: Alles auswählen
Sub Main(rueck)
With ThisComponent.CurrentController.ActiveSheet
.unprotect("")
.getCellRangeByName("A2").String = rueck.Source.Text
.protect("")
End With
End Sub
Gruß
Stephan
[quote]Wie finde ich eine Lösung, dass dies auch dem unbedarften Nutzer nicht passiert? Der eben dann noch "irgendwie" etwas in die Zelle einfügt.[/quote]
Am Besten indem Du den Nutzer informierst/ausbildest anstatt ihn zu entmündigen und zu versuchen alles vor ihm mit technischen Tricks zu verstecken.
Ansonsten dienen für Eingaben normalerweise Formulare und auch in Calc kann man ein Textformularfeld zur Eingabe einfügen und mit der Zelle verknüpfen, sowie direkt über die Zelle positionieren, so das die Zelle selbst nicht mehr angeklickt werden kann.
Sofern dabei die Gefahr besteht das der Anwender irgendwie doch die Zelle aktiviert (z.B. indem er in das sog. Namensfeld, neben der Rechenzeile den Zellnamen eingibt), könnte man das Textformularfeld auch gleich 'zentral' (z.B. oben im Tabellenblatt) positionieen und per Makro auf Änderungen reagieren und die Eingabe in die gewünschte Zelle übernehmen.
In der angehängten DAtei ist dem Formularfeld-EReignis "Text geändert" folgendes Makro zugeordnet, das alle Eingaben in Zelle A2 überträgt:
[code]Sub Main(rueck)
With ThisComponent.CurrentController.ActiveSheet
.unprotect("")
.getCellRangeByName("A2").String = rueck.Source.Text
.protect("")
End With
End Sub[/code]
Gruß
Stephan