Format personnalisé lettre & chiffre

Airone784

XLDnaute Occasionnel
Bonjour,

Dans une colonne de ma feuille excel je tape le texte suivant :
B0511Z1

J'aimerais via le format personnalisé obtenir ceci : B-05-11-Z-1
Par la suite le format sera toujours le même (lettre"-"chiffrechiffre"-"chiffrechiffre"-"lettre"-"chiffre). Seules les valeurs peuvent changer (exemple : C-04-03-L-2).

J'ai tenté en vain donc d'obtenir ce format et je n'ai pas trouvé ou mal cherché sur le forum une réponse à ce problème :(

Merci d'avance pour votre aide.

Cordialement.
 

Renaud75015

XLDnaute Junior
Re : Format personnalisé lettre & chiffre

Les formats personnalisés te permettent de faire suivre ou précéder un chiffre ou un nombre d'un texte, mais pas d'alterner successivement texte et nombre. Une possibilité est de saisir le nombre dans une colonne - ou une ligne - donnée et d'afficher le résultat dans une autre colonne ou ligne, en se servant des formules droite(), gauche() et stxt().
 

Airone784

XLDnaute Occasionnel
Re : Format personnalisé lettre & chiffre

Bonjour,

Tout d'abord merci à toi Renaud pour ta contribution.
Gilbert, ta programmation répond bien au format que je souhaite. Ce qui me gêne en revanche, c'est d'être obligé de passer par une cellule intermédiaire. Dans l'exemple que tu as joint, je suis obligé de taper b0101a1 dans A1 pour obtenir le bon format en B1. Ne pourrait-on pas imaginer taper cela en A1 et que ca convertisse directement la case A1 au bon format???

Merci en tout cas pour l'investissement ;)
 

gilbert_RGI

XLDnaute Barbatruc
Re : Format personnalisé lettre & chiffre

alors comme ceci

Code:
Function test(text)
    test = Left(text, 1) & "-" & Mid(text, 2, 2) & "-" & Mid(text, 4, 2) & "-" & Mid(text, 6, 1) & "-" & Right(text, 1)
End Function

et dans la cellule ecrire

=test("B0511Z1")
 

gilbert_RGI

XLDnaute Barbatruc
Re : Format personnalisé lettre & chiffre

et pour améliorer un peu en cas d'erreur de saisie

Code:
Function test(text)
If Len(text) <> 7 Then MsgBox "Erreur": Exit Function
    test = Left(text, 1) & "-" & Mid(text, 2, 2) & "-" & Mid(text, 4, 2) & "-" & Mid(text, 6, 1) & "-" & Right(text, 1)
End Function
 

Airone784

XLDnaute Occasionnel
Re : Format personnalisé lettre & chiffre

Ça fait beaucoup de texte à taper en plus à mon goût!! Je suis difficile j'avoue!!
Je recherche à combiner le code de ta fonction du 1er fichier joint à l'événement worksheet_change!!
 

Airone784

XLDnaute Occasionnel
Re : Format personnalisé lettre & chiffre

Oui mais avec cette fonction ça fonctionne

Bon courage

Je suis tout à fait d'accord et je t'en remercie grandement. C'est juste que replacé dans le contexte de la feuille où je veux utiliser ton code, j'ai environ 40 lignes à remplir avec différentes écritures.
Donc pour chaque ligne, si je dois taper =test("ma référence"), j'ai aussi vite fait de taper directement dans la cellule sans aucune mise en forme B-05-01-A-1.
D'où ma remarque. Je vais donc essayer à travailler ton code associé avec un worksheet_change qui recopierait le texte saisit dans une cellule tampon. Puis je demanderais à la cellule tampon de transformer mon texte dans la mise en forme voulue et je le recopie dans la cellule de saisie du départ.

Merci à toi.
 

gilbert_RGI

XLDnaute Barbatruc
Re : Format personnalisé lettre & chiffre

ou alors écrire toutes les données dans une colonne puis lancer cette macro

Code:
Sub montest()
Dim rep As Integer
rep = InputBox("Indiquez le numéro de colonne à modifier")
lg = Feuil1.Cells(65536, rep).End(xlUp).Row
For i = 1 To lg
mtext = Cells(i, rep).Value
    mtest = Left(mtext, 1) & "-" & Mid(mtext, 2, 2) & "-" & Mid(mtext, 4, 2) & "-" & Mid(mtext, 6, 1) & "-" & Right(mtext, 1)
Cells(i, rep).Value = mtest
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95