Excel : espace entre chiffre et lettre

crocro33 -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je cherche à afficher un code alpha numérique dans une feuille Excel.

Le code sera toujours composé de la même manière: 4 lettres, 2 chiffres 1 lettre, 1 chiffre.

Afin de vérifier que la saisie n'oublie rien je souhaite que l'affichage insère un espace entre lettres et chiffres de manière à visualiser rapidement les erreurs de saisie.

Avec une suite de chiffres je sais faire, mais avec le mélange chiffre ET lettres rien de ce que je connais ne fonctionne...

7 réponses

  1. Lentzouille2 Messages postés 1000 Statut Membre 39
     
    Bonjour,

    Tu peux rajouter une colonne et mettre cette formule

    =GAUCHE(B2;4)& " " & DROITE(GAUCHE(B2;6);2)& " " & DROITE(GAUCHE(B2;7);1)& " " & DROITE(B2;1)

    En supposant que B2 soit ton code !
    0
  2. crocro33
     
    J'aimerai que cela se fasse directement à la saisie, pas en rajoutant une colonne qui reprend les données saisies dans la colonne d'à côté.
    0
    1. Lentzouille2 Messages postés 1000 Statut Membre 39
       
      OK bon courage et derien !

      Le mot "merci" ne dois pas faire parti de ton vocabulaire
      0
  3. crocro33
     
    Lorsque je discute avec quelqu'un je ne dis pas merci à chaque message, mais en général lorsque le sujet est clos...

    Merci de ta réponse.

    Qui ne répond pas à mes attentes.
    0
    1. Lentzouille2 Messages postés 1000 Statut Membre 39
       
      Et un merci d'avance ? on est bénévole et on prend du temps pour résoudre tes problèmes !

      En même temps tu aurais écris que tu ne voulais pas rajouter de colonne je n'aurai même pas chercher !
      Ma réponse convient "parfaitement" à ton 1er message, c'est juste une façon détourner de ce que tu souhaites
      0
    2. crocro33
       
      Tu sais si je savais ce que je voulais je ne poserai pas la question :-)

      Merci de ton implication
      0
  4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    peut être avec cette option:

    sélectionner le champ de vos codes

    Données / Validation et choisissez: "personnalisé"
    entrez cette formule qui correspond à un champ commençant en A1

    =ET(STXT(A1;5;1)=" ";STXT(A1;8;1)=" ";STXT(A1;10;1)=" ")

    l'adresse de cellule dans la formule est celle de la 1° en haut à gauche du champ sélectionné.

    cette validation n'acceptera pas d'entrée si les trois blancs ne sont pas aux bons endroits.

    crdlmnt

    ps si vous voulez aussi contrôler la longueur du code, rajoutez une condition:

    =ET(STXT(A1;5;1)=" ";STXT(A1;8;1)=" ";STXT(A1;10;1)=" ";NBCAR(A1)=11)

    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    0
    1. crocro33
       
      Merci mais je ne veux pas taper les blancs justement je souhaite taper au kilomètre et qu'Excel fasse la mise en forme.
      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
     
    Bonjour tout le monde,

    Si tu veux ajouter des espaces sans utiliser de colonne supplémentaire il faut utiliser VBA...

    Sinon tant qu'à faire autant contrôler intégralement la saisie, l'ajout d'espace devient inutile.

    Contrôle par une validation personnalisée :
    =($B2="")+(NBCAR($B2)=8)*((SOMMEPROD(NON(ESTNUM(STXT(GAUCHE($B2;4)&STXT($B2;7;1);LIGNE($1:$5);1)*1))*1)+SOMMEPROD(ESTNUM((STXT(STXT($B2;5;2)&DROITE($B2;1);LIGNE($1:$3);1))*1)*1))=8)

    Contrôle pour une MFC :
    =NON(($B6="")+(NBCAR($B6)=8)*((SOMMEPROD(NON(ESTNUM(STXT(GAUCHE($B6;4)&STXT($B6;7;1);LIGNE($1:$5);1)*1))*1)+SOMMEPROD(ESTNUM((STXT(STXT($B6;5;2)&DROITE($B6;1);LIGNE($1:$3);1))*1)*1))=8))

    exemple

    eric
    0
    1. crocro33
       
      permet de controler la pertinence de la saisie, je garde la formule dans un coin, mais ce n'est pas mon problème actuel.

      Quant à utiliser VBA, cela dépasse de très loin mes compétences

      Merci
      0
  7. crocro33
     
    merci à tous d'avoir planché dessus.

    Mais rien ne me convient.

    En fait lorsque je taperai aaaa99x3

    je veux afficher aaaa 99 x 3

    tout bêtement.

    Je pensais à un format de cellules personnalisé, mais il semble ne pas y en avoir avec lettres et chiffres mélangés...
    0
  8. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Re,

    en VBA, traite une saisie en colonne B si 8 caractères :
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column <> 2 Or Len(Target) <> 8 Then Exit Sub
        Target = Left(Target, 4) & " " & Mid(Target, 5, 2) & " " & Mid(Target, 7, 1) & " " & Right(Target, 1)
    End Sub

    Clic-droit sur le nom de l'onglet concerné, coller le code.
    0