Re : Format texte sur Excel 2003
amcor à dit:
Je voudrais que l'on puisse saisir dans une cellule un texte sans espace comme suit : CWF000101F
mais qu'après validation de la saisie le format du texte soit : C WF 0001 01 F
Pour obtenir cela, il suffit de mettre une macro évenementielle sur la feuille concernée. Je te propose ceci :
Public curr As Range ' cellule courante saisie
Const plag = "F:F" ' plage de saisie à formater
Private Sub Worksheet_Change(ByVal sel As Range)
If Not Application.Intersect(sel, Range(plag)) Is Nothing Then
If curr Is Nothing Then
Call modif_format(sel)
Else
If Not curr = sel Then Call modif_format(sel)
End If
End If
End Sub
Sub modif_format(cel As Range) ' cellule saisie à formater
Set curr = cel
If Not Len(cel.Value) = 10 Then Exit Sub
cel.Value = Mid(cel.Value, 1, 1) & " " & Mid(cel.Value, 2, 2) & " " & Mid(cel.Value, 4, 4) & " " & Mid(cel.Value, 8, 2) & " " & Mid(cel.Value, 10, 1)
End Sub
Il suffit de modifier la valeur de la plage pour l'adapter à ton cas.
Dès que la saisie est validée, le format est mis en place.
Si tu corriges une saisie déjà formatée, il n'y a pas de modification.