Demande d'aide

atoss77

XLDnaute Nouveau
Bonjour

j'ai effectué une mission qui consiste à relever les 5 caractères d'une plaque d'immatriculation.

Ensuite elles ont été saisie sous Excel en colonne.

Je voudrais comment je peux faire pour vérifier la saisie
sachant que une plaque peut s'écrire (X = un chiffre et L= une lettre sans espace) :
xxlll
xxxll
xxxxl
llxxx


merci pour votre aide
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Demande d'aide

Bonjour tout le monde, Jean-Claude:)
@Pierrot:) j'adore ton humour...
peut-être avec une fonction personnalisée en utilisant RegExp (pensée pour JNP:)):
Code:
Function Teste(ATester As String) As Boolean
Dim Match, Matches
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "^(\d{2}[a-zA-Z]{3}|\d{3}[a-zA-Z]{2}|\d{4}[a-zA-Z]{1}|[a-zA-Z]{2}\d{3})$"
    Set Matches = .Execute(ATester)
    If Matches.Count = 1 Then Teste = True Else Teste = False
End With
End Function
Testé rapidement donc à vérifier les différents cas de figure.
Pattern à enrichir selon les cas non prévus actuellement.
A+
EDit : le pattern actuel accepte les lettres minuscules : est-ce ce que tu veux ? Sinon le remplacer par
Code:
.Pattern = "^(\d{2}[A-Z]{3}|\d{3}[A-Z]{2}|\d{4}[A-Z]{1}|[A-Z]{2}\d{3})$"
 
Dernière édition:

TempusFugit

XLDnaute Impliqué
Re : Demande d'aide

Bonjour

david84: tu me permets d'employer mon premier IIF de ce début d'aprés-midi
Quoi que finalement on peut même s'en affranchir.

Code:
Function Teste(ATester As String) As Boolean
Dim Match, Matches
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "^(\d{2}[a-zA-Z]{3}|\d{3}[a-zA-Z]{2}|\d{4}[a-zA-Z]{1}|[a-zA-Z]{2}\d{3})$"
    Set Matches = .Execute(ATester)
    Teste= (Matches.Count = 1) 
End With
End Function
 

tototiti2008

XLDnaute Barbatruc
Re : Demande d'aide

Bonjour à tous,

peut-être en formule, sinon
en B2 le numéro de plaque, renverra VRAI si valide

Code:
=ESTNUM(EQUIV((SI(ET(CODE(STXT(B2;1;1))>47;CODE(STXT(B2;1;1))<58);"x";"l")&SI(ET(CODE(STXT(B2;2;1))>47;CODE(STXT(B2;2;1))<58);"x";"l")&SI(ET(CODE(STXT(B2;3;1))>47;CODE(STXT(B2;3;1))<58);"x";"l")&SI(ET(CODE(STXT(B2;4;1))>47;CODE(STXT(B2;4;1))<58);"x";"l")&SI(ET(CODE(STXT(B2;5;1))>47;CODE(STXT(B2;5;1))<58);"x";"l"));{"xxlll";"xxxll";"xxxxl";"llxxx"};0))
 

JBOBO

XLDnaute Accro
Re : Demande d'aide

Bonjour,

Une autre solution mais le resultat reste le meme :
=OU(SI(ESTNUM(CNUM(STXT(B2;1;1)))=VRAI;"x";"l")&SI(ESTNUM(CNUM(STXT(B2;2;1)))=VRAI;"x";"l")&SI(ESTNUM(CNUM(STXT(B2;3;1)))=VRAI;"x";"l")&SI(ESTNUM(CNUM(STXT(B2;4;1)))=VRAI;"x";"l")&SI(ESTNUM(CNUM(STXT(B2;5;1)))=VRAI;"x";"l")={"xxlll";"xxxll";"xxxxl";"llxxx"})
 

Discussions similaires

Statistiques des forums

Discussions
312 470
Messages
2 088 699
Membres
103 927
dernier inscrit
Mkeal