Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2396 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  SetFocus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SetFocus

n°1599861
Profil sup​primé
Posté le 16-08-2007 à 06:40:27  answer
 

Salut,
 
J'ai un souci de focus sur TextBox ... Quand je fais un SetFocus après une erreur de saisie, celui-ci se fait sur la TextBox suivante !
 
Comment modifier le code ci-dessous pour faire en sorte qu'en cas d'erreur de saisie des TextBox1 TextBox2 ou TextBox3, le champs en erreur soit selectionner ???
 
Merci pour votre aide,
 
Voici le code :
 

Code :
  1. Private Sub UserForm_Initialize()
  2. TextBox1.Value = "00:00"
  3. TextBox2 = "00:00"
  4. TextBox3.Value = "00:00"
  5. End Sub
  6. Private Sub TextBox1_AfterUpdate()
  7. horaire1 = TextBox1.Value
  8. If Len(horaire1) <> 5 Or Left(Right(horaire1, 3), 1) <> ":" Then
  9. MsgBox ("ATTENTION >>> L'heure de Début doit être au format hh:mm" & Chr(13) & Chr(13) & "Merci de vérifier votre saisie." ), vbExclamation, "Erreur de Saisie ..."
  10. TextBox1.Value = "00:00"
  11. TextBox1.SetFocus
  12. Cancel = True
  13. TextBox1.SelStart = 0
  14. TextBox1.SelLength = Len(TextBox1.Text)
  15. End If
  16. End Sub
  17. Private Sub TextBox3_AfterUpdate()
  18. horaire3 = TextBox3.Value
  19. If Len(horaire3) <> 5 Or Left(Right(horaire3, 3), 1) <> ":" Then
  20. MsgBox ("ATTENTION >>> L'heure de Fin doit être au format hh:mm" & Chr(13) & Chr(13) & "Merci de vérifier votre saisie." ), vbExclamation, "Erreur de Saisie ..."
  21. TextBox3.Value = "00:00"
  22. TextBox3.SetFocus
  23. Cancel = True
  24. TextBox3.SelStart = 0
  25. TextBox3.SelLength = Len(TextBox3.Text)
  26. End If
  27. Dim H1 As Date
  28. Dim H3 As Date
  29. H1 = CDate(TextBox1.Value)
  30. H3 = CDate(TextBox3.Value)
  31. If H3 <= H1 Then
  32. MsgBox ("ATTENTION >>> Merci de vérifier la cohérence de l'Heure de Fin." ), vbExclamation, "Erreur de Saisie ..."
  33. TextBox2 = "00:00"
  34. TextBox3.Value = "00:00"
  35. End If
  36. End Sub

mood
Publicité
Posté le 16-08-2007 à 06:40:27  profilanswer
 

n°1599996
olivthill
Posté le 16-08-2007 à 13:35:42  profilanswer
 

Peut-être que le problème viendrait de
 
 TextBox1.Value = "00:00"
 
qui est une mise à jour, laquelle déclencherait un second passage dans AfterUpdate(), lequel ne détecterait pas d'erreur, et donc il y aurait un passage au champ suivant.

n°1600010
Profil sup​primé
Posté le 16-08-2007 à 14:03:52  answer
 

Où exactement ???
 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  SetFocus

 

Sujets relatifs
Macro (Excel 2000) SetFocus (Résolu)tabsheet.setfocus
[VB] Erreur avec SETFOCUS[VBA] Problème de SetFocus
[HTML ou JAVASCRIPT] setfocus...[VC++] SetFocus(); & Couleur de fond
[VB] SetFocus, ZOrder et MDIForm ... 
Plus de sujets relatifs à : SetFocus


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR