Macro en Excel con error 13

'controlamos que para dni, nif y cif la longitud de caracteres sea de 9 posiciones
If ComboBox2 = "NIF" And "NIE" AND "NIC" Then ''si en combobox2 dice nif o nie o nic entonces textbox5 max caracteres 9,

TextBox5.MaxLength = 9
Else ' SI NO
TextBox5.MaxLength = 0 'TEXTBOX5 MAX CARACTERES 0

Le he dado vueltas y buscando pero no he logrado acomodar
Agradezco alguien que me oriente sobre este fallo y donde esta

1 Respuesta

Respuesta
1

El código:

If ComboBox2 = "NIF" Or ComboBox2 = "NIE" Or ComboBox2 = "NIC" Then
    TextBox5.MaxLength = 9
Else ' SI NO
    TextBox5.MaxLength = 0 'TEXTBOX5 MAX CARACTERES 0
End If

s a l u d o s

venia precisamente a dejar mensaje por lo que he probado

Entre otras opciones que he probado, sin resultado

If ComboBox2 = "NIF" Or ComboBox2 = "CIF" Then
TextBox5.MaxLength = 9
Else
TextBox5.MaxLength = 0

Siempre de una o otra forma, siempre me deja introducir miles de caracteres

Tu pregunta era sobre cómo poner las condiciones en el combobox, eso ya está resuelto.

Este tema sobre la longitud en el textbox5 es otra cosa. Si no lo explicas desde el principio no lo puedo saber.

Si pones esto TextBox5. MaxLength = 0, le estás diciendo que no hay límite de caracteres.

Si por 0, te refieres a que no quieres escribir, entonces tienes que bloquear el textbox5:

If ComboBox2 = "NIF" Or ComboBox2 = "NIE" Or ComboBox2 = "NIC" Then
    TextBox5.Locked = False
    TextBox5.MaxLength = 9
Else ' SI NO
    'TextBox5.MaxLength = 0 'TEXTBOX5 MAX CARACTERES 0
    TextBox5.Locked = True
End If

El Lock funciona en vez de TextBox5.MaxLength = 0  pero

No me funciona     TextBox5.MaxLength = 9

Tendría que darle en la propiedad MaxLength para 9 caracteres

¿Qué e dices DAM? Dame tu la solución

Me equivoque, en la propiedad no sirve, tien que ser en el código

No se que esta pasando, dando en la ventana de propiedad MaxLength a 9 al TextBox5, tampoco me funciona, deja que entren miles de caracteres.

Será porque esta dentro de un frame?

Crea tu pregunta para revisar el maxlength y me envías el archivo para revisar tu formulario. Recuerda poner en el desarrollo de la pregunta que es para Dante Amor

A mi me funciona con código o en la propiedad.

Ok amigo, voy

Hola DAM

Solo para darte conocimiento que:

Después de tanto batalar conmigo mismo (sin ayuda solo con algunos criterios) di con el problema de que no respondiera el Maxlengh. Todo porque tenia en el mismo evento Private Sub ComboBox2_Change() rutina para que limpiara el textBox5

Para cuando se cambie el valor del ComboBox2, limpia el TextBox5

If ComboBox2 = "NIF" Then
TextBox5.Value = Empty
End If
If ComboBox2 = "NIE" Then
TextBox5.Value = Empty
End If
If ComboBox2 = "CIF" Then
TextBox5.Value = Empty
End If
If ComboBox2 = "PASAPORTE" Then
TextBox5.Value = Empty
End If
If ComboBox2 = "DE ORIGEN" Then
TextBox5.Value = Empty
End If
If ComboBox2 = "CIUDADANO" Then
TextBox5.Value = Empty
End If
If ComboBox2 = "RESIDENTE" Then
TextBox5.Value = Empty
End If
Private Sub ComboBox2_Change()
'CONTROLAMOS QUE PARA, NIF, NIE y CIF SE HABILITE EL TEXTBOX5 Y MAX DE CARACTERES SEAN 9
cmb = ComboBox2
    With TextBox5
        If cmb = "PASAPORTE" Or cmb = "DE ORIGEN" Or cmb = "RESIDENTE" Then
            .Enabled = False
            .Text = "N/A"
        Else
            .Enabled = True
            .Text = ""
            .MaxLength = 9
        End If
    End With
End Sub

Construi esto y no me daba, hasta que desactive lo de arriba y listo.

Al menos lo básico me va dando. De todo todo, muchas gracias amigo

Es por eso que a mi sí me funcionaba, no podría saberlo si no pones el código completo de lo que tienes.

Un abrazo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas