J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc.
<textbox1.value = format(textbox1.value,"00 00 00 00 00")>
Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00"
apparaissent et ma saisie commence par la droite en effaçant à mesure les
"0".
Pas très clean, n'est-ce pas!
Auriez vous un remède?
Merci.
Cordialement.
Alain
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Alain,
Voici un exemple de ce que pourrait avoir l'air le code attaché à un contrôle textbox pour la saisie des numéros de téléphone ayant ce format : "00 00 00 00 00" . Évidemment tu devras adapter le nom du textbox selon ton application.
'Ceci pour adapter le format selon le nombre de "digit" dans le Textbox
'------------------------------------------- Private Sub TextBox1_Change() Dim Text As String Text = Replace(TextBox1, " ", "") Select Case Len(Text) Case 3 Text = Format(TextBox1.Value, "00 0") Case 4 Text = Format(TextBox1.Value, "00 00") Case 5 Text = Format(TextBox1.Value, "00 00 0") Case 6 Text = Format(TextBox1.Value, "00 00 00") Case 7 Text = Format(TextBox1.Value, "00 00 00 0") Case 8 Text = Format(TextBox1.Value, "00 00 00 00") End Select Me.TextBox1 = Text
End Sub '-------------------------------------------
'Ceci pour limiter la saisie dans le textbox qu'aux chiffres et 'arrêter la saisie lorsque le nombre de "digit" permis est atteint. '------------------------------------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Len(TextBox1) = 11 Or KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If
End Sub '-------------------------------------------
Salutations!
"Alain LE GUEN" a écrit dans le message de news:% Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
Bonjour Alain,
Voici un exemple de ce que pourrait avoir l'air le code attaché à un contrôle textbox pour la saisie des numéros de
téléphone ayant ce format : "00 00 00 00 00" . Évidemment tu devras adapter le nom du textbox selon ton application.
'Ceci pour adapter le format selon le nombre de "digit" dans le Textbox
'-------------------------------------------
Private Sub TextBox1_Change()
Dim Text As String
Text = Replace(TextBox1, " ", "")
Select Case Len(Text)
Case 3
Text = Format(TextBox1.Value, "00 0")
Case 4
Text = Format(TextBox1.Value, "00 00")
Case 5
Text = Format(TextBox1.Value, "00 00 0")
Case 6
Text = Format(TextBox1.Value, "00 00 00")
Case 7
Text = Format(TextBox1.Value, "00 00 00 0")
Case 8
Text = Format(TextBox1.Value, "00 00 00 00")
End Select
Me.TextBox1 = Text
End Sub
'-------------------------------------------
'Ceci pour limiter la saisie dans le textbox qu'aux chiffres et
'arrêter la saisie lorsque le nombre de "digit" permis est atteint.
'-------------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) = 11 Or KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End Sub
'-------------------------------------------
Salutations!
"Alain LE GUEN" <ALGi@ifrance.com> a écrit dans le message de news:%23rOz0NjYEHA.2672@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc.
<textbox1.value = format(textbox1.value,"00 00 00 00 00")>
Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00"
apparaissent et ma saisie commence par la droite en effaçant à mesure les
"0".
Pas très clean, n'est-ce pas!
Auriez vous un remède?
Merci.
Cordialement.
Alain
Voici un exemple de ce que pourrait avoir l'air le code attaché à un contrôle textbox pour la saisie des numéros de téléphone ayant ce format : "00 00 00 00 00" . Évidemment tu devras adapter le nom du textbox selon ton application.
'Ceci pour adapter le format selon le nombre de "digit" dans le Textbox
'------------------------------------------- Private Sub TextBox1_Change() Dim Text As String Text = Replace(TextBox1, " ", "") Select Case Len(Text) Case 3 Text = Format(TextBox1.Value, "00 0") Case 4 Text = Format(TextBox1.Value, "00 00") Case 5 Text = Format(TextBox1.Value, "00 00 0") Case 6 Text = Format(TextBox1.Value, "00 00 00") Case 7 Text = Format(TextBox1.Value, "00 00 00 0") Case 8 Text = Format(TextBox1.Value, "00 00 00 00") End Select Me.TextBox1 = Text
End Sub '-------------------------------------------
'Ceci pour limiter la saisie dans le textbox qu'aux chiffres et 'arrêter la saisie lorsque le nombre de "digit" permis est atteint. '------------------------------------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Len(TextBox1) = 11 Or KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If
End Sub '-------------------------------------------
Salutations!
"Alain LE GUEN" a écrit dans le message de news:% Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
michdenis
Bonjour Alain,
Maintenant pour les dates :
Si tu as Excel 2002, tu peux ajouter le contrôle supplémentaire à ta boîte d'outils pour formulaire :
"Microsoft Date and Time Picker Control 6.0 (SP4)
Tu ajoutes ce contrôle juste au dessus du textbox où l'usager doit saisir des dates ...Si tu affiches les propriétés de ce contrôle... il y a quelques trucs avec lesquels tu peux t'amuser !!!
Le code pour ce contrôle pourrait avoir l'air de cela :
Tout ceci en supposant que tu veuille inscrire la date dans le Textbox2
'------------------------------------- Private Sub TextBox2_Enter()
End Sub '------------------------------------- Private Sub UserForm_Initialize()
Me.DTPicker1.Value = Date Me.DTPicker1.Visible = False
End Sub '------------------------------------- Private Sub DTPicker1_CloseUp() Me.DTPicker1.Visible = False End Sub '-------------------------------------
Salutations!
"Alain LE GUEN" a écrit dans le message de news:% Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
Bonjour Alain,
Maintenant pour les dates :
Si tu as Excel 2002, tu peux ajouter le contrôle supplémentaire à ta boîte d'outils pour formulaire :
"Microsoft Date and Time Picker Control 6.0 (SP4)
Tu ajoutes ce contrôle juste au dessus du textbox où l'usager doit saisir des dates ...Si tu affiches les propriétés de
ce contrôle... il y a quelques trucs avec lesquels tu peux t'amuser !!!
Le code pour ce contrôle pourrait avoir l'air de cela :
Tout ceci en supposant que tu veuille inscrire la date dans le Textbox2
'-------------------------------------
Private Sub TextBox2_Enter()
End Sub
'-------------------------------------
Private Sub UserForm_Initialize()
Me.DTPicker1.Value = Date
Me.DTPicker1.Visible = False
End Sub
'-------------------------------------
Private Sub DTPicker1_CloseUp()
Me.DTPicker1.Visible = False
End Sub
'-------------------------------------
Salutations!
"Alain LE GUEN" <ALGi@ifrance.com> a écrit dans le message de news:%23rOz0NjYEHA.2672@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc.
<textbox1.value = format(textbox1.value,"00 00 00 00 00")>
Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00"
apparaissent et ma saisie commence par la droite en effaçant à mesure les
"0".
Pas très clean, n'est-ce pas!
Auriez vous un remède?
Merci.
Cordialement.
Alain
Si tu as Excel 2002, tu peux ajouter le contrôle supplémentaire à ta boîte d'outils pour formulaire :
"Microsoft Date and Time Picker Control 6.0 (SP4)
Tu ajoutes ce contrôle juste au dessus du textbox où l'usager doit saisir des dates ...Si tu affiches les propriétés de ce contrôle... il y a quelques trucs avec lesquels tu peux t'amuser !!!
Le code pour ce contrôle pourrait avoir l'air de cela :
Tout ceci en supposant que tu veuille inscrire la date dans le Textbox2
'------------------------------------- Private Sub TextBox2_Enter()
End Sub '------------------------------------- Private Sub UserForm_Initialize()
Me.DTPicker1.Value = Date Me.DTPicker1.Visible = False
End Sub '------------------------------------- Private Sub DTPicker1_CloseUp() Me.DTPicker1.Visible = False End Sub '-------------------------------------
Salutations!
"Alain LE GUEN" a écrit dans le message de news:% Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
Denis Michon
Quoique la différence n'est pas énorme, Il aurait été plus conséquent d'écrire cette section du code de cette façon :
Private Sub TextBox1_Change() Dim Text As String Text = Replace(TextBox1, " ", "") Select Case Len(Text) Case 3 Text = Format(Text, "00 0") Case 4 Text = Format(Text, "00 00") Case 5 Text = Format(Text, "00 00 0") Case 6 Text = Format(Text, "00 00 00") Case 7 Text = Format(Text, "00 00 00 0") Case 8 Text = Format(Text, "00 00 00 00") End Select Me.TextBox1 = Text
End Sub
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Alain,
Voici un exemple de ce que pourrait avoir l'air le code attaché à un contrôle textbox pour la saisie des numéros de téléphone ayant ce format : "00 00 00 00 00" . Évidemment tu devras adapter le nom du textbox selon ton application.
'Ceci pour adapter le format selon le nombre de "digit" dans le Textbox
'------------------------------------------- Private Sub TextBox1_Change() Dim Text As String Text = Replace(TextBox1, " ", "") Select Case Len(Text) Case 3 Text = Format(TextBox1.Value, "00 0") Case 4 Text = Format(TextBox1.Value, "00 00") Case 5 Text = Format(TextBox1.Value, "00 00 0") Case 6 Text = Format(TextBox1.Value, "00 00 00") Case 7 Text = Format(TextBox1.Value, "00 00 00 0") Case 8 Text = Format(TextBox1.Value, "00 00 00 00") End Select Me.TextBox1 = Text
End Sub '-------------------------------------------
'Ceci pour limiter la saisie dans le textbox qu'aux chiffres et 'arrêter la saisie lorsque le nombre de "digit" permis est atteint. '------------------------------------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Len(TextBox1) = 11 Or KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If
End Sub '-------------------------------------------
Salutations!
"Alain LE GUEN" a écrit dans le message de news:% Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
Quoique la différence n'est pas énorme, Il aurait été plus conséquent d'écrire cette section du code de cette façon :
Private Sub TextBox1_Change()
Dim Text As String
Text = Replace(TextBox1, " ", "")
Select Case Len(Text)
Case 3
Text = Format(Text, "00 0")
Case 4
Text = Format(Text, "00 00")
Case 5
Text = Format(Text, "00 00 0")
Case 6
Text = Format(Text, "00 00 00")
Case 7
Text = Format(Text, "00 00 00 0")
Case 8
Text = Format(Text, "00 00 00 00")
End Select
Me.TextBox1 = Text
End Sub
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:ObgcxijYEHA.1048@tk2msftngp13.phx.gbl...
Bonjour Alain,
Voici un exemple de ce que pourrait avoir l'air le code attaché à un contrôle textbox pour la saisie des numéros de
téléphone ayant ce format : "00 00 00 00 00" . Évidemment tu devras adapter le nom du textbox selon ton application.
'Ceci pour adapter le format selon le nombre de "digit" dans le Textbox
'-------------------------------------------
Private Sub TextBox1_Change()
Dim Text As String
Text = Replace(TextBox1, " ", "")
Select Case Len(Text)
Case 3
Text = Format(TextBox1.Value, "00 0")
Case 4
Text = Format(TextBox1.Value, "00 00")
Case 5
Text = Format(TextBox1.Value, "00 00 0")
Case 6
Text = Format(TextBox1.Value, "00 00 00")
Case 7
Text = Format(TextBox1.Value, "00 00 00 0")
Case 8
Text = Format(TextBox1.Value, "00 00 00 00")
End Select
Me.TextBox1 = Text
End Sub
'-------------------------------------------
'Ceci pour limiter la saisie dans le textbox qu'aux chiffres et
'arrêter la saisie lorsque le nombre de "digit" permis est atteint.
'-------------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) = 11 Or KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End Sub
'-------------------------------------------
Salutations!
"Alain LE GUEN" <ALGi@ifrance.com> a écrit dans le message de news:%23rOz0NjYEHA.2672@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc.
<textbox1.value = format(textbox1.value,"00 00 00 00 00")>
Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00"
apparaissent et ma saisie commence par la droite en effaçant à mesure les
"0".
Pas très clean, n'est-ce pas!
Auriez vous un remède?
Merci.
Cordialement.
Alain
Quoique la différence n'est pas énorme, Il aurait été plus conséquent d'écrire cette section du code de cette façon :
Private Sub TextBox1_Change() Dim Text As String Text = Replace(TextBox1, " ", "") Select Case Len(Text) Case 3 Text = Format(Text, "00 0") Case 4 Text = Format(Text, "00 00") Case 5 Text = Format(Text, "00 00 0") Case 6 Text = Format(Text, "00 00 00") Case 7 Text = Format(Text, "00 00 00 0") Case 8 Text = Format(Text, "00 00 00 00") End Select Me.TextBox1 = Text
End Sub
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Alain,
Voici un exemple de ce que pourrait avoir l'air le code attaché à un contrôle textbox pour la saisie des numéros de téléphone ayant ce format : "00 00 00 00 00" . Évidemment tu devras adapter le nom du textbox selon ton application.
'Ceci pour adapter le format selon le nombre de "digit" dans le Textbox
'------------------------------------------- Private Sub TextBox1_Change() Dim Text As String Text = Replace(TextBox1, " ", "") Select Case Len(Text) Case 3 Text = Format(TextBox1.Value, "00 0") Case 4 Text = Format(TextBox1.Value, "00 00") Case 5 Text = Format(TextBox1.Value, "00 00 0") Case 6 Text = Format(TextBox1.Value, "00 00 00") Case 7 Text = Format(TextBox1.Value, "00 00 00 0") Case 8 Text = Format(TextBox1.Value, "00 00 00 00") End Select Me.TextBox1 = Text
End Sub '-------------------------------------------
'Ceci pour limiter la saisie dans le textbox qu'aux chiffres et 'arrêter la saisie lorsque le nombre de "digit" permis est atteint. '------------------------------------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Len(TextBox1) = 11 Or KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If
End Sub '-------------------------------------------
Salutations!
"Alain LE GUEN" a écrit dans le message de news:% Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
Michel Pierron
Bonjour Alain; Autre solution, la saisie de , . / ou - comme séparateur sera remplacé par un espace avec interdiction de doubler un séparateur et limitation de la longueur du champ à 14 caractères (00 00 00 00 00):
Private Sub TextBox1_Change() Me.TextBox1 = PhoneChain(Mid(Me.TextBox1, 1, 14)) End Sub
Private Function PhoneChain(Chain As String) As String Dim N As String, i As Byte Const Cars As String = "0123456789 " For i = 1 To Len(Chain) N = Mid(Chain, i, 1) Select Case N Case ",", ".", "/", "-": N = " " End Select If Mid(Chain, i, 2) = " " Then N = "" If InStr(1, Cars, N) Then PhoneChain = PhoneChain & N Next i End Function
MP
"Alain LE GUEN" a écrit dans le message de news:%
Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain
Bonjour Alain;
Autre solution, la saisie de , . / ou - comme séparateur sera remplacé par un
espace avec interdiction de doubler un séparateur et limitation de la longueur du
champ à 14 caractères (00 00 00 00 00):
Private Sub TextBox1_Change()
Me.TextBox1 = PhoneChain(Mid(Me.TextBox1, 1, 14))
End Sub
Private Function PhoneChain(Chain As String) As String
Dim N As String, i As Byte
Const Cars As String = "0123456789 "
For i = 1 To Len(Chain)
N = Mid(Chain, i, 1)
Select Case N
Case ",", ".", "/", "-": N = " "
End Select
If Mid(Chain, i, 2) = " " Then N = ""
If InStr(1, Cars, N) Then PhoneChain = PhoneChain & N
Next i
End Function
MP
"Alain LE GUEN" <ALGi@ifrance.com> a écrit dans le message de
news:%23rOz0NjYEHA.2672@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc.
<textbox1.value = format(textbox1.value,"00 00 00 00 00")>
Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00"
apparaissent et ma saisie commence par la droite en effaçant à mesure les
"0".
Pas très clean, n'est-ce pas!
Auriez vous un remède?
Merci.
Cordialement.
Alain
Bonjour Alain; Autre solution, la saisie de , . / ou - comme séparateur sera remplacé par un espace avec interdiction de doubler un séparateur et limitation de la longueur du champ à 14 caractères (00 00 00 00 00):
Private Sub TextBox1_Change() Me.TextBox1 = PhoneChain(Mid(Me.TextBox1, 1, 14)) End Sub
Private Function PhoneChain(Chain As String) As String Dim N As String, i As Byte Const Cars As String = "0123456789 " For i = 1 To Len(Chain) N = Mid(Chain, i, 1) Select Case N Case ",", ".", "/", "-": N = " " End Select If Mid(Chain, i, 2) = " " Then N = "" If InStr(1, Cars, N) Then PhoneChain = PhoneChain & N Next i End Function
MP
"Alain LE GUEN" a écrit dans le message de news:%
Bonjour,
J'utilise des formats dans des TextBox, genre date, N° de téléphone, etc. <textbox1.value = format(textbox1.value,"00 00 00 00 00")> Le seul problème est que lorsque j'arrive sur le champ, les "00 00 00 00 00" apparaissent et ma saisie commence par la droite en effaçant à mesure les "0". Pas très clean, n'est-ce pas! Auriez vous un remède? Merci. Cordialement. Alain