Format text box
Résolu/Fermé
surplus
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
14 novembre 2021
-
14 mars 2014 à 02:03
surplus Messages postés 673 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 - 25 mars 2014 à 13:37
surplus Messages postés 673 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 - 25 mars 2014 à 13:37
Bonjour,
j'aurais besoin de savoir si on peut enregistrer la valeur d'un textbox sous 2 formats différents
je m'explique c'est pour un textbox ou sera rentrée une immatriculation
1) les anciennes immat commencent par des chiffres ex: 0000 PLA 00 les lettres sont 2 ou 3
2)les nouvelles commencent par des lettres ex: "CV-875-LV" 2 lettres 3 chiffres 2 lettres
donc si je rentre des chiffres en premier formater en ex 1 si je rentre des lettres en 1er formater en ex 2
merci de votre aide
a bientôt
j'aurais besoin de savoir si on peut enregistrer la valeur d'un textbox sous 2 formats différents
je m'explique c'est pour un textbox ou sera rentrée une immatriculation
1) les anciennes immat commencent par des chiffres ex: 0000 PLA 00 les lettres sont 2 ou 3
2)les nouvelles commencent par des lettres ex: "CV-875-LV" 2 lettres 3 chiffres 2 lettres
donc si je rentre des chiffres en premier formater en ex 1 si je rentre des lettres en 1er formater en ex 2
merci de votre aide
a bientôt
A voir également:
- Format text box
- Format epub - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
- Format dat - Guide
- Hp format tool - Télécharger - Stockage
5 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
14 mars 2014 à 12:32
14 mars 2014 à 12:32
Bonjour,
Voici une macro qui fait cela
Cliquer dans le TextBox et mettre cette macro
Voici une macro qui fait cela
Cliquer dans le TextBox et mettre cette macro
Option Explicit
Dim num As Boolean
Private Sub TextBox1_Change()
If num = True Then '1er caractère
Dim Valeur As Byte
'ancien
TextBox1.MaxLength = 11 'nb caracteres maxi dans textbox
Valeur = Len(TextBox1)
If Valeur = 4 Or Valeur = 8 Then TextBox1 = TextBox1 & " "
Else
'nouveau
TextBox1.MaxLength = 9 'nb caracteres maxi dans textbox
Valeur = Len(TextBox1)
If Valeur = 2 Or Valeur = 6 Then TextBox1 = TextBox1 & "-"
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not IsNumeric(Chr(KeyAscii)) And Not Chr(KeyAscii) = ":" Then
num = False
Else
num = True
End If
End Sub
surplus
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
14 novembre 2021
4
14 mars 2014 à 14:50
14 mars 2014 à 14:50
Bonjour
c'est pas tout a fait ça
on arrive pas a avoir 4 chiffres alignes ex 2550 MN 17
et pour les lettres on obtient ml-1 25lm
mon textbox est TextBox125 donc tout ce qui est TexBox1 j ai renommé en TextBox125
a+++
c'est pas tout a fait ça
on arrive pas a avoir 4 chiffres alignes ex 2550 MN 17
et pour les lettres on obtient ml-1 25lm
mon textbox est TextBox125 donc tout ce qui est TexBox1 j ai renommé en TextBox125
a+++
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
14 mars 2014 à 17:56
14 mars 2014 à 17:56
J'ai corrigé le code. Mais il restera un problème si dans les anciennes plaques tu as 3 chiffres ou 3 lettres et dans les nouvelles si tu as 2 chiffres.
Code valable pour 4 chiffres, 2 lettres et 2 chiffres (ancienne numérotation)
2 lettres, 3 chiffres et 2 lettres (nouvelle numérotation)
Option Explicit
Dim num As Boolean
Dim caract As String
Private Sub TextBox1_Change()
If num = True Then '1er caractère
Dim Valeur As Byte
'ancien
TextBox1.MaxLength = 11 'nb caracteres maxi dans textbox
Valeur = Len(TextBox1)
If Valeur = 4 Or Valeur = 8 Then TextBox1 = TextBox1 & " "
Else
'nouveau
TextBox1.MaxLength = 9 'nb caracteres maxi dans textbox
Valeur = Len(TextBox1)
If Valeur = 2 Or Valeur = 6 Then TextBox1 = TextBox1 & "-"
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
caract = Left(TextBox1.Value, 1)
If IsNumeric(caract) Then
num = True
Else
num = False '
End If
End Sub
Code valable pour 4 chiffres, 2 lettres et 2 chiffres (ancienne numérotation)
2 lettres, 3 chiffres et 2 lettres (nouvelle numérotation)
surplus
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
14 novembre 2021
4
24 mars 2014 à 23:12
24 mars 2014 à 23:12
bonsoir
je relance ce post pour une question
comment on peut affecter cette macro a la cellule C13 d'une feuille?
merci
je relance ce post pour une question
comment on peut affecter cette macro a la cellule C13 d'une feuille?
merci
surplus
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
14 novembre 2021
4
14 mars 2014 à 19:46
14 mars 2014 à 19:46
bonsoir
merci pour ton aide je vais faire avec ça vu que mon département est avec 2 chiffres en anciennes plaques ça fera l'affaire
merci
bon week-end
a bientôt
merci pour ton aide je vais faire avec ça vu que mon département est avec 2 chiffres en anciennes plaques ça fera l'affaire
merci
bon week-end
a bientôt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
25 mars 2014 à 11:48
25 mars 2014 à 11:48
Il faut mettre ce code dans la feuille où ce situe ta cellule:
2 lettres, 3 chiffres et 2 lettres (nouvelle numérotation)
Tu entres ton immatriculation sans espace ou tiret et ensuite tu cliques sur ta cellule, cela sera corrigé.
Option ExplicitCode valable pour 4 chiffres, 2 lettres et 2 chiffres (ancienne numérotation)
Dim num As Boolean
Dim caract, Rep As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$13" Then
Rep = Range("C13").Value
caract = Left(Rep, 1)
If IsNumeric(caract) Then
num = True
Else
num = False
End If
If num = True Then '1er caractère
Dim Valeur As Byte
'ancien
Rep = Range("C13").Value
Valeur = Len(Rep)
If Valeur > 10 Then Exit Sub 'si valeur exacte
caract = Left(Rep, 3)
Rep = Replace(Rep, caract, caract & " ") 'ajout espace à gauche
caract = Right(Rep, 2)
Rep = Replace(Rep, caract, " " & caract) 'ajout espace à droite
Range("C13").Value = Rep
Else
'nouveau
Rep = Range("C13").Value
Valeur = Len(Rep)
If Valeur > 8 Then Exit Sub 'si valeur exacte
caract = Left(Rep, 2)
Rep = Replace(Rep, caract, caract & "-") 'ajout - à gauche
caract = Right(Rep, 2)
Rep = Replace(Rep, caract, "-" & caract) 'ajout - à droite
Range("C13").Value = Rep
End If
End If
End Sub
2 lettres, 3 chiffres et 2 lettres (nouvelle numérotation)
Tu entres ton immatriculation sans espace ou tiret et ensuite tu cliques sur ta cellule, cela sera corrigé.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
25 mars 2014 à 12:00
25 mars 2014 à 12:00
erreur
Code valable pour 3 chiffres, 3 lettres et 2 chiffres (ancienne numérotation)
à adapter
Code valable pour 3 chiffres, 3 lettres et 2 chiffres (ancienne numérotation)
à adapter
surplus
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
14 novembre 2021
4
25 mars 2014 à 13:37
25 mars 2014 à 13:37
Bonjour
ca marche bien ce que je voulais
merci
a bientot
ca marche bien ce que je voulais
merci
a bientot