Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Format alphanumérique

  • Initiateur de la discussion Initiateur de la discussion Bcuvillier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bcuvillier

Guest
Bonjour apres pas mal de temps a chercher, je m'abandonne a l'aide d'une ame charitable. Je cherche un format personnalisé ou code VBA peu importe, permettant d'entrée dans une cellule:
12 chiffre plus une lettre et que cela m'affiche de cette facon:
11111111.11 1.1.A je bloque pour la lettre.
 
Re : Format alphanumérique

Bonjour

La solution proposée par Staple ne fonctionne pas. Une donnée alphanumérique ne pouvant être saucissonnée dans un format de cellule. Staple fixe la lettre en dure dans le format ce qui n'est pas le cas.

Voici une des solutions en VBA, code à coller dans le code de la feuille, faire clique droit sur l'onglet de la feuille, puis sur "visualiser le code"
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'La modification du contenu sera appliquée uniquement sur les cellules de la colonnes A
Code:
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
   'Vérifie si la cellule contient 13 caractères
   If Len([Target]) = 13 Then
      'Pour éviter le bouclage à l'infi de l'événement "change"
      Application.EnableEvents = False
      [Target] = Mid([Target], 1, 8) + "." + Mid([Target], 9, 2) + " " + Mid([Target], 11, 1) + "." + Mid([Target], 12, 1) + "." + Mid([Target], 13, 1)
      'Il faut réactiver l'évémenent "change"
      Application.EnableEvents = True
   End If
End If
End Sub

Bcuvillier , j'espère avoir répondu à ta question.

@+Jean-Marie
 
Re : Format alphanumérique

Bonjour,

C'était le Application.EnableEvents = True qui me manquait 😕
Merci JeanMarie
J'étais parti sur Format ... si les 12 premiers caracteres sont toujours numériques ...


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Rows.Count = 1 Then
If Len(Target) = 13 Then
Application.EnableEvents = False
Target = Format(Left(Target, 12), "########"".""##"" ""#"".""#"".""") & Right(Target, 1)
Application.EnableEvents = True
End If
End If
End Sub


Target.Rows.Count = 1 pour pouvoir effacer les données de la colonne A.
 
Dernière édition:
Re : Format alphanumérique

Merci Jean MArie, cela marche tres bien mais (il y en a toujours un ) j'aimerai pourvoir limiter uniquemanet au lettre le dernier caractere.
Mon code alphanumerique est toujours de 12 chiffre et d'une lettre. Ensuite j'aimerai un message d'erreur si le code entrer et trop long ou trop court, l'outil validation convient il ou il vaut mieux un code VBA.
 
Re : Format alphanumérique

Merci pour les premiers coups de mains mais n'ayant pas ete assez precis, cela ne fonctionne pas sur mon fichier.
Le fichier que j'utilise est partagé entre deux pc. Il utilise un fichiser d'echange ou sont stockés les donnés. Les données sont entrés via le fichier 1 qui fonctionne de cette façon:
Dans le fichier 1; j'ai un bouton de commande qui via une macro ouvre le fichier 2 sous forme de formulaire, je rentre mes données, et quand je ferme, la macro copie le fichier et colle le contenue dans le fichier 1; enregristre le fichier 2 et le ferme.
Je sais c'est compliqué mais il n'y a que comme cela que j'ai reussit: je colle ma macro qui commande cela.


C'est dans la collonne deux du fichier 2 ou dans la colonne 2 de la feuille de destination du fichier 1 que je veux la mise en forme. Ici le fait de passer via ma macro a l'air d'annuler le code donné ci dessus.

Soyez indulgent avec ma macro, je debute et je passe par l'enregistreur pour faire cela.🙄
 
Re : Format alphanumérique

Bonsoir,

Ce que je comprends, c'est qu'en fait les données ne sont pas saisies directement mais copiées à partir d'une auter feuille ...
Dans ce cas effectivement l'evenement Change ne se gere pas de la meme façon.
J'ai modifié la macro dans le fichier joint.
Tu peux la tester, en faisant un copier/coller de la colonne 2 vers la colonne 1, ca fonctionne.

Cependant, le message d'alerte qui indique une saisie incorrecte n'est plus d'actualité en effet tu risques d'avoir 2200 fois le message ...
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
25
Affichages
2 K
Réponses
3
Affichages
589
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…