J'essaie de tester la valeur d'une zone de texte par rapport à plusieurs conditions dans VBA et je ne suis pas sûr de la meilleure façon de procéder.VBA Vérification d'une valeur de zone de texte contre plusieurs conditions
L'utilisateur est censé entrer un ID de produit et cet ID peut être dans l'un des 5 formats et certaines longueurs en fonction de ce format. Quatre des 5 sont alphanumériques (10) et le cinquième est numérique seulement (13). Pour trois d'entre eux (type A), je l'ai vérifié pour les premiers caractères de la chaîne pour voir si ils correspondent comme quoi que ce soit après que les deux premiers sont jeu équitable. Pour le type B (numérique seulement), j'ai un ensemble de numéros de série pour celui-là et j'essaye de forcer la longueur de 13 chiffres. Pour le type C, il peut commencer par LMN ou LMNZZ et le reste des caractères doivent être des chiffres.
Voici ce que j'ai jusqu'à présent ...
Dim ALen, Blen, Clen as Integer
Dim val_UpperLimit,val_LowerLimit as Double
val_UpperLimit = 9999999999999#
val_LowerLimit = 100000000000# (Only 12 digits b/C# can start with 0)
ALen = "10"
BLen = "13"
CLen = "14"
'Check for Product Type B (Should be numeric value only. 13 digits long)
If IsNumeric(txtProduct.Value) _
And txtProduct.Value < val_UpperLimit _
And txtProduct.Value > val_LowerLimit _
And Len(txtProduct.Value) = BLen _
'Check for Product Type A (Product will start with A0, D0 or YY and be 10 characters long)
Or txtProduct.Value Like "A0*" _
And Len(txtProduct.Value) = ALen _
Or txtProduct.Value Like "D0*" _
And Len(txtProduct.Value) = ALen _
Or txtProduct.Value Like "YY*" _
And Len(txtProduct.Value) = ALen _
'Check for Product Type C (Product will start with LMN# or LMNZZ# and be a total of 14 characters/digits)
Or txtProduct.Value Like "LMN*" _
Or txtProduct.Value Like "LMNZZ*" _
And Len(txtProduct.Value) = CLen _
Then
txtProduct.Value = UCase(txtProduct.Value)
Else
MsgBox "Please enter a valid Product ID", vbOKOnly
txtProduct.SetFocus
Exit Sub
End If
Toute aide est grandement appréciée!
Merci Chris. Cela fonctionne magnifiquement! –