| |||
Respuesta: limitar textbox caracteres alfanumericos Haber si te sirve esto:
Código:
Solo cambia tus valores por los mios y creo que con esto se soluciona tu pedido.Private Sub TxtSD_KeyPress(KeyAscii As Integer) Dim sDecimal As String Dim sCar As String * 1 sCar = Chr(KeyAscii) 'KeyAscii = SoloNumeros(KeyAscii) If sCar = "." Or sCar = "," Then ' comprueba si se ha pulsado coma o punto y lo convierte al ' formato del sistema KeyAscii = IIf(sDecimal = ",", 44, 46) sCar = Chr(KeyAscii) ' si ya se ha puesto un punto decimal, no admite otro If (InStr(TxtSD, sCar) > 0) Then KeyAscii = 0 Exit Sub End If ElseIf InStr("0123456789.," & Chr(8), sCar) = 0 Then ' sólo admite números, signo negativo, punto, coma y retroceso KeyAscii = 0 Exit Sub ' comprueba que el signo menos esté sólo al principio ' Nota: Si no queremos negativos, quitar esta condición ElseIf sCar = "-" Then 'If InStr(2, "-", TxtNumeroSalida) = 0 Then If TxtSD.SelStart <> 0 Or InStr(TxtSD.Text, "-") > 0 Then KeyAscii = 0 End If End If End Sub Saludos |
| ||||
Respuesta: limitar textbox caracteres alfanumericos Hay otros modos de hacerlo:
Código vb:
Se admiten valores negativos, puntos de millar y una coma decimal.Ver original Si quieres usar comas para millares y puntos para decimales puedes hacer una función propia:
Código vb:
Ver original Lo he hecho a pelo. Espero que funcione.
__________________ No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza! |
| |||
Respuesta: limitar textbox caracteres alfanumericos Buen dia y que pasa si despues de la solucion dada aparece el error: Declaración de procedimiento no coincide con la descripción del evento o procedimiento que tiene el mismo nombre. y selecciona el paso de TxtSD_KeyPress(KeyAscii As Integer) A continuacion coloco el programa que estoy tratando que funcione: Private Sub Duracion_KeyPress(Keyascii As Integer) Keyascii = KeyControl(Keyascii, True) End Sub 'Función pasar el foco y permitir solo numeros o 'letras en un TextBox o MaskEdBox Public Function KeyControl(Keyascii As Integer, Optional SoloNum As Boolean = False) If SoloNum = True Then 'Solo se permiten numeros Select Case nKeyascii Case 8 'Permite borrar con retroceso Exit Function Case 13 'Pasa el foco al Sig. control nKeyascii = 0: SendKeys "{TAB}": Exit Function Case 48 To 57, 45 'Permite los numeros del 0 al 9 y el Signo de menos (-) Case Else 'No escribe nada y emite un BEEP nKeyascii = 0: Beep End Select End If End Function En otro paso del programa me toco colocar en comillas el change para ver si eso era lo que estab afectando pero me di cuenta que no 'Private Sub Duracion_Click() 'Dim Texto As String 'Dim Tipo As String ' Me.Porcentaje.Enabled = True ' ' If Ref <> "" And Entregable <> "Sin Predecesora ¬(X)" Then ' If Me.Duracion <> "" Then ' Me.Porcentaje.Enabled = False ' ' Select Case Me.Entregable ' ' Case "Final-Comienzo ¬(FC)" ' If Me.Duracion = 0 Then ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FF:", vbTextCompare) + 3, 10) ' Me.FechaInicio = Texto ' Else ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FF:", vbTextCompare) + 3, 10) ' Me.FechaInicio = DateValue(DateValue(Texto) + (Me.Duracion)) ' End If ' ' Case "Final-Final ¬(FF)" ' If Me.Duracion = 0 Then ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FF:", vbTextCompare) + 3, 10) ' 'MsgBox "La fecha de inicio debe ser igual o menor a: " & Me.FechaInicio ' Me.FechaFinal = Texto ' Else ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FF:", vbTextCompare) + 3, 10) ' 'MsgBox "La fecha de inicio debe ser igual o menor a: " & Me.FechaInicio ' Me.FechaInicio = DateValue(DateValue(Texto) + (Me.Duracion)) ' Me.FechaFinal = Texto ' End If ' ' Case "Comienzo-Final ¬(CF)" ' If Me.Duracion = 0 Then ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FI:", vbTextCompare) + 3, 10) ' Me.FechaFinal = Texto ' Else ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FI:", vbTextCompare) + 3, 10) ' Me.FechaInicio = DateValue(DateValue(Texto) + (Me.Duracion)) ' Me.FechaFinal = Texto ' End If ' ' Case "Comienzo-Comienzo ¬(CC)" ' If Me.Duracion = 0 Then ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FI:", vbTextCompare) + 3, 10) ' Me.FechaInicio = Texto ' Else ' Texto = Mid(Me.NodoReferencia, InStr(1, Me.NodoReferencia, "FI:", vbTextCompare) + 3, 10) ' Me.FechaInicio = Texto ' Me.FechaFinal = DateValue(DateValue(Texto) + (Me.Duracion)) ' End If ' ' End Select ' ' Else ' Me.Porcentaje.Enabled = True ' Me.Duracion.Enabled = False ' ' End If ' End If ' 'End Sub Gracias |
| |||
Respuesta: limitar textbox caracteres alfanumericos Alguien tiene idea de como hacer para que en un texbox solo se ingresen numeros y la coma esté como "flotante"? Explico para que deseo ingresar una temperatura corporal ej 39,70 y que en otro textbox me devuelva un valor según la temperatura ingresada. lo cual ya lo resolvi con If. |
Etiquetas: |