Macro Función Excel, para varios controles de texto

Te dejo esta tu función la cual es una maravilla para la obligatoriedad de TENER que insertar esa cantidad de dígitos.

En algunos casos, si es necesaria porque al errar en la introducción de dígitos como es el # teléfono, identificación y algunos otros, esta función es necesaria.

Tengo Cajas de texto que TIENEN que tener 6 dígitos y otras 12 y otras 10.

Ej.: Cod Producto, 6 dígitos, Teléfono 12 dígitos, identificación 14 dígitos

Me pregunta es:

Para MAX dígitos tengo, para MIN, esta función pero, ¿cómo hacer que la misma función me dé para mas de un control que cada control con distinta cantidades de dígitos?

La función:

Function valida(wtext As MSForms.Control, num)
'Por.Dante Amor 'Valida contenido de un textbox
'obligar insertar minimo 10 caracteres
    If Len(wtext) <> 10 Then
        MsgBox "El " & num & " no contiene la cantidad de dígitos necesarios", 64, ""
        wtext.SetFocus
        valida = False
    Else
        valida = True
    End If
End Function
En código de botón
'Por.Dante Amor
    'If valida(txtCod, "Cod/Producto") = False Then Exit Sub ''AQUI 6 DIGITOS MINIMO
    If valida(txtFFact, "Fecha Factura") = False Then Exit Sub 'AQUI 10 DIGITOS MINIMO
    'If valida(txtUbic, "Identificación") = False Then Exit Sub  'AQUI 14 DIGITOS MINIMO

En la línea      If Len(wtext) <> 10 Then no me acepta

    If Len(wtext) <> 10 or Len(wtext) <> 6 or Len(wtext) <> 14 Then

1 Respuesta

Respuesta
1

H o l a:

Le agregué el parámetro "cantidad", entonces le vas a enviar a la función valida( ), 3 parámetros:

1. El nombre del textbox

2. El texto que quieres que aparezca en el msgbox

3. La cantidad de dígitos permitida

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If valida(txtCod, "Cod/Producto", 6) = False Then Exit Sub ''AQUI 6 DIGITOS MINIMO
    If valida(txtFFact, "Fecha Factura", 10) = False Then Exit Sub 'AQUI 10 DIGITOS MINIMO
    If valida(txtUbic, "Identificación", 14) = False Then Exit Sub  'AQUI 14 DIGITOS MINIMO
End Sub
'
Function valida(wtext As MSForms.Control, texto, cantidad)
'Por.Dante Amor 'Valida contenido de un textbox
    If Len(wtext) <> cantidad Then
        MsgBox "El " & texto & " no contiene la cantidad de dígitos necesarios", 64, ""
        wtext.SetFocus
        valida = False
    Else
        valida = True
    End If
End Function

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas