Controleer of specifieke tekst (@ & .) is ingevuld in een textbox

Status
Niet open voor verdere reacties.

MichaelEv

Gebruiker
Lid geworden
18 mei 2018
Berichten
12
Dag allemaal,

In een userform heeft een gebruiker de keuze om een email adres in te vullen. Uiteraard voordat ik de tekst weg schrijf naar een excelblad wil ik controleren of het @ (apenstaartje) voorkomt en een "." (***@***.nl).

Ik hoef geen controle voor een .hotmail, .gmail etc. omdat er teveel varianten zijn. Laat staan .nl, .com etc.

Ik heb nu de volgende code:

Code:
Private Function EverythingFiledIn() As Boolean
  Dim ctl As MSForms.control
  Dim EmptyTextFocus As Boolean
        
  EverythingFiledIn = True
  EmptyTextFocus = False
  
  For Each ctl In frameKlantgegevens.Controls
     If TypeOf ctl Is MSForms.TextBox Then
        If Not ctl.Name = "txtEmail" Then
                If ctl.Value = "" Then
                    ctl.BackColor = rgbPink
                        If Not EmptyTextFocus Then
                        ctl.SetFocus
                        End If
                    EverythingFiledIn = False
                    EmptyTextFocus = True
                End If
        End If
      End If
    Next ctl
  
  If txtEmail.Value <> "" Then
    If Not txtEmail.Value = "*" & "@" & "*" & "." & "*" Then
      txtEmail.BackColor = rgbPink
      EverythingFiledIn = False
    End If
  End If
  
End Function

Het gaat alleen om het onderste stukje van de code. (Het bovenste stuk werkt prima en markeert alle velden rood als er iets ontbreekt).

De uitkomst van de onderste code is dat op het moment dat er iets is ingevuld hij rood markeert. Hij blijft goed als er exact *@*.* wordt ingevuld. Ik wil de "*" als elke tekst hebben.

Wie kan mij helpen?
 
Geen voorbeeld dus maar even via een werkblad. Misschien zo:
Code:
Sub VenA()
  c00 = Split([A1], "@")
  If UBound(c00) = 0 Or UBound(Split(c00(UBound(c00)), ".")) = 0 Then MsgBox "niet geldig"
End Sub
 
zoiets?

Code:
Private Sub CommandButton1_Click()
If InStr(TextBox1, ".") = 0 Or InStr(TextBox1, "@") = 0 Then
    MsgBox "niet goed"
    TextBox1.BackColor = rgbPink
End If
End Sub

Private Sub TextBox1_Change()
If InStr(TextBox1, ".") > 0 And InStr(TextBox1, "@") > 0 Then
    TextBox1.BackColor = vbWhite
End If
End Sub
 
Test het eens.
Code:
if [COLOR=#3E3E3E]txtEmail.text[/COLOR] like "*@*.*" then msgbox "oke"
 
@SjonR:
Jouw methodes zullen dit goedkeuren:
sjonr.helpmij@nl
 
Zo ineens is deze draad als Opgelost gemarkeerd :eek:
Zonder bedankje aan de personen die je hebben geholpen?
Dat motiveert niet echt om op een eventueel volgende vraag van je te reageren.
 
@edMoor Helemaal gelijk! Working on it :confused:
@HSV Uiteindelijk is jouw code het eenvoudigst voor mij. Bedankt aan de rest voor het meedenken!:thumb:
 
Kleine moeite, groot plezier :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan