Imposer à la cellule un certain format

simraill

XLDnaute Occasionnel
Bonjour tout le monde,

Je voudrais pouvoir faire en sorte que quand l'utilisateur tape un numéro de commande, cela le remette au format voulu quelque soit la façon dont il le tape.

Un exemple parlera mieux :

Je veux imposer le format "AA 12 1111", où AA représente deux lettre, 12 représente l'année et 1111 représente quatre chiffre, et le tout avec les espaces avant et après l'année.

Par exemple l'utilisateur rentre "AA121111" ou "AA 121111" ou "AA12 1111" etc etc... et que la cellule remette automatiquement "AA 12 1111".

Que avec des chiffres j'arrive à le faire grâce au format de cellule personalisé, mais avec les deux lettre je trouve pas...

Voilà j'éspére avoir été clair dans mes explication et vous remercie d'avance pour vos solutions :D!
 

Gurgeh

XLDnaute Occasionnel
Re : Imposer à la cellule un certain format

Salut simraill,

On peut le faire avec une macro qui s'exécute à chaque modification d'une cellule de la feuille, et qui modifie ce qu'a tapé l'utilisateur pour le faire correspondre avec le format que tu attends.

Est ce que cela peut répondre à ton besoin, ou bien l'utilisation d'une macro est-elle prohibée ?

Gurgeh
 

simraill

XLDnaute Occasionnel
Re : Imposer à la cellule un certain format

Salut Gurgeh,

Oui cela me conviendrais parfaitement, j'ai déjà une demi douzaine de macro, donc une de plus une de moins :D!
Mais que mettre dans cette macro pour qu'elle prenne tous les cas en compte?
 

Gurgeh

XLDnaute Occasionnel
Re : Imposer à la cellule un certain format

En fait on pourrait imaginer quelque chose comme ça : j'enlève tous les espaces de ce qui a été tapé, et si la longeur obtenue est suffisante, je remets sous la forme "xx xx xxxx..."

Gurgeh
 

Papou-net

XLDnaute Barbatruc
Re : Imposer à la cellule un certain format

Bonjour simraill,

Sur l'idée initiale de Gurgeh, que je salue au passage, voici un exemple de macro à insérer dans le module de code de ta feuille concernée :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)If Intersect(Range("A1:A10,C1:C10"), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Value = Replace(Target.Value, " ", "")
Target.Value = Left(Target.Value, 2) & " " & Mid(Target.Value, 3, 3) & " " & Mid(Target.Value, 6)
Application.EnableEvents = True
End Sub
Cette macro ne se déroule que si la cellule modifiée est dans une des plages "A1:A10" ou "C1:C10". A toi d'adapter ces zones à ton application.

Cordialement.
 

simraill

XLDnaute Occasionnel
Re : Imposer à la cellule un certain format

Merci Gurgeh pour l'idée et merci Papou-net pour la macro :)!

Je me suis rajouter un UCase pour mettre mes deux première lettre en majuscule et c'étais niquel ^^!

Par contre il est impossible de mettre le if directement derrière la declaration de la sub, faut le descendre en dessous.

Merci à vous deux pour l'aide ;)!
 

Discussions similaires

Réponses
3
Affichages
348

Statistiques des forums

Discussions
314 450
Messages
2 109 729
Membres
110 553
dernier inscrit
loic55