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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB Excel] probleme dans textBox [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB Excel] probleme dans textBox [RESOLU]

n°669397
karoli
Posté le 10-03-2004 à 11:38:05  profilanswer
 

bonjour a tous,
 
j'ai sur l'evenement keypress de ma textbox une procedure qui empeche l'utilisateur de saisir plus de lignes que ne compte le controle :
 

Code :
  1. Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  2. Me.TextBox1 = Me.TextBox1 & Chr(KeyAscii)
  3. KeyAscii = 0
  4. If Me.TextBox1.LineCount > 3 Then
  5.     Me.TextBox1 = Left(Me.TextBox1, Len(TextBox1) - 1)
  6. End If
  7. End Sub


 
Ca limite bien la saisie mais par contre, impossible alors de modifier le texte saisi. Si par exemple je tape " bonkour c'est moi" et que je veux corriger ma faute de frappe, je peux mettre le curseur a l'endroit voulu, supprimer le "k" mais le "j" se rajoute à la fin ==> "Bonour c'est moij"
Obligé d'effacer tout ce qui suit la faute de frappe pour pouvoir la corriger...:/
 
Voila si vous voyez comment modifier mon code...
Je ne suis pas développeur [:spamafote]
 
Merci d'avance


Message édité par karoli le 11-03-2004 à 12:13:57
mood
Publicité
Posté le 10-03-2004 à 11:38:05  profilanswer
 

n°669668
axl63800
Posté le 10-03-2004 à 14:39:19  profilanswer
 

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
   
  Me.TextBox1 = Me.TextBox1 & Chr(KeyAscii)  
  If Me.TextBox1.LineCount > 3 Then  
      KeyAscii = 0    
  End If  
  Me.TextBox1 = Left(Me.TextBox1, Len(TextBox1) - 1)
  End Sub
 
Essaie comme ca je pense que ca devrais marché et reoudre ton probleme d'edition

n°669876
karoli
Posté le 10-03-2004 à 16:29:54  profilanswer
 

Salut axl et merci pour ton aide  :jap:  
 
Malheureusement, elle n'a aucun effet sur mon problème :/
 
Mais je suis sur que vous allez me sortir de l'embarras  ;)

n°669878
axl63800
Posté le 10-03-2004 à 16:32:27  profilanswer
 

comment ca tu as tjrs ton probleme d'édition??? c'est pas trop normal ca!! comprend pas

n°669887
karoli
Posté le 10-03-2004 à 16:38:30  profilanswer
 

ca ne change strictement rien [:spamafote]
 
:(

n°670302
couitchy
Posté le 10-03-2004 à 21:52:43  profilanswer
 

et si au lieu de faire ton traitement sur le key_press, tu le fais sur le key_up en remplaçant keyascii par keycode, ça marche ?


Message édité par couitchy le 10-03-2004 à 21:55:53
n°670506
karoli
Posté le 11-03-2004 à 08:44:06  profilanswer
 

Salut couitchy,
Non ca na marche pas !
Si j'utilise ma procédure( avec evenement Keyup et keycode), le comportement est assez loufoque  :pt1cable:  
 
Et si j'utilise la procedure d'axl avec tes changements, on peut editer un caractere a la fois (c'est mieux que rien ;) )mais par contre le "enter" est doublé :/
 
Allez, on ne desespere pas !  
entre vous, les "habitants" d'autres forums ou j'ai poste mon probleme, et ma maigre contribution, on devrait s'en sortir :o
 
Encore merci
Allez, on ne se relache pas ;)


Message édité par karoli le 11-03-2004 à 09:20:13
n°670641
karoli
Posté le 11-03-2004 à 12:15:44  profilanswer
 

re-
 
Bon j'ai resolu le probleme en inserant une partie de mon code de l'evenement keypress dans le code de l'evenement keydown, qui lui gerait le nombre de fois ou l'utilisateur pouvait utiliser la touche "enter".
 
Je vous mets le code pour info :
 

Code :
  1. Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2. Dim B As Integer, A As Integer, NbEnter As Integer, NbLignes As Integer
  3. Static C As Integer, D As Integer
  4. NbEnter = 9     'à déterminer
  5. NbLignes = 9    'à déterminer
  6. If Me.TextBox1 = "" Then A = 0
  7. If KeyCode = 13 Then
  8.     B = 1
  9.     Do
  10.         A = InStr(B, Me.TextBox1, Chr(10), vbTextCompare)
  11.         D = D + 1
  12.         B = A + 1
  13.     Loop Until A = 0
  14.     C = D
  15.     D = 0
  16.     If C >= NbEnter Then
  17.         KeyCode = 0
  18.     End If
  19. End If
  20. If Me.TextBox1.LineCount > NbLignes Then
  21.     Me.TextBox1 = Left(Me.TextBox1, Len(TextBox1) - 2)
  22. End If
  23. End Sub


 
Merci a tous


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

  [VB Excel] probleme dans textBox [RESOLU]

 

Sujets relatifs
[ASM GNU x86] Problème de segmentation fault [Résolu]Problème avec les Fonctions d'images comme getimagesize()
Utilisation de la fonction QueryPerformanceFrequency probleme ....Dreamweaver/SQL> problème de requête
J'ai un problème avec SCCANF() et les types de variables[ActiveX]problème de visualisation ActiveX de Acrobat Pdf
Petit problème !!![HTML/JS] Problème avec déplacement d'images et validation de position
[BATCH]Modifier sur le réseau des fichiers [RESOLU] 
Plus de sujets relatifs à : [VB Excel] probleme dans textBox [RESOLU]


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