VBA problème de saisie dans Textbox

VBA problème de saisie dans Textbox - VB/VBA/VBS - Programmation

Marsh Posté le 17-06-2008 à 11:12:44    

:hello:  
 
Salut à tous !
 
J'ai un petit souci avec les Textbox que j'ai dans une boîte de dialogue.
Petite présentation : j'ai une soixantaine de Textbox qui se suivent dans une boîte de dialogue.
J'ai fait en sorte que l'ordre de tabulation aille de Textbox en Textbox...
Donc, quand je suis dans la boîte, le curseur se met sur la première Textbox, je saisis un montant et je tape sur Tab... et le curseur va sur la seconde Textbox... et ainsi de suite...
Malheureusement, par moment, le Tab ne fonctionne plus et insère dans le texte de la Textbox active une tabulation (quelques caractères).
D'où vient ce problème ?
 
Petite précision : pour chaque Textbox, il y a deux sub qui contrôlent ce que l'on saisit :
 

Code :
  1. Private Sub TEXTBOX_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  2.     If KeyAscii = Asc(Point) Then
  3.         If InStr(TEXTBOX, Virgule) = 0 Then
  4.             KeyAscii = Asc(Virgule)
  5.         Else
  6.             KeyAscii = 0
  7.         End If
  8.     ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
  9.         KeyAscii = 0
  10.     ElseIf InStr(TEXTBOX, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
  11.         KeyAscii = 0
  12.     End If
  13.    
  14.     If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
  15. End Sub


 

Code :
  1. Private Sub TEXTBOX_AfterUpDate()
  2.     If IDENTIFIANT.Text = "" Then
  3.         If TEXTBOX.Text = "" Then TEXTBOX.Text = 0
  4.         TEXTBOX.Text = Format(TEXTBOX.Text, "##,##0.00" )
  5.         If CODESOCIETE.Text = "" Then
  6.             Call Oubli1
  7.         Else
  8.             Call Oubli3
  9.         End If
  10.         Else
  11.         If TEXTBOX.Text = "" Then R002.Text = 0
  12.         TEXTBOX.Text = Format(TEXT.Text, "##,##0.00" )
  13.         If CODESOCIETE.Text = "" Then
  14.             Call Oubli2
  15.         Else
  16.         End If
  17.     End If
  18.      
  19. End Sub


 
Le premier code oblige la saisie de valeur numérique à deux virgules.
Le second informe le saisisseur à saisir d'autres infos dans d'autres Textbox et met 0,00 dans la zone de saisie si le saisisseur a mis à blanc le champ.
 
;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 17-06-2008 à 11:12:44   

Reply

Marsh Posté le 17-06-2008 à 13:57:50    

Bonjour
 
la ligne If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0 devrait me semble t-il boucler
 
peut être avec  
If KeyAscii = 13 Then "setfocus +1": KeyAscii = 0

Reply

Marsh Posté le 17-06-2008 à 14:01:22    

pyrof a écrit :

Bonjour
 
la ligne If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0 devrait me semble t-il boucler
 
peut être avec  
If KeyAscii = 13 Then "setfocus +1": KeyAscii = 0


 
C'est-à-dire je change la ligne avec "{TAB}" par celle avec "setfocus +1" ???
;)

Reply

Marsh Posté le 17-06-2008 à 15:04:26    

A chaque frappe de tab tu veux changer de textbox
 
tu as textbox1, textbox2 ....
 
si tu est dans textbox2 il faut :
If KeyAscii = 13 then  textbox4.setfocus

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed