Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellinhalt überprüfen auf Buchstaben

Zellinhalt überprüfen auf Buchstaben
reiner
Hallo Leute,
mit der Abfrage:
If ActiveCell.Offset(0, 0) Like "*#*" Then
wird der Zellinhalt überprüft auf Schreibfehler; sollte versehentlich anstelle eines Buchstabens eine Ziffer eingetragen sein wird dieser Fehler erkannt. Diese Abfrage erkennt jedoch nur Ziffern und keine Zeichen wie z.B.: !?&()$/\ usw.
Die Abfrage soll aber ausschließlich Buchstaben, aber auch Ä, Ö, Ü und ß akzeptieren, unabhängig von Groß- und Kleinschreibung. Bietet Excel-VBA eine solche Überprüfung?
mfg
reiner
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellinhalt überprüfen auf Buchstaben
09.03.2012 11:23:18
Sheldon
Hallo Reiner,
das .Offset(0,0) macht keinen Sinn in deiner Abfrage. Jedenfalls ist das Unterfangen, nur Buchstaben zuzulassen, ein ganz klein wenig komplexer. Ich schlage den folgenden Code vor, den du entsprechend einbauen musst in deinen vorhandenen Code. Statt der Msgbox würde letztlich natürlich deine If-Schleife angepasst werden, also If not Ok then anstatt If Activecell.Offset(0,0) Like "#*" Then.
Sub Test()
Dim Text As String, i As Integer, Ok As Boolean
Ok = True
Text = InputBox("nur Buchstaben eingeben")
For i = 1 To Len(Text)
If Asc(Mid(Text, i, 1))  90 And Asc(Mid(Text, i, 1))  122 Then
Ok = False
End If
Next i
If Ok Then
MsgBox "Text ist Ok."
Else
MsgBox "Text enthält nicht nur Buchstaben"
End If
End Sub
Gruß
Sheldon
Anzeige
AW: Zellinhalt überprüfen auf Buchstaben
09.03.2012 12:20:57
reiner
hallo Sheldon,
ich habe deinen Vorschlag eingesetzt und er erkannt auch die von mir genannten Sonderzeichen.
Es werden allerdings auch Einträge mit Ä, Ö, Ü und ß unabhängig von Groß- und Kleinschreibung als Fehler gemeldet, die jedoch sollen akzeptiert werden.
mfg
reiner
AW: Zellinhalt überprüfen auf Buchstaben
09.03.2012 12:46:16
reiner
hallo Sheldon,
ich habe deinen Vorschlag selbständig erweitert und nun werden auch alle Zeichen lt. ASSCI-Tabelle ab 192 akzeptiert.
For i = 1 To Len(ActiveCell.Offset(0, 0))
If Asc(Mid(ActiveCell.Offset(0, 0), i, 1))  90 And Asc(Mid(ActiveCell.Offset(0, 0), i,  _
1))  122 And Asc(Mid(ActiveCell.Offset(0, 0), i, _
1)) 
Danke für deine Unterstützung
reiner
Anzeige
freut mich, danke für die RM -owT
09.03.2012 13:36:54
Sheldon
Gruß
Sheldon
mit Regex
09.03.2012 11:28:21
CitizenX
Hi,
hier als Bsp mit einer UDF:

Option Explicit
Function CheckValid(ByVal Bereich As Range)
Dim Regex As Object
Set Regex = CreateObject("vbscript.regexp")
If Bereich.Cells.Count = 1 Then
With Regex
.Global = True
.ignoreCase = True
.Pattern = "[^a-zäüöß]"
CheckValid = Not .Test(Bereich)
End With
End If
Set Regex = Nothing
End Function
Grüße
Steffen
Anzeige
AW: mit Regex
09.03.2012 12:48:03
reiner
hallo CitizenX
ich kann deinen Vorschlag nicht nachvollziehen, der Vorschlag von Sheldon ist verständlicher, trotzdem vielen Dank
reiner
Erklährbär
09.03.2012 14:10:43
CitizenX
Hi Reiner,
zu Regularen Ausdrücken schau mal hier:
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
Eine UDF ist eine User Defined Function .
Die kannst die wie eine Excelformel in deiner Tabelle verwenden in dem du die UDF in ein allgemeines Modul kopierst und in eine Zelle =checkvalid(A1) eingibst.
A1 ist eine Zelle in dem dein zu testender Text steht.
Als Ergebnis steht dann zB Wahr wenn in dem Text kein "verbotendes" Zeichen vorkommt.
Grüße
Steffen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt auf Buchstaben überprüfen in Excel


Schritt-für-Schritt-Anleitung

Um den Zellinhalt in Excel auf Buchstaben zu überprüfen, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub CheckLetters()
       Dim Text As String, i As Integer, Ok As Boolean
       Ok = True
       Text = InputBox("Bitte nur Buchstaben eingeben:")
    
       For i = 1 To Len(Text)
           If (Asc(Mid(Text, i, 1)) < 65 Or Asc(Mid(Text, i, 1)) > 90) And _
              (Asc(Mid(Text, i, 1)) < 97 Or Asc(Mid(Text, i, 1)) > 122) And _
              (Asc(Mid(Text, i, 1)) < 192) Then
               Ok = False
           End If
       Next i
    
       If Ok Then
           MsgBox "Der Text enthält nur Buchstaben."
       Else
           MsgBox "Der Text enthält ungültige Zeichen."
       End If
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um den Zellinhalt zu überprüfen.


Häufige Fehler und Lösungen

  • Problem: Der Code erkennt auch Umlaute und Sonderzeichen als Fehler.

    • Lösung: Stelle sicher, dass du die ASCII-Werte für die Umlaute (Ä, Ö, Ü, ß) in die Bedingungen des Codes aufnimmst.
  • Problem: Das Makro funktioniert nicht wie erwartet.

    • Lösung: Überprüfe, ob der Code an der richtigen Stelle eingefügt wurde und dass du das Makro korrekt ausführst.

Alternative Methoden

Eine weitere Möglichkeit zur Überprüfung des Zellinhalts ist die Verwendung einer benutzerdefinierten Funktion (UDF) mit Regular Expressions (Regex). Hier ist ein Beispiel:

Option Explicit
Function CheckValid(ByVal Bereich As Range) As Boolean
    Dim Regex As Object
    Set Regex = CreateObject("vbscript.regexp")
    If Bereich.Cells.Count = 1 Then
        With Regex
            .Global = True
            .IgnoreCase = True
            .Pattern = "[^a-zäöüß]"
            CheckValid = Not .Test(Bereich.Value)
        End With
    End If
    Set Regex = Nothing
End Function

Um diese Funktion zu verwenden, kopiere sie in ein Modul und verwende sie in Excel wie eine normale Formel: =CheckValid(A1).


Praktische Beispiele

Hier sind einige Beispiele, wie du den Zellinhalt überprüfen kannst:

  1. Überprüfen von 6 Buchstaben: Um sicherzustellen, dass der Zellinhalt genau 6 Buchstaben enthält, kannst du den folgenden Code erweitern:

    If Len(Text) <> 6 Then
       MsgBox "Der Text muss genau 6 Buchstaben haben."
    End If
  2. Überprüfen von 7 Buchstaben: Ähnlich kannst du die Überprüfung auf 7 Buchstaben anpassen:

    If Len(Text) <> 7 Then
       MsgBox "Der Text muss genau 7 Buchstaben haben."
    End If

Tipps für Profis

  • Nutze die Funktion Trim, um Leerzeichen am Anfang und Ende des Textes zu entfernen, bevor du mit der Überprüfung beginnst.

  • Überlege, die Funktion Val zu verwenden, um sicherzustellen, dass der Zellinhalt wirklich Zahlen sind, bevor du die Buchstabenprüfung durchführst.

  • Verwende die On Error-Anweisung, um den Code robuster zu machen und Fehler abzufangen.


FAQ: Häufige Fragen

1. Frage: Wie kann ich sicherstellen, dass auch Umlaute akzeptiert werden?
Antwort: Du kannst die ASCII-Werte für Umlaute in den Bedingungen deines Codes hinzufügen, um sicherzustellen, dass sie akzeptiert werden.

2. Frage: Gibt es eine einfachere Möglichkeit, den Zellinhalt zu überprüfen?
Antwort: Ja, du kannst Regular Expressions verwenden, um eine benutzerdefinierte Funktion zu erstellen, die die Überprüfung vereinfacht.

3. Frage: Wie kann ich den Code für andere Zwecke anpassen?
Antwort: Du kannst die Bedingungen im Code anpassen, um verschiedene Zeichen oder Längen zu überprüfen, je nach deinem Bedarf.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige