Slasch automatique dans textbox

greg954

XLDnaute Junior
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
 

MJ13

XLDnaute Barbatruc
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
 

greg954

XLDnaute Junior
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
 

Yaloo

XLDnaute Barbatruc
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+
 

greg954

XLDnaute Junior
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

laetitia90

XLDnaute Barbatruc
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
 

greg954

XLDnaute Junior
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
 

MJ13

XLDnaute Barbatruc
Re : Slasch automatique dans textbox

Re, Bonjour à tout ce beau linge :eek:

Voici une autre version :).

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

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

  • SaisieDateSlash.xls
    73 KB · Affichages: 45

greg954

XLDnaute Junior
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
 

MJ13

XLDnaute Barbatruc
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?
 

job75

XLDnaute Barbatruc
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

  • class(2).xls
    53 KB · Affichages: 63

greg954

XLDnaute Junior
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
 

Statistiques des forums

Discussions
312 380
Messages
2 087 799
Membres
103 664
dernier inscrit
wolvi71