Originariamente inviato da vr-claudio
Ciao ragazzi
tempo fa un collega del forum mi aveva gentilmente postato un codice che mi permetteva di negare alcune parole dopo la lettera "@", qui sotto vi posto il codice:

Private Sub EMAIL_LostFocus()
Dim ATpos As Long
Dim i
If EMAIL.Text = "" Then
Else
'If n < List1.ListCount Then List1.ListIndex = List1.TopIndex + n

ATpos = InStr(1, EMAIL.Text, "@")
If ATpos = 0 Or Mid$(EMAIL.Text, ATpos + 1) <> "libero.it" Then
If ATpos = 0 Or Mid$(EMAIL.Text, ATpos + 1) <> "alice.it" Then

MsgBox "Puoi inserire solo indirizzi di posta con questi indirizzi:" & vbCr & vbCr & "Esempio:" & vbCr & "info@libero.it" & vbCr & "info@alice.it", vbCritical, "Errore"
EMAIL.SetFocus
Exit Sub
End If
End If
End Sub

...quello che volevo chiedervi, nel caso ci fosse una lista di parole in una flex anzichè scriverlo nel codice, come si potrebbe fare?

Spero di essere stato abbastanza chiaro.
Claudio
Puoi costruire una funzione che verifichi se un indirizzo e' consentito, o meno, secondo le regole che stabilisci...

In questo esempio, la lista delle "parole" NEGATE dopo l'@ e' contenuto in una listbox (List1):
codice:
Private Function ControllaIndirizzi(ByVal Email As String) As Boolean
   Dim i As Integer
   Email = UCase$(Email)
   If Email Like "?*@?*.?*" Then    'l'indirizzo deve essere del tipo:  x@x.x
      For i = 0 To List1.ListCount - 1
         If Email Like "?*@" & UCase$(List1.List(i)) Then Exit Function
      Next
      'se non e' contenuta nella lista delle parole negate, e' OK !
      ControllaIndirizzi = True
   End If
End Function
In questi casi l'operatore LIKE e' molto potente, leggiti un po' di documentazione a riguardo su MSDN...

P.S.: qui il controllo di validita' sull'indirizzo e' naturalmente "ridotto all'osso", senza nessuna pretesa di completezza....