Comment appliquer des "Rules" dans une cellule

Résolu/Fermé
infopige Messages postés 11 Date d'inscription jeudi 16 août 2012 Statut Membre Dernière intervention 8 juin 2013 - 8 janv. 2013 à 16:57
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 9 janv. 2013 à 11:20
Bonjour,
J'utilise Excel 2007 (anglais) et on me demande d'insérer une règle pour le formatage d'une cellule et je ne sais pas comment faire. EX: pour aider les différents intervenants à compléter adéquatement lesdites cellules, je dois les formater pour entrer seulement 3 caractères alpha-numérique, sans majuscule ni espace et pas de symbole ou ponctuation. Les résultats possibles devraient être comme suit: 01a, 10g, 09d, etc.

Merci de votre aide et Bonne Année!


Infopige

6 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
8 janv. 2013 à 17:02
Bonjour
.. et avez vous une liste des valeurs possibles admises dans la cellule?
à vous lire
0
infopige Messages postés 11 Date d'inscription jeudi 16 août 2012 Statut Membre Dernière intervention 8 juin 2013
8 janv. 2013 à 17:09
Bonjour,

Les valeurs attendues et possibles se situent entre 01a à 12z et peuvent être comme suit: 01a, 01b, 05k, etc
donc seulement 3 caractères alpha-numérique, sans lettre majuscule, sans espace, sans caractère spécial ni ponctuation. Est-ce que ça répond à votre question?

Merci

Infopige
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
Modifié par Vaucluse le 8/01/2013 à 17:15
Non... je ne connais pas de solution qui permette de formater une cellule dans ces conditions. Je demandais simplement si vous aviez la liste complète des valeurs qui peuvent être entrées dans cette cellule, auquel cas il suffisait d'en établir la liste et de passer par une validation de données.
Mais si vous n'avez pas toute la liste, il va falloir attendre un autre secours. Je pense qu'il faudra passer par VBA, mais on n'est sur de rien.

crdlmnt
0
infopige Messages postés 11 Date d'inscription jeudi 16 août 2012 Statut Membre Dernière intervention 8 juin 2013
8 janv. 2013 à 17:37
Évidemment que je pourrais créer une telle liste mais elle serait vraiment exhaustive (01a à 01z, 02a à 02z, etc jusqu'à 12z), il y a sûrement une façon plus rapide que le "Vlookup".
Je vous remercie de votre aide....

Infopige
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 416
Modifié par Vaucluse le 8/01/2013 à 18:10
Alors je n'ai trouvé que ça dans mes tiroirs en version française
Données / validation / personnalisé et la formule: (pour cellule F1)
:
=ET(GAUCHE(F1;2)*1<13;NBCAR(F1)=3;NON(ESTNUM(DROITE(F1;1)*1)))

cette formule exige:
que les deux premiers caractères soient numériques
que le nombre de caractère (blanc inclus au cas ou) ne dépasse pas trois
que le dernier caractère ne soit pas numérique
mais elle n'exclut pas la possibilité de placer un autre caractère en fin de libellé.

Vous pouvez aussi tenter:
de créer une liste hors champ ,de lettre de A à Z que vous nommerez par exemple ALPHA:
la formule de validation serait alors:
=ET(GAUCHE(F1;2)*1<13;NBCAR(F1)=3;EQUIV(DROITE(F1;1);ALPHA;0)>0)
et dans ce cas seule une lettre de l'alphabet peut terminer le libellé.

bonne chance

crdlmnt
0
Bonsoir le fil

bien vu, Vaucluse !
il ne reste plus qu'à traiter le 00a ... , si ce code n'est pas dispo

Bonne suite
Cordialement
0
infopige Messages postés 11 Date d'inscription jeudi 16 août 2012 Statut Membre Dernière intervention 8 juin 2013
8 janv. 2013 à 21:30
Je ne crois pas utiliser le 00a, b, c. etc.

En vous remerciant de votre aide précieuse!

Ingopige
0
Bonsoir,

alors un simple rajout dans la fonction ET() :
GAUCHE(F1;2)*1>0;
suffira

Bonne suite et Merci Vaucluse

Edit : encore une trouvaille : la virgule et les (:)
mais là, je sèche, ou bien reprendre la fin de formule pour l'appliquer à gauche, avec une plage numérique (01, 02, 03, etc..) nommée (ex: NUMER) au Format TEXTE

l'ensemble devient :
' =ET(EQUIV(GAUCHE(F1;2);NUMER;0)>0;NBCAR(F1)=3;EQUIV(DROITE(F1;1);ALPHA;0)>0)

ce "filtre" devrait bien limiter les dérives
Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
Modifié par eriiic le 8/01/2013 à 23:21
Bonsoir à tous,

celle-ci devrait être complète, contrôle minuscule compris :
=ET(NBCAR(A1)=3;GAUCHE(A1;1)>="0";GAUCHE(A1;1)<="9";STXT(A1;2;1)>="0";STXT(A1;2;1)<="9";CODE(DROITE(A1;1))>=97;CODE(DROITE(A1;1))<=108;GAUCHE(A1;2)*1<=12)

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
9 janv. 2013 à 11:20
Bonjour à tous,

une proposition à base d'expressions régulières :
Function saisie_ok(macellule)
    Dim regEx As New VBScript_RegExp_55.RegExp
    regEx.Pattern = "^(0[1-9]|1[0-2])\w$"
    regEx.IgnoreCase = False
    regEx.Global = True
    saisie_ok = regEx.Test(macellule)
End Function
Ne pas oublier de charger la référence Microsoft VBScript_RegExp_55.RegExp
L'intérêt réside dans l'adaptabilité à n'importe quelle règle (moyennant l'écriture du bon pattern quand même!).

Cordialement
0