XL 2010 VBA condition

  • Initiateur de la discussion Initiateur de la discussion spike29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
627
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
33
Affichages
3 K
Réponses
1
Affichages
441
Retour