XL 2010 VBA condition

spike29

XLDnaute Occasionnel
Bonjour,

J'ai un programme qui permet de filtrer un gros tableau de données selon différents critères.
Le programme va supprimer les lignes en fonction des conditions énoncées dans l'extrait de code ci-dessous :

If aa(i, 2) <> "" And Not Len(aa(i, 2)) < 4 And Not Len(aa(i, 2)) > 4 And Not aa(i, 2) Like "F*" And Not aa(i, 2) Like "TT*" And Not aa(i, 2) Like "*a" And Not aa(i, 2) Like "*b" And Not aa(i, 2) Like "*c" And Not aa(i, 2) Like "*+" Then

Ma liste de conditions commence à grossir et j'aimerais la simplifier en étant le plus exhaustif possible.

Je conserve donc :

If aa(i, 2) <> "" And Not Len(aa(i, 2)) < 4 And Not Len(aa(i, 2)) > 4

J'aimerai ajouter comme condition (sans savoir la syntaxe exacte) :

- Si la valeur contenue dans aa(i,2) ne démarre pas par une lettre majuscule suivie de 3 chiffres (exemple H001)


Malgré mes recherches je n'ai pas trouver d'exemple me permettant de rédiger cette condition.
Je ne partage volontairement pas le fichier car le code y est trop long et lourd.

Merci d'avance pour vos retours

Bonne journée
 
Solution
Bon. si on s'en tient aux 26 lettres majuscules de l'alphabet français :
VB:
Private Function conforme(ch As String) As Boolean
   conforme = ch Like "[A-Z]###"
End Function
pour une chaîne commençant par une majuscule suivie de 3 chiffres uniquement
et rien de plus

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour tout le monde,
un essai :
VB:
Sub Essai()
'Chaine à tester
Chaine = "A1111"
'Calcul
    If Left(Chaine, 1) = UCase(Left(Chaine, 1)) And IsNumeric(Right(Chaine, 3)) And Len(Chaine) = 4 Then
        Resultat = True
    Else
        Resultat = False
    End If
End Sub
Resultat est vrai si Chaine a 4 caractères, commence par une majuscules et dont les 3 derniers caractères sont des nombre;
sinon Resultat renvoie faux.
 

jmfmarques

XLDnaute Accro
Bon. si on s'en tient aux 26 lettres majuscules de l'alphabet français :
VB:
Private Function conforme(ch As String) As Boolean
   conforme = ch Like "[A-Z]###"
End Function
pour une chaîne commençant par une majuscule suivie de 3 chiffres uniquement
et rien de plus
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo