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

Forumthread: Textbox auf @ und . prüfen

Textbox auf @ und . prüfen
27.09.2023 11:14:33
Dieter Klein
Hi zusammen,

ich erstelle gerade eine Userbox mit der Eingabe von Namen (txt_name), Webadresse (txt_webadresse) und eMail (txt_email).
Die Prüfung, ob die Eingabe leer ist funktioniert, aber ich möchte noch prüfen, ob die Webadresse einen Punkt "." und die Mailadresse ein "@" enthält. Wenn nicht, soll eine Meldung über die Messagebox ausgegeben werden.
Die st_ele.Tag-Bezeichnung ist für txt_name "Name", usw.

Danke für eure Hilfe.

Gruß

...hier der Quellcode...

Private Sub btn_pruefung_Click()

Dim znr As Long
Dim st_ele As Control

znr = Range("A1").CurrentRegion.Rows.Count + 1

'Prüfung
For Each st_ele In Me.Controls
If TypeName(st_ele) = "TextBox" Then
If st_ele.Text = "" Then
MsgBox "Das Feld: """ & st_ele.Tag & """ darf nicht leer bleiben.", vbExclamation, "Hinweis!"
st_ele.SetFocus
Exit Sub
End If
End If
Next


'Ausgabe der Inhalte der Textboxen in Excel-Zellen
Range("A" & znr) = Me.txt_name
Range("B" & znr) = Me.txt_webadresse
Range("C" & znr) = Me.txt_email

MsgBox "Dateneingabe OK", vbExclamation, "Prüfergebnis:"

'leeren der Textboxen
Me.txt_name = ""
Me.txt_webadresse = ""
Me.txt_email = ""

'setzen des Focus in die Textbox mit dem Namen txt_name
Me.txt_name.SetFocus

End Sub
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox auf @ und . prüfen
27.09.2023 11:29:47
JoWE
Hallo Dieter,

als Tipp:
If InStr(1, TextBox1.Text, "@") > 0 Then MsgBox "OK"

Gruß
Jochen
AW: Textbox auf @ und . prüfen
27.09.2023 12:53:53
RPP63
Moin!
Wie so häufig frage ich mich, welchen Vorteil hier ein Userform bringen sollte.
Als Excel-Profi würde ich dafür eine benutzerdefinierte Datengültigkeit nehmen:
=FINDEN("@";H2)*FINDEN(".";H2)

und mittels bedingter Formatierung =ANZAHL2() noch auszufüllende Datenfelder einfärben.

Gruß Ralf
Anzeige
AW: Textbox auf @ und . prüfen
28.09.2023 14:11:11
Yal
Hallo Dieter,

ich denke, ein "Excel Profi/VBA bescheiden" möchte auch schnellsten auf "Excel Profi/VBA Profi" aufsteigen.

Pattern recognition wird mit Regular Expression geprüft.

Function IstEmailTauglich(ByVal EAdresse As String) As Boolean

Dim R

Set R = CreateObject("VBScript.RegExp")
R.Pattern = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|""(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*"")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"
IstEmailTauglich = R.test(EAdresse)
End Function

Sub test()
Debug.Print IstEmailTauglich("Hans@herber.de")
End Sub

Test, probieren, spielen kann man unter https://regexr.com/ oder https://regex101.com/ (letzteres finde ich iwi leichter zu erfassen).

Zugegeben, ich habe den Pattern für Email-Adresse nicht selber erfunden, sondern bei StackOverflow geborgt.
Und ja, es leicht "over-engineered". [\D\d]+@[\D\d]{2,}\.[\D\d]{2,} hätte es auch getan.

VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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