Eingabe von gewissen Zeichen in Zelle verhindern?
So z.B. die Zeichen / ( ) * etc. Also zugelassen sind unter Anderem A - Z und 0 - 9 in verschiedenen Zusammensetzungen. Ist so eine Einschränkung in MS Excel 2016 möglich?
Vielen Dank
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
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.
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.
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"
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