Zeichen verbieten

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Zeichen verbieten

Beitrag von lorbass »

Gast hat geschrieben:Daten > Gültigkeit?
Und dann?

Ich finde dort jedenfalls nur Möglichkeiten erlaubte Werte festzulegen, aber keine Möglichkeit einzelne Werte zu verbieten, geschweige denn einzelne Zeichen innerhalb der Werte.

Gruß
lorbass
Eddy
********
Beiträge: 2781
Registriert: So, 02.10.2005 10:14

Re: Zeichen verbieten

Beitrag von Eddy »

Hallo finger12,
finger12 hat geschrieben: Der Dateinamen wird per Makro aus 3 verschiedenen Zellen zusammengesetzt.
wenn das per Makro gemacht wird, ersetzt mit dem Makro als erstes den Schrägstrich durch ein anderes Zeichen. Wenn es dazu Fragen gibt, stellt die bitte im passenden Unterforum.
Eddy
********
Beiträge: 2781
Registriert: So, 02.10.2005 10:14

Re: Zeichen verbieten

Beitrag von Eddy »

Hallo finger12,
finger12 hat geschrieben: Verstehe deine Antwort nicht.
was daran verstehst Du nicht?
finger12 hat geschrieben:Ich suche möglichst keine makrolösung ( zumindest habe ich es vor).
Das schreibst Du hier das erste Mal.
Dein Anliegen wird ohne Makro nicht funktionieren.

Da der Dateiname per Makro zusammengesetzt wird, kannst Du dabei auf zulässige Zeichen prüfen.
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Zeichen verbieten

Beitrag von lorbass »

finger12 hat geschrieben:an Eddy: Verstehe deine Antwort nicht.
Eine Standard-Methode, einzelne Zeichen schon bei der Dateneingabe in eine Calc-Zelle mit Hausmitteln abzuweisen, konnte dir offenbar niemand anbieten, gibt's meines Wissens auch nicht. Also hat Eddy dir eine Methode vorgeschlagen, dies sachgerecht im Rahmen einer Plausibilitätsprüfung in einem Makro unterzubringen, das diese Daten sowieso irgendwann zur Generierung eines Dateinamens verwendet. Das wäre wohl die in jeder Hinsicht „preiswerteste‟ Methode…

Wenn dir das nicht gefällt, könntest du eigens ein spezifisches Makro schreiben, das nur testet ob die fragliche Zelle ein »/« enthält und – wenn dies so ist – dem Benutzer (sinnbildlich) auf die Finger klopft. Damit dieses Makro sofort gestartet wird, sobald der Wert der fraglichen Zelle geändert wird, müsstest du dann allerdings noch einen sogenannten Listener schreiben, der den Zustand dieser Zelle permanent überwacht und bei Eintreten des Ereignisses das Prüf-Makro startet. — Einfacher ist das allerdings nicht.
finger12 hat geschrieben:Das speichermakro hat nichts mit dem "/" zeichen zu tun. Der Schrägstrich im Namen führt aber zu einem Unterordner.
Wenn wegen des »/» beim Speichern ein Unterverzeichnis generiert wird, hat das offensichtlich sehr wohl was mit dem Speichern-Makro zu tun, in dem doch wohl der Dateiname mitsamt »/« zusammengestellt wird. Oder hab ich da was falsch verstanden?

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

Re: Zeichen verbieten

Beitrag von Stephan »

Eine sinnvolle/ergonomische Lösung ist eigentlich nur möglich wenn das nichtgewolte Zeichen zum Zeitpunkt der unmittelbaren Eingabe zurückgewiesen wird und nicht erst wenn die Eingabe komplett ist. DAzu ist dann ein Listener nötig, wie z.B. in:
http://www.oooforum.org/forum/viewtopic ... highlight=

Basierend darauf ist anhängende Datei gestaltet, die jede eingabe von "/" zurückweist (Beim Öffnen der Datei muß Ausführung von Makros gestattet sein), ggf. müßte diese Datei noch verfeinert werden.

Code ist:

Code: Alles auswählen

Global tccc As Object
Global t_list As Object

Sub RegisterKeyListener
  tccc = ThisComponent.getCurrentController
  t_list = createUnoListener("kli_", "com.sun.star.awt.XKeyHandler")
  tccc.addKeyHandler(t_list) 
End Sub

Sub UnregisterKeyListener
  tccc.removeKeyHandler(t_list)
End Sub

Sub kli_disposing(oEvt)

End Sub

Function kli_KeyPressed(oEvt) As Boolean
  If (oEvt.Keycode = 263) Then
      Msgbox "Eingabe von ""/"" nicht zulässig."
      kli_KeyPressed = True
    Else
     kli_KeyPressed = False
  End If
End Function   

Function kli_KeyReleased(oEvt) As Boolean
  '
End Function
Wenn wegen des »/» beim Speichern ein Unterverzeichnis generiert wird, hat das offensichtlich sehr wohl was mit dem Speichern-Makro zu tun, in dem doch wohl der Dateiname mitsamt »/« zusammengestellt wird.
sehe ich auch so



Gruß
Stephan
Dateianhänge
Key-Listener.ods
(8.29 KiB) 35-mal heruntergeladen
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Zeichen verbieten

Beitrag von Gert Seler »

Hallo Finger_12,
es geht auch ohne "Makro".
Steht der "verkettete Dateinamen" in "A2", schreibe in "B2" folgende Formel :

Code: Alles auswählen

=WECHSELN(A2;"/";"";1)
in "B2" wird "A2" ohne "/" ausgegeben.
Formel nach unten kopieren. Benötigt halt eine zusätzliche Spalte.
Alle "Texte", auch "Zahlentexte" in Spalte-A werden ohne "/" ausgegeben.
Übrigens Dein o.g. Beispiel gibt Standardmäßig ein "Datum" (01.12.13) aus.
Bzw die Zahl 41609 je nach Formatierung aus.

mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Bockenheimer
***
Beiträge: 61
Registriert: Mi, 11.07.2012 22:08

Re: Zeichen verbieten

Beitrag von Bockenheimer »

Hallo,
noch ein Hinweis: Sollen - wie anfangs geschrieben - wirkliche alle "/" unterdrückt werden, muss der 4. Parameter (gefundene Textstelle) weggelassen werden. In Gerds Beispiel würde nur der erste Schrägstrich unterdrückt.
Gruß von Bockenheimer
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Zeichen verbieten

Beitrag von Gert Seler »

Hallo Zusammen,
hier befinden sich weitere Lösungen für WECHSELN() / ERSETZEN()
von Texten.
http://www.ooowiki.de/CalcFunktionenText/Zeichenketten

mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Antworten