EXCEL: verifier le bon format d'une cellule.
Résolu
rapt
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous !
Je cherche à vérifier le bon format d'une cellule je m'expliques:
La cellule devrait ressembler a ça : Lettre = L , Chiffre = C
Cellule = LLLC-L(L)CCCCC la lettre entre parenthèse est optionnelle.
En gros je veux tester si il y a bien 3 lettre et un chiffre en début de cellule, juste apres vérifier qu'il y a bien un tiret, puis une lettre obligatoire avec une optionnel derriere. et 5 chiffre juste apres. Je précise que je veux pas pour le moment verifier le contenu de ces lettres ou chiffres. Quoique ^^.
Je ne sais pas si j'ai été assez claire? Je suis un novice en macro ou formule excel.
Merci d'avance pour ceux qui traineront sur mon post :)
Je cherche à vérifier le bon format d'une cellule je m'expliques:
La cellule devrait ressembler a ça : Lettre = L , Chiffre = C
Cellule = LLLC-L(L)CCCCC la lettre entre parenthèse est optionnelle.
En gros je veux tester si il y a bien 3 lettre et un chiffre en début de cellule, juste apres vérifier qu'il y a bien un tiret, puis une lettre obligatoire avec une optionnel derriere. et 5 chiffre juste apres. Je précise que je veux pas pour le moment verifier le contenu de ces lettres ou chiffres. Quoique ^^.
Je ne sais pas si j'ai été assez claire? Je suis un novice en macro ou formule excel.
Merci d'avance pour ceux qui traineront sur mon post :)
5 réponses
-
Bonjour
test avec une expression rationnelle (à vérifier) mais c'est peut-^tre un peu ardu si tu es novice. la fonction insensible à la casse, te renvoie VRAI ou FAUXFunction verifier_format(texto As String) As Boolean Dim reg As Object Dim verif As Object Set reg = CreateObject("vbscript.regexp") reg.Global = False 'admet les majuscules reg.IgnoreCase = True reg.Pattern = "^[a-z]{3,}[0-9]+[-][a-z]{1,2}[0-9]{5,}" Set verif = reg.Execute(texto) verifier_format = (verif.Count = 1) Set verif = Nothing Set reg = Nothing End Function
pour installer:
copier ce code
aller dans VBA par Alt+F11
insertion-module
coller le code
enregistrer au format "macro" si tu as XL>=2007
pour fonctionner
formules-fonction personnalisée
il faut autoriser les macros: tu dis ta version si tu ne sais pas faire
j'ai testé la fonction mais peut-^tre pas tout : a toi de jouer et dire si OK ou pas :o)
-
Bonjour, bonjour michel,
Une autre approche ?Sub Test() Dim T As Boolean T = "LLLC-L(L)22223" Like "????[-]?[(]?[)]#####" If T Then MsgBox ("Format conforme") End Sub
A+
Edit : pour que ce ne soit pas sensible à la case (accepté maju et minuscule) mettre en tête de moduleOption Compare Text
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
-
euh je me demandes ou enregistrer au fromat macro. J'ai reussi a crée le module et copier/coller le code mais je viens de chercher comment enregistrer en macro et j'avoue que je seches ^^'
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Nan c'est bon j'ai trouvé merci beaucoup a vous deux, j'ai opté pour la première réponse qui est plus claire pour moi :) (j'ai quelque notion de programmation c)
MERCI BEAUCOUP