Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

47 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige