OVH Cloud OVH Cloud

Split select

6 réponses
Avatar
Line
Bonjour à tous

Sur un UserForm un TextBox dans lequel il y a une date aaaa/mm/jj

J'aimerais qu'en entrant dans le TextBox seulement l'année soit
sélectionnée. Puis, (je suis peut-être ambitieuse) quand la touche
déplacer vers la droite est enfoncée que le mois soit sélectionné puis
si la touche déplacement vers la droite est a nouveau enfoncé que le
jour soit sélectionné.

J'ai bien essayé avec Split (j'utilise Excel 2003) mais je ne suis pas
tout à fait assez douée

Reconnaissance éternelle promise à tout sauveur potentiel

Line

6 réponses

Avatar
...Patrick
et pourquoi ne pas mettre un calendrier dans ton usf ?
Patrick

"Line" a écrit dans le message de news:

Bonjour à tous

Sur un UserForm un TextBox dans lequel il y a une date aaaa/mm/jj

J'aimerais qu'en entrant dans le TextBox seulement l'année soit
sélectionnée. Puis, (je suis peut-être ambitieuse) quand la touche
déplacer vers la droite est enfoncée que le mois soit sélectionné puis
si la touche déplacement vers la droite est a nouveau enfoncé que le
jour soit sélectionné.

J'ai bien essayé avec Split (j'utilise Excel 2003) mais je ne suis pas
tout à fait assez douée

Reconnaissance éternelle promise à tout sauveur potentiel

Line




Avatar
Rai
Bonjour à tous

Sur un UserForm un TextBox dans lequel il y a une date aaaa/mm/jj

J'aimerais qu'en entrant dans le TextBox seulement l'année soit
sélectionnée. Puis, (je suis peut-être ambitieuse) quand la touche
déplacer vers la droite est enfoncée que le mois soit sélectionné puis
si la touche déplacement vers la droite est a nouveau enfoncé que le
jour soit sélectionné.

J'ai bien essayé avec Split (j'utilise Excel 2003) mais je ne suis pas
tout à fait assez douée

Reconnaissance éternelle promise à tout sauveur potentiel

Line


Bonjour,


Ci-dessous un début solution, sans split.
A intégrer dans ton USF, et à adapter (changer Textbox1 en nom approprié)

les sélections s'adaptent sur appui fleche gauche ou droite, et aussi au
changement eventuel du nombre de caractères (jours sur 1 ou 2 chiffres,
année sur 2 ou 4 ...)

Seul élément non géré : disparition accidentelle des /

Public Pos As Integer
Private Sub TextBox1_Enter()
TextBox1.SelStart = 0
TextBox1.SelLength = 4
Pos = 1
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Select Case Pos
Case 1
If KeyCode = 39 Then
Start = InStr(TextBox1.Text, "/")
Lon = InStrRev(TextBox1.Text, "/") - Start
Pos = 2
End If
Case 2
If KeyCode = 39 Then
Start = InStrRev(TextBox1.Text, "/")
Lon = Start - InStr(TextBox1.Text, "/")
Pos = 3
End If
If KeyCode = 37 Then
Lon = InStr(TextBox1.Text, "/") - 1
Start = 0
Pos = 1
End If
Case 3
If KeyCode = 37 Then
Start = InStr(TextBox1.Text, "/")
Pos = 2
Lon = InStrRev(TextBox1.Text, "/") - Start - 1
End If
End Select

If KeyCode = 37 Or KeyCode = 39 Then
KeyCode = 0
TextBox1.SelStart = Start
TextBox1.SelLength = Lon
End If

End Sub


Ca convient ?

Rai

Avatar
Line
Bonjour Patrick

Merci de la suggestion, mais nous avons la version
PME d'Ofiice qui ne comprend pas Access...

Mais je suis quand même reconnaissante :o)


"...Patrick" wrote:

et pourquoi ne pas mettre un calendrier dans ton usf ?
Patrick



Avatar
Line
"Rai" wrote:

Bonjour,

Ci-dessous un début solution, sans split.
A intégrer dans ton USF, et à adapter (changer Textbox1 en nom approprié)

les sélections s'adaptent sur appui fleche gauche ou droite, et aussi au
changement eventuel du nombre de caractères (jours sur 1 ou 2 chiffres,
année sur 2 ou 4 ...)

Seul élément non géré : disparition accidentelle des /

Public Pos As Integer
Private Sub TextBox1_Enter()
TextBox1.SelStart = 0
TextBox1.SelLength = 4
Pos = 1
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Select Case Pos
Case 1
If KeyCode = 39 Then
Start = InStr(TextBox1.Text, "/")
Lon = InStrRev(TextBox1.Text, "/") - Start
Pos = 2
End If
Case 2
If KeyCode = 39 Then
Start = InStrRev(TextBox1.Text, "/")
Lon = Start - InStr(TextBox1.Text, "/")
Pos = 3
End If
If KeyCode = 37 Then
Lon = InStr(TextBox1.Text, "/") - 1
Start = 0
Pos = 1
End If
Case 3
If KeyCode = 37 Then
Start = InStr(TextBox1.Text, "/")
Pos = 2
Lon = InStrRev(TextBox1.Text, "/") - Start - 1
End If
End Select

If KeyCode = 37 Or KeyCode = 39 Then
KeyCode = 0
TextBox1.SelStart = Start
TextBox1.SelLength = Lon
End If

End Sub


Ca convient ?

Rai



Bonjour Rai

Ça convient par-fai-te-ment!!!

Mille et une fois Merci!!!

Line

Avatar
Daniel
Bonsoir.
Un début de réponse pour la première parte de la question (sélection de
l'année) :
TextBox1.SelStart = 0
TextBox1.SelLength = 4
Cordialement.
Daniel
"Line" a écrit dans le message de news:

Bonjour à tous

Sur un UserForm un TextBox dans lequel il y a une date aaaa/mm/jj

J'aimerais qu'en entrant dans le TextBox seulement l'année soit
sélectionnée. Puis, (je suis peut-être ambitieuse) quand la touche
déplacer vers la droite est enfoncée que le mois soit sélectionné puis
si la touche déplacement vers la droite est a nouveau enfoncé que le
jour soit sélectionné.

J'ai bien essayé avec Split (j'utilise Excel 2003) mais je ne suis pas
tout à fait assez douée

Reconnaissance éternelle promise à tout sauveur potentiel

Line




Avatar
Line
Bonjour Daniel

J'avais oublié de changer EnterFieldBehavior qui était a SelectAll
ça n'aidait pas ma cause.

Merci beaucoup

"Daniel" wrote:

Bonsoir.
Un début de réponse pour la première parte de la question (sélection de
l'année) :
TextBox1.SelStart = 0
TextBox1.SelLength = 4
Cordialement.
Daniel