Surligner et after update?

bartelele

XLDnaute Junior
Bonjour à tous,

Voilà j'ai un problème assez simple mais ca ne fonctionne pas et je me demande si cela n'est pas lié à l'événement.

J'ai un textbox où l'opérateur rentre la date, celle-ci doit être forcement de type JJ/MM/AAAA sinon à la fin de la saisie, un message d'erreur s'affiche via un msgbox

Ce que je voudrais faire, c'est que si l'opérateur met une date de type JJ/MM/AA, le msgbox s'affiche (jusque là ok), et lorsque celui-ci click sur ok pour fermer le msgbox, le curseur retourne dans le textbox de la date et celle-ci se trouve surligner pour modification.

Voilà j'ai pondu ce code mais ca ne marche pas... ai-je une erreur? est-ce lié à l'afterupdate?

Merci à tous ;)



Private Sub TB_Date_cause_Containment1_AfterUpdate()

'10 caracteres autorisés, le format de la date doit être JJ/MM/AAAA
If Len(TB_Date_cause_Containment1.text) <> 10 Then
MsgBox "Le format de la date doit être JJ/MM/AAAA", vbExclamation
TB_Date_cause_Containment1.SetFocus
TB_Date_cause_Containment1.SelStart = 0
TB_Date_cause_Containment1.SelLength = Len(TB_Date_cause_Containment1.Value)
End If

End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Surligner et after update?

Bonjour,

essaya ceci, à placer dans l'événement "exit" du contrôle, nom de l'objet à adapter :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
    If Len(.Text) <> 10 Then
    MsgBox "Le format de la date doit être JJ/MM/AAAA", vbExclamation
    .SelStart = 0
    .SelLength = Len(.Text)
    Cancel = True
    End If
End With
End Sub

bonne fin d'après midi
@+
 

bartelele

XLDnaute Junior
Re : Surligner et after update?

Bonjour pierrot!

J'ai une petite question (à nouveau). Ton code marche impec lorsque je n'ai pas de cadre, cependant dans mon userform, j'ai des dates (ex: date acceptee : refusse) qui sont présentes chacune dans des cadres. (un textbox dans un cadre)
De ce fait, j'ai bien le msgbox qui s'affiche, mais pas le retour dans le textbox de la date erronée ni sa surbrillance...

une idée?

j'ai essayé de voir avec tabindex, car je pensais que c'était ça le souci, puisque on change de cadre mais apparemment non :(
 

Pierrot93

XLDnaute Barbatruc
Re : Surligner et after update?

Bonjour,

si dans ton "frame" tu n'as qu'un textbox, mets le code dans l'événement "exit" du "frame" :
Code:
Option Explicit
Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
    If Len(.Text) <> 10 Then
    MsgBox "Le format de la date doit être JJ/MM/AAAA", vbExclamation
    .SelStart = 0
    .SelLength = Len(.Text)
    Cancel = True
    End If
End With
End Sub

bonne journée
@+
 

bartelele

XLDnaute Junior
Re : Surligner et after update?

En réalité, j'ai plusieurs cadres, certains ne comportent qu'un seul textbox où on indique la date, et d'autres avec un textbox date et divers objects comme combobox listbox etc...

C'est pour ça qu'au début j'avais mit mon msgbox à l'événement afterupdate du textbox de la date, car quel que soit l'opération suivante faite par l'opérateur il y a le msgbox en premier si la date n'est pas rentée convenablement.

Il n'est pas possible de retourner au textbox en question et de le surligner dans un événement afterupdate?

merci de ton aide ;)
 

Pierrot93

XLDnaute Barbatruc
Re : Surligner et after update?

Re,

essaye comme ceci, nom des objets à adapter, toutes les procédures dans le module de l'usf :
Code:
Option Explicit
Dim b As Boolean
Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ActiveControl.ActiveControl.Name = "TextBox1" Then
    test
    Cancel = b
End If
End Sub


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
test
Cancel = b
End Sub


Sub test()
With TextBox1
    If Len(.Text) <> 10 Then
        MsgBox "Le format de la date doit être JJ/MM/AAAA", vbExclamation
        .SelStart = 0
        .SelLength = Len(.Text)
        b = True
    Else
        b = False
    End If
End With
End Sub
 

bartelele

XLDnaute Junior
Re : Surligner et after update?

bizarre, j'ai exactement le même code (à l'exception des objets que j'ai renommé). Enfin tant mieux j'ai un exemple qui marche :)

Par conte, le seul problème, et qu'une fois qu'on a cliqué sur la textbox1, on ne peut pas y échapper! Je veux dire que si un gars clique là sans faire exprès mais qu'il n'a pas de date à rentrer, il est obliger d'en rentrer une pour sortir!
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 022
Membres
104 006
dernier inscrit
CABROL