Formater chaine pour immatriculation!

  • Initiateur de la discussion Initiateur de la discussion demax
  • 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 !

demax

XLDnaute Occasionnel
Bonjour à tous ,😉
Je souhaiterais rentrer une serie d'immatriculation dans une colonne
ex: 1234 ABC 01
donc espaces en chiffres et lettres en fait puis majuscule pour les lettres
j'ai cherché plusieurs possibilite dans format cellule mais en vain.
et sur le net non plus est ce possilble?
merci
 
Re : Formater chaine pour immatriculation!

vbacrumble , ROGER2327
Impressionnant😱 vous etes au top
ces deux formules me conviennent tout à fait.
Il me faut juste eviter de passer par un bouton et pouvoir effacer la colonne enregistré.
CàD je rentre une immat dans la colonne B1
puis enter
je passe à la suivant B2 et ainsi de suite
j'imprime
puis j'efface la colonne B et je repars sur autre chose mais la formule de ROGER2327 me cause probleme car il y a la function dans la cellule.

Donc je pense que ca commence comme ca
Private Sub Worksheet_Change(ByVal Target As Range)
...
End Sub😎
A+
 
Re : Formater chaine pour immatriculation!

Bonjour,
Une solution de plus
Dans un module standard
Code:
Public Function PLAQUE(x As String)
Dim V As New Collection
x = Replace(x, " ", "")
For i = 1 To Len(x)
    y = Mid(x, i, 1)
    If Not IsNumeric(y) Then
        V.Add CStr(y)
        Else
        V.Add CInt(y)
    End If
Next
For j = 1 To V.Count
    If TypeName(V.Item(j)) <> TypeName(V.Item(j + 1)) Then
        V.Add " ", , , j
        j = j + 1
    End If
Next
For k = 1 To V.Count
    z = z & V.Item(k)
Next
PLAQUE = UCase(z)

End Function
Et dans le module de la feuille pour transformation directe de la cellule
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Anc As String, Nouv As String
If Target.Column = 2 And Target.Row > 2 And Target.Count = 1 Then
    Anc = Target
    Nouv = PLAQUE(Anc)
    Application.EnableEvents = False
    Target = Nouv
End If
    Application.EnableEvents = True

End Sub
A+
kjin
 

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

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
12
Affichages
3 K
Compte Supprimé 979
C
Retour