Eingabe von gewissen Zeichen in Zelle verhindern?

3 Antworten

neben der kreativen Lösung von suboptimierer fällt mir auch nur eine VBA Lösung ein

Function zeichenpruefen(zelle As String)
For i = 1 To Len(zelle)
Select Case Asc(Mid(zelle, i, 1))
Case 0 To 47, 58 To 64, 91 To 96, 123 To 999: zeichenpruefen = "nicht zulässig"
Exit For
End Select
Next
End Function


ernkie 
Beitragsersteller
 05.01.2017, 12:12

Ist für mich "zu hoch". Sollte doch noch irgendwo die zu prüfenden Bereiche (mehrere) angeben.

Mein VBS-Wissen ist höchstens Minimal

Stelle die Frage nochmals in geänderter Fassung

0
Ninombre  05.01.2017, 12:25
@ernkie

Kannst ruhig hier nachhaken: Wie genau soll die Prüfung erfolgen?

Was ich beschrieben habe, wäre eine individuelle Funktion - so wie du sonst =summe(A1:A10) oder =wenn(A1=1;"J";"N") eingibst, kannst Du die Function in ein Modul kopieren (Beschreibung kann ich ergänzen bzw. findet man bei google) und gibst dann =zeichenpruefen(A1) ein. Es kommt dann 0 oder die Fehlermeldung. Die Ergebnisse kann man auch ändern, das war nur der erste Anlauf.

Alternative 1: Man kann jede Eingabe in Excel prüfen und das Makro damit starten lassen. (worksheet_change). Allerdings muss man entweder im Makro schon einschränken, welche Felder geprüft werden oder im gesamten Tabellenblatt werden die Sonderzeichen abgelehnt. Ist blöd, weil auch die Formeln mit = beginnen und () sowie , ; enthalten.

Alternative 2: Manueller Start und manuelle Eingabe der zu prüfenden Zelle.

2a) Ein Button und dann die Abfrage der Zelle
2b) Button und die aktuell ausgewählte Zelle wird geprüft
2c) Ohne Button, mit Doppelklick auf Zelle wird diese geprüft.

Es gibt sicher noch weitere Möglichkeiten. Dazu sollte ich nur wissen, wie Dein Ablauf sein soll.

0

Ganz von hinten durch die Brust ins Auge und nicht automatisch, aber damit du überhaupt eine Lösung hast (VBA ginge natürlich auch), habe ich einmal mit XML experimentiert.

1) Lege dir eine Mappe1.xsd mit folgendem Inhalt an ({} durch <> ersetzen)

{xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"}
{xsd:simpleType name="AlphaNum"}
{xsd:restriction base="xsd:token"}
{xsd:pattern value="[A-z0-9]*"/}
{/xsd:restriction}
{/xsd:simpleType}
  {xsd:element nillable="true" name="Mappe1"}
    {xsd:complexType}
      {xsd:sequence minOccurs="0"}
        {xsd:element minOccurs="0" maxOccurs="unbounded" nillable="true" name="Datensatz" form="unqualified"}
          {xsd:complexType}
            {xsd:sequence minOccurs="0"}
              {xsd:element minOccurs="0" nillable="true" type="AlphaNum" name="Vorname" form="unqualified"}
              {/xsd:element}
              {xsd:element minOccurs="0" nillable="true" type="AlphaNum" name="Name" form="unqualified"}
              {/xsd:element}
            {/xsd:sequence}
          {/xsd:complexType}
        {/xsd:element}
      {/xsd:sequence}
    {/xsd:complexType}
  {/xsd:element}
{/xsd:schema}

2) Öffne dein Excelsheet

3) Entwicklertools → Quelle → XML-Verknüpfungen → Hinzufügen

4) Wähle die Mappe1.xsd

5) Entwicklertools → XML → Eigenschaften zuordnen → Beim Im- und Exportieren gegen Schema validieren

6) Ziehe die XML-Felder auf die Zellen, die überprüft werden sollen (bei mir eine Tabelle mit den Überschriften Vorname und Name)

7) Entwicklertools → Exportieren

____________

Das funktioniert leider nur auf Knopfdruck, aber bei mir kommt dann die Meldung

'##' verstößt gegen pattern-Einschränkung von '[A-z0-9]*'.
Analyse des Elements 'Vorname' mit dem Wert '##' fehlgeschlagen.


ernkie 
Beitragsersteller
 05.01.2017, 12:13

Ist mir im Moment zu hoch

0

Hallo,

meinst Du Daten, Datenüberprüfung? Dort kannst Du die Eingabemöglichkeit einstellen (in Deinem Fall per benutzerdefiniert + Formel). Das geht aber auch mit einem gesperrte Sheet oder mit VBA.

es macht wenig Sinn, als Thema "Excel 2016" zu wählen, weil viele Excel-Profis als Spezi-Thema nur "Excel" haben. Mangels Übereinstimmung bekommen die die Frage nicht angezeigt. Als Themen Sinn würden machen z.B. "Excel", "VBA", "Programmierung", "Visual Basic", "MS-Office", "Programm"


Suboptimierer  04.01.2017, 15:29

Ich habe mal ein paar Themen ergänzt.

3