[VB] [évènement clavier souris] [touche enter
julia82
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
said1658 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
said1658 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonjour et merci à ceux qui m’ont déjà répondu auj., :)
Toujours des questions sur VB (je débute dans ce langage)…
Je veux faire un événement clavier et un événement souris qui écoute un champ texte. (Le but est de contrôler que le contenu soit bien un num. de carte d’identité.. )
Je voudrais appeler Verificar_NIF… quand l’utilisateur appuie sur entrée (evt clavier) et aussi quand il sort du champ (evt souris).
Je mets le code à la fin du message :
Ce code ne fait rien (je sais que ma fonction Verificar.. fonctionne car je l’ai testée). Il ne me fait même pas le msgBox avec le code de la touche.
Je cherche donc :
- code de la touche entrée (vbclrf je crois ou 13 en valeur), et la fonction qui peut la comparer au KeyAscii poussé : cInt, Cstr,car…. ?
- S’il y a une erreur de code ou dans mon événement clavier TextBox121_KeyPress ou ds mon évènement souris TextBox121_LostFocus
- Si j’ai bien utilisé les bons types d’évènements…
Merci beaucoup !
Julia
frigierejulia@yahoo.fr
Toujours des questions sur VB (je débute dans ce langage)…
Je veux faire un événement clavier et un événement souris qui écoute un champ texte. (Le but est de contrôler que le contenu soit bien un num. de carte d’identité.. )
Je voudrais appeler Verificar_NIF… quand l’utilisateur appuie sur entrée (evt clavier) et aussi quand il sort du champ (evt souris).
Je mets le code à la fin du message :
Ce code ne fait rien (je sais que ma fonction Verificar.. fonctionne car je l’ai testée). Il ne me fait même pas le msgBox avec le code de la touche.
Je cherche donc :
- code de la touche entrée (vbclrf je crois ou 13 en valeur), et la fonction qui peut la comparer au KeyAscii poussé : cInt, Cstr,car…. ?
- S’il y a une erreur de code ou dans mon événement clavier TextBox121_KeyPress ou ds mon évènement souris TextBox121_LostFocus
- Si j’ai bien utilisé les bons types d’évènements…
Merci beaucoup !
Julia
frigierejulia@yahoo.fr
'funcionamiento:escucha del control de NIF 'nota: cambiar por un nombre más adecuado (cuando nombre del control haya cambiado) Private Sub TextBox121_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Dim AllowedKeys As String 'control mientras tecleando (lo harémos luego) Dim NIF_entrado As String NIF_entrado = TextBox121.Text 'cambiar por un nombre más adecuado Dim valido As Boolean Dim KeysOfValidation As String 'Array de las teclas de validación KeysOfValidation = "{ENTER}" 'completar luego 'If InStr(KeysOfValidation , Chr(KeyAscii)) = 0 Then 'ha presado Enter MsgBox CStr(KeyAscii) If KeyAscii = CInt(vbCrLf) Then valido = Verificar_NIF(NIF_entrado) 'Controles: no se podrá salir del campo hasta que el NIF sea valido (por ejemplo) Dim mensaje_alert As String mensaje_alert = "No se podrá grabar el documento si los campos no son validos !" 'poner variables de control en un estado False (luego) If valido = False Then MsgBox mensaje_alert, vbOKOnly, "WARNING" End If End If End Sub ' ' Private Sub TextBox121_LostFocus() Dim NIF_entrado As String NIF_entrado = TextBox121.Text 'cambiar por un nombre más adecuado Dim valido As Boolean valido = Verificar_NIF(NIF_entrado) Dim mensaje_alert As String mensaje_alert = "No se podrá grabar el documento si los campos no son validos !" 'poner variables de control en un estado False (luego) 'Controles: no se podrá salir del campo hasta que el NIF sea valido (por ejemplo, hacerlo luego) If valido = False Then MsgBox mensaje_alert, vbOKOnly, "WARNING" End If End Sub
A voir également:
- [VB] [évènement clavier souris] [touche enter
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Quelle touche pour débloquer la souris ? - Guide
- Touche inser clavier - Guide
- Touche remanente windows - Guide
- Comment taper / sur clavier - Guide
3 réponses
salam,
au lieu de courriger ce programme et d'essayer de l'adapter pour fonctionner avec ton projet, je prefere que tu me donne une description du probleme.
decris moi le probleme et tu veux quoi comme resultat a la fin.
et qu'elles sont les entreré valides comme num. de carte d’identité
(donne moi un exemple de num. de carte d’identité valide et un autre non valide)
au lieu de courriger ce programme et d'essayer de l'adapter pour fonctionner avec ton projet, je prefere que tu me donne une description du probleme.
decris moi le probleme et tu veux quoi comme resultat a la fin.
et qu'elles sont les entreré valides comme num. de carte d’identité
(donne moi un exemple de num. de carte d’identité valide et un autre non valide)
je mets la fonction (qui marche je l'ai testée) mais elle appelle d'autres fonctions et vous allez vous régalez à lire tout ça :p
mais je crois que c'est peut-être ce que tu as dit du ByVal.
Thanks!
Julia
frigierejulia@yahoo.fr
mais je crois que c'est peut-être ce que tu as dit du ByVal.
Thanks!
Julia
frigierejulia@yahoo.fr
'función Verificar_NIF_para_Caixa() [en este caso del formulario] 'entrada: 'salida: True si valido / False si no valido (normalmente no hace falta, no habría que aceptar el documento si los datos contraladas no son validas 'funcionamiento: Public Function Verificar_NIF_para_Caixa(NIF_entrado As String) As Boolean Dim mensaje As String 'initialisation necessaire? mensaje = "" Dim valido As Boolean valido = Verificar_NIF(NIF_entrado, mensaje) If valido = True Then MsgBox mensaje, vbOKOnly, "Aviso" Verificar_NIF_para_Caixa = True Else MsgBox mensaje, vbOKOnly, "WARNING" Verificar_NIF_para_Caixa = False 'avisar que tiene que ser valido para la grabación del documento?? End If End Function 'función Verificar_NIF 'entrada: el NIF entero entrado por el usuario (cadena de caracteres) 'salida:el mensaje que hay que mandar al usuario 'funcionamiento: función principal que Public Function Verificar_NIF(valor As String, mensaje As String) As Boolean 'mensaje en paramètres???? Dim aux As String mensaje = "" valor = UCase(valor) 'ponemos la letra en mayúscula aux = Mid(valor, 1, Len(valor) - 1) 'quitamos la letra del NIF If Len(aux) >= 7 And IsNumeric(aux) Then aux = Calc_NIF(aux) 'calculamos la letra del NIF para comparar con la que tenemos Else MsgBox "El dato introducido no corresponde a un NIF" Verificar_NIF = True Exit Function End If If valor <> aux Then 'comparamos las letras mensaje = "El NIF " & valor & " es INCORRECTO" & vbCrLf ' & "D.N.I. Correcto: " & aux 'mensaje DNI? Verificar_NIF = True Else mensaje = "El NIF " & valor & " es CORRECTO" End If End Function 'función Calc_NIF 'entrada: la primera parte del NIF entrado por el usuario (debería ser 7 digitos) 'salida: el NIF que tendría que ser, en función de los digitos entrados 'funcionamiento: calcula la letra (que debería corresponder con la entrada en seguida de los digitos: ver función Verificar_NIF) a partir de los digitos entrados Public Function Calc_NIF(valor As String) As String Dim resto As Integer Dim letra_NIF As String letra_NIF = "" 'gestión de errores If valor = "" Then MsgBox "No se ha introducido datos", , "Aviso" Calc_NIF = "" Exit Function 'gestión de errores ElseIf Len(valor) < 7 Then MsgBox "No se puede calcular el NIF, faltan dígitos" Calc_NIF = "" Exit Function 'gestión de errores ElseIf Not IsNumeric(valor) Then MsgBox "el dato introducido no es numérico", , "Aviso" Calc_NIF = "" Exit Function 'comprobación del nif (ya el formato está comprobado) Else resto = Val(valor) Mod 23 Select Case resto Case 0 letra_NIF = "T" Case 1 letra_NIF = "R" Case 2 letra_NIF = "W" Case 3 letra_NIF = "A" Case 4 letra_NIF = "G" Case 5 letra_NIF = "M" Case 6 letra_NIF = "Y" Case 7 letra_NIF = "F" Case 8 letra_NIF = "P" Case 9 letra_NIF = "D" Case 10 letra_NIF = "X" Case 11 letra_NIF = "B" Case 12 letra_NIF = "N" Case 13 letra_NIF = "J" Case 14 letra_NIF = "Z" Case 15 letra_NIF = "S" Case 16 letra_NIF = "Q" Case 17 letra_NIF = "V" Case 18 letra_NIF = "H" Case 19 letra_NIF = "L" Case 20 letra_NIF = "C" Case 21 letra_NIF = "K" Case 22 letra_NIF = "E" End Select Calc_NIF = valor & letra_NIF Exit Function End If End Function
salam,
dans vb6 l'evenement Private Sub TextBox121_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) n'existe pas par contre tu dois mettre Private Sub TextBox121_KeyPress(KeyAscii As Integer)
tu n'as pas defini la fonction Verificar_NIF.
a mon avi tu as fais un copier collé de cette fonction que tu as inséré das ton projet.
pour quoi ne pas poser le prob en detail et donné une definition a la fonction que tu veux ajouter dans ton projet.
dans vb6 l'evenement Private Sub TextBox121_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) n'existe pas par contre tu dois mettre Private Sub TextBox121_KeyPress(KeyAscii As Integer)
tu n'as pas defini la fonction Verificar_NIF.
a mon avi tu as fais un copier collé de cette fonction que tu as inséré das ton projet.
pour quoi ne pas poser le prob en detail et donné une definition a la fonction que tu veux ajouter dans ton projet.