Comment appliquer des "Rules" dans une cellule

Résolu
infopige Messages postés 13 Statut Membre -  
JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    .. et avez vous une liste des valeurs possibles admises dans la cellule?
    à vous lire
    0
  2. infopige Messages postés 13 Statut Membre
     
    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
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
  3. infopige Messages postés 13 Statut Membre
     
    É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
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
    2. ducdosteflem
       
      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
  4. infopige Messages postés 13 Statut Membre
     
    Je ne crois pas utiliser le 00a, b, c. etc.

    En vous remerciant de votre aide précieuse!

    Ingopige
    0
    1. ducdosteflem
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  7. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    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