XL 2016 format texte personnalisé

jeffe

XLDnaute Impliqué
Bonjour le Forum, je ne trouve pas la syntaxe pour personnaliser l'affichage: je tape 12345678WP et je voudrais afficher 12345678-WP j'aurai toujours 8 caraccteres et 2 lettres.
merci
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Cela n'est pas un nombre donc je pense que cela ne sera pas possible par Format/nombre
mettre les données sous mode tableau et sur la colonne à côté
VB:
=GAUCHE(M21;8)&"-"&DROITE(M21;2)
puis masquer la première colonne

JHA
 

job75

XLDnaute Barbatruc
Bonjour jeffe, JHA,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, i&, x$, chiffres$, lettres$, j%, y$
With Intersect(UsedRange.EntireRow, [A:A])
    tablo = .Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 2 To UBound(tablo)
        x = tablo(i, 1)
        chiffres = "": lettres = ""
        For j = 1 To Len(x)
            y = Mid(x, j, 1)
            If y Like "#" Then
                chiffres = chiffres & y
            ElseIf UCase(y) Like "[A-Z]" Then
                lettres = lettres & UCase(y)
            End If
        Next j
        If x = "" Then tablo(i, 1) = "" Else tablo(i, 1) = Format(Val(Left(chiffres, 8)), "0000000") & "-" & Left(Left(lettres, 2) & "??", 2)
    Next i
    '---restitution---
    Application.EnableEvents = False
    .Value = tablo
    Application.EnableEvents = True
End With
End Sub
Tapez des chiffres et des lettres en colonne A et validez.

Les 8 premiers chiffres et les 2 premières lettres sont retenues.

A+
 

Pièces jointes

  • Chiffres et lettres(1).xlsm
    18 KB · Affichages: 9

Statistiques des forums

Discussions
312 251
Messages
2 086 625
Membres
103 269
dernier inscrit
SamirSEK20