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

Slasch automatique dans textbox

  • Initiateur de la discussion Initiateur de la discussion greg954
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

greg954

Guest
Bonjour au forum,

Est il possible d’insérer automatiquement un slasch dans une textbox dés la saisie du deuxième chiffre du genre:

23(insersion du slasch)12(insersion du slasch )2011(la pas de slach)

Merci de votre aide
Greg
 
Re : Slasch automatique dans textbox

Bonjour Greg

Tu peux tester un code de ce type:

Code:
Private Sub TextBox1_Change()
'nlet = Len(TextBox1)
'If Right(TextBox1, 1) = "," Then MsgBox "Saisir un Point": TextBox1 = Mid(TextBox1, 1, nlet - 1)
If Len(TextBox1) = 2 Then TextBox1 = TextBox1 & "/"
End Sub
 
Re : Slasch automatique dans textbox

Bonjour MJ13,
merci pour t'a réponse mais est il possible d'avoir un / après la deuxième série de 2 chiffre, c'est pour une date du genre xx/xx/xxxx,
de plus dans la macro que m'a donnée , je ne peux pas effacer le / avec la touche retour?? très utile si il y a une erreur de saisie

Merci de t' on aide
 
Re : Slasch automatique dans textbox

Bonjour Greg, MJ,

Avec ceci :

Code:
Private Sub TextBox1_Change()
  If Len(TextBox1) = 2 or Len(TextBox1) = 5 Then TextBox1 = TextBox1 & "/"
 End Sub

A+

Martial
 
Re : Slasch automatique dans textbox

Re,

Je dirai même plus :

Code:
Private Sub TextBox1_Change()
'Pour limiter le nombre de caratère à 10
TextBox1.MaxLength = 10
   If Len(TextBox1) = 2 or Len(TextBox1) = 5 Then TextBox1 = TextBox1 & "/"
  End Sub

A+
 
Re : Slasch automatique dans textbox

Merci a tous , exactement ce que je voulais faire, mais je ne peux pas effacer le /avec la touche retour si j'ai fait une erreur de saisie dans la date, y t'il un moyen de pouvoir effacer ce / ???

Merci encore

Greg
 
Re : Slasch automatique dans textbox

Bonjour ce Fil

Une fois que l'on force des Slash etc dans une TextBox, il est difficuile de revenir en arrière...

Une autre approche plus complète niveau Date dans TexteBox :

Code:
Private Sub TextBox1_Change()
'Ti 10-01-03, notre très cher et regretté Thierry Pourtier
Dim Texte As String
  Texte = TextBox1.Text
  Select Case Len(Texte)
    Case 2, 5
      Texte = Texte & "/"
  End Select
  TextBox1.Text = Texte
End Sub
 
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Container As Variant
Container = Split(TextBox1.Text, Application.International(xlDateSeparator))
    
    If UBound(Container) <> 2 Then GoTo TheEnd
    If Not IsDate(TextBox1.Value) Then GoTo TheEnd
Exit Sub
TheEnd:
'MsgBox "La Date n'est pas valide" 'Si necessaire
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(TextBox1)
End With
Cancel = True
End Sub


Cordialement et avec une pensée pour Ti !

@+Thierry
 
Re : Slasch automatique dans textbox

bonjour tous 🙂🙂🙂🙂

une autre facon de l'ecrire .... important la declaration de la variable C en debut de module

Code:
Dim C As Boolean
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  Select Case KeyCode
    Case Is = 8
      C = True
      Case Is = 13, 96 To 105
    Case Else
    KeyCode = 0
  End Select
End Sub
Private Sub TextBox1_KeyUP(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  Select Case KeyCode
    Case Is = 46
      C = True
     TextBox1 = ""
     End Select
   End Sub
Private Sub TextBox1_Change()
If Not C Then
    With TextBox1
      Select Case Len(.Text)
        Case 2, 5
          .Text = .Text & "/"
      End Select
    End With
  Else
    C = False
End If
End Sub
 
Re : Slasch automatique dans textbox

Merci a tous pour votre aide, j'ai réglé le problème j'ai créer un bouton avec la commande suivante textbox4 = ""
ce qui a pour effet d'effacer les chiffres et le / comme ça on peut retaper la date si on c'est trompé.

encore merci pour votre aide

Greg
 
Re : Slasch automatique dans textbox

Re, Bonjour à tout ce beau linge 😱

Voici une autre version 🙂.

Attention, il faut aussi utiliser les touches du clavier, c'est plus simple pour modifier un textbox 🙄.

Code:
Private Sub TextBox1_Change()
'nlet = Len(TextBox1)
'If Right(TextBox1, 1) = "," Then MsgBox "Saisir un Point": TextBox1 = Mid(TextBox1, 1, nlet - 1)
If Len(TextBox1) = 2 Then TextBox1 = TextBox1 & "/"
Application.EnableEvents = False
If Len(TextBox1) = 5 Then TextBox1 = TextBox1 & "/"
Application.EnableEvents = True
End Sub
 

Pièces jointes

Re : Slasch automatique dans textbox

bah justement y pas de clavier, lol
j'ai créé un petit clavier virtuel ( écran tactile) et après si y a trop de touche ca devient compliqué , y en a qu'on jamais touché un clavier.

Greg

en tous cas merci pour votre aide
 
Re : Slasch automatique dans textbox

Re

bah justement y pas de clavier, lol
j'ai créé un petit clavier virtuel ( écran tactile) et après si y a trop de touche ca devient compliqué , y en a qu'on jamais touché un clavier.

Le but d'un forum est aussi de répondre aux autres membres qui aurait le même problème. Mais, en général , les gens ont un clavier.

Sinon, le plus simple dans ton cas, c'est comme tu l'as dit d'effacer le textbox.

Il serait bien aussi de fournir ton fichier terminé (ou au moins avec la partie du sujet qui nous intéresse) , c'est possible?
 
Re : Slasch automatique dans textbox

Bonjour greg954, le fil,

Puisqu'il s'agit de la suite de ce fil :

https://www.excel-downloads.com/threads/textbox-et-clavier-virtuel.203875/

pourquoi ne pas mettre tout simplement un slash dans le clavier virtuel ?

La macro modifiée dans le module de classe :

Code:
Private Sub CB_Click()
Dim dat As Variant
With CB.Parent.Controls(CB.Parent.Tag)
  If CB.Name <> "C12" Then .Text = .Text & CB.Caption _
  Else .Text = Left(.Text, IIf(Len(.Text), Len(.Text), 1) - 1)
  Range("A" & Right(.Name, 1)) = "" 'RAZ
  dat = ExecuteExcel4Macro("DATEVALUE(""" & .Text & """)")
  If IsNumeric(dat) Then Range("A" & Right(.Name, 1)) = CDate(.Text)
  .SetFocus
End With
End Sub
Si des TextBox doivent contenir autre chose que des dates, dites-le.

Fichier (2).

A+
 

Pièces jointes

Re : Slasch automatique dans textbox

Merci Job75,

Je met ça de coté , et je voie la meilleur solution.
Oui bien-sur MJ13 , une fois fini je mettrais sur le forum l'userform contenant le clavier alphabetique et numérique avec les macros (Merci encore a Job75)

Greg954
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
211
Réponses
15
Affichages
450
  • Question Question
Réponses
2
Affichages
156
Réponses
12
Affichages
644
  • Question Question
Autres Planning
Réponses
8
Affichages
319
  • Question Question
Microsoft 365 Contrôle sur date
Réponses
8
Affichages
409
Réponses
5
Affichages
306
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…