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!

Re


La formule ne s'efface pas, elle ne s'affiche pas si A1 est vide.

Ou est le problème dans ce cas?

PS: Tu peux essayer cette variante
Code:
=SI(A1<>"";MAJUSCULE(STXT(A1;1;4)&" "&STXT(A1;5;3)&" "&STXT(A1;8;2));"Saisir immatriculation en "&ADRESSE(LIGNE();COLONNE()-1;4)&",svp")

A+
 
Dernière édition:
Re : Formater chaine pour immatriculation!

Bonjour,

Pour Demax :

Un format personnalisé sur une cellule ne s'applique sur sur un nombre.

Dans ton cas, une immatriculation ne peut être assimilée à un nombre et donc il n'est pas possible de définir un format.

En VBA, peut-être, mais là, je laisse la main aux Vbaïstes.

@+
 
Re : Formater chaine pour immatriculation!

Salut,

Si ton numéro est en A1, tu peux utiliser la fonction : =Plaque(A1)

Code:
Function Plaque(num As String) As String
Plaque = Left(num, 4) & " " & Mid(num, 5, 3) & " " & Right(num, 2)
End Function

A +
 
Re : Formater chaine pour immatriculation!

deja merci de toutes vos solutions mais je ne trouve pas mon bonheur😕
donc je veux sur une colonne entrer les immat (fr;it;es):
1234 ABC 01
123 AB 01
AB 123 SD
0123 BCD
etc...
donc toutes ces immats on une relation espaces entre chiffres et lettres + majuscules.et je veux eviter les formules matricielles sinon ca me fais double affichage ca fait fouilli et je trouve plus serieux le vba
James 007 je n'ai pas pu faire fonctionner la fonction : =Plaque(A1)
merci A+
 
Re : Formater chaine pour immatriculation!

disons qu'il peux avoir des plaques allemande italie etc..
j'ai trouvé une piste qui pourrez m'aider mais je n'arrive à le coder.
la fonction IsNumeric me plais pas mal je pense avec une condition ex:
if IsNumeric() ...then
+" "+"value"+" "+
😱
ok C un drole de code mais je cherche dans cette direction à moins que je plante!🙁

A+
 
Re : Formater chaine pour immatriculation!

Bonsoir à tous,
Une fonction en VBA ?
Code:
Function [COLOR="DarkRed"]affiche_proprement[/COLOR](s As String) As String                                                      [COLOR="SeaGreen"]' 0[/COLOR]
Dim f As Integer, g As Integer, r As String                                                             [COLOR="SeaGreen"]' 1[/COLOR]
    r = "": g = -1                                                                                      [COLOR="SeaGreen"]' 2[/COLOR]
    Do While Len(s)                                                                                    [COLOR="SeaGreen"] ' 3[/COLOR]
        Select Case Asc(s)                                                                              [COLOR="SeaGreen"]' 4[/COLOR]
            Case 45, 160: f = g >= 0        [COLOR="SeaGreen"]'conservation de "-" comme séparateur                       ' 5*[/COLOR]
            Case 46                         [COLOR="SeaGreen"]'"."empêche l'insertion d'une espace                        ' 6°[/COLOR]
            Case 95: s = Replace(s, "_", " ", 1, 1): f = g >= 0 [COLOR="SeaGreen"]'remplacement de "_" par une espace     ' 7*[/COLOR]
            Case 48 To 57: f = 1            [COLOR="SeaGreen"]'chiffre                                                    ' 8*[/COLOR]
            Case 65 To 90, 97 To 122: f = 2 [COLOR="SeaGreen"]'lettre majuscule ou minuscule, sans accent                 ' 9*[/COLOR]
            Case Else: f = 0                [COLOR="SeaGreen"]'autre caractère                                            '10[/COLOR]
        End Select                                                                                     [COLOR="SeaGreen"] '11[/COLOR]
        If f Then                           [COLOR="SeaGreen"]'chiffre ou lettre ou "-"                                   '12[/COLOR]
            If f > 0 And f <> g And g > 0 Then r = r & " "  [COLOR="SeaGreen"]'espace sauf en début de ligne ou après "-" '13[/COLOR]
            r = r & Left$(s, 1): g = f                                                                  [COLOR="SeaGreen"]'14[/COLOR]
        End If                                                                                          [COLOR="SeaGreen"]'15[/COLOR]
        s = Right$(s, Len(s) - 1)                                                                       [COLOR="SeaGreen"]'16[/COLOR]
    Loop                                                                                                [COLOR="SeaGreen"]'17[/COLOR]
    r = Replace(r, ". ", "", 1, -1)                                                                     [COLOR="SeaGreen"]'18°[/COLOR]
    [COLOR="DarkRed"]affiche_proprement[/COLOR] = UCase(r)           [COLOR="SeaGreen"]'toutes les lettres en majuscules                           '19*[/COLOR]
End Function                                                                                            [COLOR="SeaGreen"]'20[/COLOR]
Pour des exemples, voir le classeur joint.​
Bonne nuit !
ROGER2327
 

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