Melding weergeven

Status
Niet open voor verdere reacties.

bloemenman

Gebruiker
Lid geworden
18 jun 2012
Berichten
118
Hallo beste helpers,

Ik heb een invul formulier gemaakt waarin ik onderstaande code gebruik om een melding weer te geven wanneer er verplichte velden niet ingevuld zijn.


Private Sub CommandButton5_Click()

Dim cFile As String
Dim antwoord


If Range("D4") = "" Then
MsgBox "Je moet de NAAM KLANT verplicht invullen"
Range("D4").Select
Exit Sub
End If

In het formulier moet ook verplicht een email adres ingevuld worden. Graag wil een code die melding maakt als het ingevulde niet aan de eisen voor een email adres voldoen zoals het @ en de .(punt)

wie kan mij helpen?
 
Daar kan je deze functie voor gebruiken:
Code:
Public Function ValidateEmailAddress(ByVal strEmailAddress As String) As Boolean
    On Error GoTo Catch
    
    Dim objRegExp As New RegExp
    Dim blnIsValidEmail As Boolean
    
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    objRegExp.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"
    
    blnIsValidEmail = objRegExp.Test(strEmailAddress)
    ValidateEmailAddress = blnIsValidEmail
      
    Exit Function
Catch:
End Function

Wel even deze verwijzing inschakelen:
regexp.jpg
 
Laatst bewerkt:
Dan moet je wel de RegularExpressions 5.5 bibliotheek ook aanzetten.
 
Daar kan je deze functie voor gebruiken:
Code:
Public Function ValidateEmailAddress(ByVal strEmailAddress As String) As Boolean
    On Error GoTo Catch
    
    Dim objRegExp As New RegExp
    Dim blnIsValidEmail As Boolean
    
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    objRegExp.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"
    
    blnIsValidEmail = objRegExp.Test(strEmailAddress)
    ValidateEmailAddress = blnIsValidEmail
      
    Exit Function
Catch:
End Function

Wel even deze verwijzing inschakelen:
Bekijk bijlage 326185

Bedankt voor de snelle hulp!

De cel waar de code voor moet werken is D16. Hoe zorg ik er voor dat de code werkt voor deze cel?
Kan er een MsgBox weer gegeven worden wanneer er geen . of @ in het emailadres gebruikt is?
 
Kijk eens in dit voorbeeld documentje:
Bekijk bijlage EmailTest.xlsm

Vul iets in Kolom D regel 2 of hoger in.
De controle wordt dan gedaan.
De functie zit in een module en achter het werkblad zit een event routine die er gebruik van maakt.
 
Kijk eens in dit voorbeeld documentje:
Bekijk bijlage 326233

Vul iets in Kolom D regel 2 of hoger in.
De controle wordt dan gedaan.
De functie zit in een module en achter het werkblad zit een event routine die er gebruik van maakt.

DAnkjewel,
alleen kan ik het bestandje niet openen helaas. Ben wel erg benieuwd. Weet je een andere manier hoe ik het voorbeeldje kan zien?
 
Waarom kan je dat bestandje niet openen?
Het is een gewoon Excel document.
 
Je slaat wel eerst het document op?
Welke versie van Office heb je?
 

Dankjewel, deze krijg ik wel geopend. Ga direct kijken

Ik gebruik deze code, die heb ik eerder al een keer van iemand gekregen. Hoe moet ik jouw code toevoegen?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Target.Address <> "$D$4" Then Exit Sub
For i = 1 To Len(Target)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789 ", UCase(Mid(Target, i, 1))) = 0 Then
Target.Value = ""
MsgBox "Hier alleen cijfers en letters invullen!"

'WIJZIGING.
'Het commando "Range("D4").Select" faalt als we de klant-naam overbrengen uit het klantenbestand.
'Daarom doen we het Select-commando alleen als men het formulier aan 't invullen is.
'Tevens is dit commando verplaatst naar binnen de If-EndIf structuur.
If ActiveSheet.Name = "Formulier" Then
Range("D4").Select
End If

Exit Sub
End If

End Sub

Next

End Sub
 
Laatst bewerkt:
Ok. Bij een volgende vraag even melden dat het om Office 2003 gaat.
Dan kunnen de helpers daar rekening mee houden.
 
Geeft niks, maar het maakt nogal verschil en dat wist je niet.
Nu wel :)
 
Zeker.
Maar doet het documentje wat je wilde?
 
Lid sinds 2012 en nog nooit iets gelezen over quoten en codetags?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan