SkyRocKo
Messages postés
174
Date d'inscription
samedi 10 mai 2003
Statut
Membre
Dernière intervention
18 février 2006
22 janv. 2006 à 17:38
Salut Groovygirl,
Je t'ai concocté un code qui fonctionne impec Tu n'as qu'à créer un TextBox nommé 'Text1" et copier-coller le code ci-dessous :
'''DANS UNE FORM
Const sKeyWords As String = "Hot;doG;snooPy;SkyRocKo" ' Liste des mots clé
Const sSeparate = ";"
Dim KeyWord(25) As String ' Le fameux tableau
Dim bForbidden As Boolean ' Saisie correcte ??
Private Sub Text1_Change()
Dim Count As Byte
'On met les mots clé dans un tableau
Call StrDecompose(sKeyWords, KeyWord(), sSeparate, , , , Count)
'On vérifie si la saisie est correcte
bForbidden = IsForbidden(Text1.Text, KeyWord(), Count)
'Ici tu places l'action à effectuer...
If bForbidden Then MsgBox "Valeur interdite !", vbCritical, "ERROR !!!"
End Sub
''''DANS UN MODULEPublic Function IsForbidden(ByVal sText As String, ByRef sValue() As String, ByVal Count, Optional ByVal StartIndex 0, Optional ByVal Compare As VbCompareMethod vbTextCompare) As Boolean
Dim a
For a = StartIndex To (Count - 1)
If InStr(1, sText, sValue(a), Compare) > 0 Then
IsForbidden = True
Exit For
End If
Next a
End Function
Public Sub StrDecompose(ByVal strSource As String, ByRef strDest() As String, Optional ByVal strSeparate As String ";", Optional ByVal Compare As VbCompareMethod vbTextCompare, Optional ByVal Start = 1, Optional ByVal StartIndex = 0, Optional ByRef Count)
Dim a, Pos
strSource = Mid$(strSource, Start)
'Nombre d'itérations
Count = Len(strSource) - Len(Replace$(strSource, strSeparate, "", , , Compare)) + IIf(Len(sKeyWords) >= 1, 1, 0)
'Continue?
If Count <= 1 Then
strDest(StartIndex) = strSource
Exit Sub
End If
'Remplie le tableau
If Right$(strSource, Len(strSeparate)) <> strSeparate Then strSource = strSource & strSeparate
For a = 1 To Len(strSource) Pos InStr(a, strSource, strSeparate): If Pos 0 Then Exit For
strDest(StartIndex) = Mid$(strSource, a, Pos - a)
StartIndex = StartIndex + 1
a = Pos
Next
End Sub
Si tu as des questions, n'hésites pas
SkyRocKo