Userform/Masque de saisie textbox ,format 0000/00

ssassam Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour tout le monde ,

Svp j'ai encore besoin de votre aide,

J'aimerais bien créer un masque de saisie pour mon texbox au format suivant "0000"/"00"

a noter que si j'entre par exemple 9/14 le format de sortie sera 0009/14

Pièce jointe : http://cjoint.com/14ma/DCAod68OIbo.htm

Exp :

0001/14
0007/14
0099/14
0358/14
9999/14

Merci pour votre aide

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    je vois que tu n'as pas eu de réponse, donc voici le code en vba

    Il faut mettre ce code dans la feuille où ce situe tes cellules:

    Option Explicit
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim pos As Integer
    Dim caract, rep As String
    On Error Resume Next 'permet de travailler sur la feuille
    rep = Target.Value 'valeur de la cellule
    If rep = "" Then Exit Sub 'si cellule vide
    pos = InStr(rep, "/") 'position du /
    If pos = 2 Then
    caract = Left(rep, 1) 'on récupère le 1er caractère
    rep = Replace(rep, caract, "000" & caract) 'on ajoute 000 au 1er carctère
    Target.Value = rep 'on actualise la cellule
    ElseIf pos = 3 Then
    caract = Left(rep, 2)
    rep = Replace(rep, caract, "00" & caract)
    Target.Value = rep
    ElseIf pos = 4 Then
    caract = Left(rep, 3)
    rep = Replace(rep, caract, "0" & caract)
    Target.Value = rep
    End If
    End Sub

    J'ai mis des commentaires pour que tu comprennes ce qui a été fait

    Bonne programmation
    1
  2. ssassam Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   1
     
    Merci beaucoup , cs_Le Pivert

    Ton code et bien mais il lui manque le mode de formatage d'une feuille

    J'ai enfin trouvé la bonne réponse

    C'est un code a intégré dans une textbox

    Private Sub TextBox1_Change()
    If Right(TextBox1, 1) = "/" Then
    TextBox1 = Format(Left(TextBox1, Len(TextBox1) - 1), "0000") & "/"
    End If
    End Sub


    Merci
    1
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voici le formatage de la feuille pour ceux que cela intéresse:

      rep = Target.Value 'valeur de la cellule
      Selection.NumberFormat = "@"

      cdlt
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Je me suis planté, je l'ai fait pour une cellule!!!!!!!!!!!

    Cela servira toujours
    0