Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…