Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Prüfung Is"email"

VBA Prüfung Is"email"
23.12.2012 18:13:04
Paul
hallo zusammen und einen schönen 4. advent
ich habe eine frage zu VBA. Gibt es eine Möglichkeit eine Textbox auf den inhalt email zu prüfen, ählich wie isnumirc oder istext?
vielen Dank in vorraus

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Prüfung Is"email"
23.12.2012 18:14:50
Hajo_Zi
instr()

AW: VBA Prüfung Is"email"
23.12.2012 18:26:19
Paul
Also IsText geht auch nicht hab ich gerad gemerkt, ich will überprüfen, ob in eine textbox ein Text (zb. ein Name oder Vorname) und in einer anderen textbox eine E-mail Adresse (also text mit @) eingegeben wurde.

Anzeige
AW: VBA Prüfung Is"email"
23.12.2012 18:28:21
Hajo_Zi
versuche meinen Vorschlag.
Gruß Hajo

AW: VBA Prüfung Is"email"
23.12.2012 19:37:43
Paul
@hajo versteh nicht wie du das meinst mit instr()

AW: VBA Prüfung Is"email"
23.12.2012 19:43:09
Hajo_Zi

Excel hat auch eine Hilfe
If Instr(Textbox1,"@")>0

Gruß Hajo

Anzeige
per Regex
23.12.2012 18:38:38
CitizenX
Hi,
ins Modul der Tabelle od bei UF ins Modul der UF:
Option Explicit
Private Sub TextBox1_LostFocus()
If Len(Trim$(TextBox1.Value)) = 0 Then Exit Sub
Dim Regex As Object: Set Regex = CreateObject("vbscript.regexp")
With Regex
.ignorecase = True
.Pattern = "\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"
MsgBox "E-MAil Adresse ist " & IIf(.Test(TextBox1.Value), "", "un") & "gültig!"
End With
End Sub
Grüße
Steffen
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

E-Mail Prüfung in VBA: Textbox-Inhalte überprüfen


Schritt-für-Schritt-Anleitung

Um eine E-Mail-Adresse in einer Textbox mit VBA zu überprüfen, kannst du die folgenden Schritte befolgen:

  1. Öffne das VBA-Editor-Fenster:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das richtige Modul aus:

    • Wähle das Modul der Tabelle oder das Modul des UserForms, in dem sich deine Textbox befindet.
  3. Füge den folgenden Code ein:

    Option Explicit
    
    Private Sub TextBox1_LostFocus()
       If Len(Trim$(TextBox1.Value)) = 0 Then Exit Sub
       Dim Regex As Object: Set Regex = CreateObject("vbscript.regexp")
       With Regex
           .IgnoreCase = True
           .Pattern = "\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"
           MsgBox "E-Mail Adresse ist " & IIf(.Test(TextBox1.Value), "", "un") & "gültig!"
       End With
    End Sub
    • Hierbei wird die Regex verwendet, um die E-Mail-Adresse zu prüfen. Achte darauf, dass TextBox1 der Name deiner Textbox ist.

Häufige Fehler und Lösungen

  • Fehler: Object variable or With block variable not set
    Lösung: Stelle sicher, dass du die Regex-Objektvariable korrekt initialisiert hast (Set Regex = CreateObject("vbscript.regexp")).

  • Fehler: Ungültige E-Mail-Adresse wird als gültig erkannt
    Lösung: Überprüfe, ob der Regex-Ausdruck korrekt ist. Er sollte sicherstellen, dass die E-Mail-Adresse den richtigen Aufbau hat.


Alternative Methoden

Eine einfache Methode zur Überprüfung von Textboxen ist die Verwendung der Instr()-Funktion. Damit kannst du prüfen, ob ein "@" in der E-Mail-Adresse vorhanden ist:

If Instr(TextBox1.Value, "@") > 0 Then
    MsgBox "E-Mail Adresse scheint gültig zu sein!"
Else
    MsgBox "E-Mail Adresse ungültig!"
End If

Diese Methode ist weniger robust als die Regex-Überprüfung, eignet sich aber für einfache Prüfungen.


Praktische Beispiele

Angenommen, du möchtest sowohl einen Namen als auch eine E-Mail-Adresse in zwei verschiedenen Textboxen überprüfen. Du könntest den folgenden Code verwenden:

Private Sub btnSubmit_Click()
    If Len(Trim$(TextBox1.Value)) = 0 Then
        MsgBox "Bitte Namen eingeben."
        Exit Sub
    End If

    If Len(Trim$(TextBox2.Value)) = 0 Or Instr(TextBox2.Value, "@") = 0 Then
        MsgBox "Bitte gültige E-Mail-Adresse eingeben."
        Exit Sub
    End If

    MsgBox "Eingaben sind gültig!"
End Sub

Hier wird zuerst der Name in TextBox1 und dann die E-Mail-Adresse in TextBox2 überprüft.


Tipps für Profis

  • Verwende Regex für präzisere Prüfungen: Die Verwendung von regulären Ausdrücken (Regex) ist eine leistungsstarke Methode, um komplexe Muster zu überprüfen.
  • Fehlerbehandlung einbauen: Verwende On Error-Anweisungen, um sicherzustellen, dass dein Programm nicht abstürzt, wenn unerwartete Eingaben gemacht werden.
  • Nutzerfreundliche Fehlermeldungen: Gib klare und hilfreiche Fehlermeldungen aus, damit der Benutzer weiß, was er korrigieren muss.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Text in einer Textbox ein gültiger Name ist?
Du kannst einfache Prüfungen durchführen, indem du sicherstellst, dass der Text keine Zahlen enthält oder nur aus Buchstaben besteht.

2. Ist die Verwendung von IsText in VBA sinnvoll für E-Mail-Prüfungen?
IsText prüft lediglich, ob der Inhalt Text ist. Es ist nicht geeignet, um spezifische Formate wie E-Mail-Adressen zu validieren, weshalb Regex oder Instr() die bessere Wahl sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige