Foros del Web » Soporte técnico » Ofimática »

Unir codigo de varios TextBox en una sola rutina y que responda a todos

Estas en el tema de Unir codigo de varios TextBox en una sola rutina y que responda a todos en el foro de Ofimática en Foros del Web. Hola. Repito el titulo Unir código de varios TextBox en una sola rutina y que responda a todos Tengo Excel 2010 y 2013 Código: Private ...
  #1 (permalink)  
Antiguo 24/08/2015, 16:16
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 17 años, 3 meses
Puntos: 39
Unir codigo de varios TextBox en una sola rutina y que responda a todos

Hola. Repito el titulo
Unir código de varios TextBox en una sola rutina y que responda a todos

Tengo Excel 2010 y 2013
Código:
Private Sub CommandButton1_Click()

Dim i As Double
Dim final As Double
Dim hoy As Date
Dim validar As Boolean

Application.ScreenUpdating = False


'ELEGIR PERSONA JURIDICA
If ALTA_CLIENTE.ComboBox1 = Empty Then
MsgBox "DEBES SELECCIONAR LA PERSONALIDAD JURIDICA DEL CLIENTE", vbInformation, "PERSONALIDAD JURIDICA"
Exit Sub
End If

'NOMBRE DEL CLIENTE
If ALTA_CLIENTE.TextBox1 = Empty Then
MsgBox "DEBES INTRODUCIR EL NOMBRE DEL CLIENTE", vbInformation, "NOMBRE O RAZÓN SOCIAL"
Exit Sub
End If

'PRIMER APELLIDO DEL CLIENTE.
If ALTA_CLIENTE.TextBox2 = Empty And ALTA_CLIENTE.ComboBox1 <> "PERSONA JURIDICA" Then
MsgBox "DEBES INTRODUCIR EL PRIMER APELLIDO DEL CLIENTE", vbInformation, "PRIMER APELLIDO"
Exit Sub
End If

'SEGUNDO APELLIDO DEL CLIENTE
If ALTA_CLIENTE.TextBox3 = Empty And ALTA_CLIENTE.ComboBox1 <> "PERSONA JURIDICA" Then
MsgBox "DEBES INTRODUCIR EL SEGUNDO APELLIDO DEL CLIENTE", vbInformation, "SEGUNDO APELLIDO"
Exit Sub
End If

'SEXO DEL CLIENTE
If ALTA_CLIENTE.OptionButton1.Value = False And ALTA_CLIENTE.OptionButton2.Value = False And ALTA_CLIENTE.ComboBox1 <> "PERSONA JURIDICA" Then
MsgBox "DEBES INDICAR EL SEXO DEL CLIENTE", vbInformation, "SEXO"
Exit Sub
End If

'FECHA DE NACIMIENTO
If ALTA_CLIENTE.TextBox4 = Empty And ALTA_CLIENTE.ComboBox1 <> "PERSONA JURIDICA" Then
MsgBox "INTRODUCE LA FECHA DE NACIMIENTO DEL CLIENTE", vbInformation, "FECHA DE NACIMIENTO"
Exit Sub
End If
validarfecha = IsDate(ALTA_CLIENTE.TextBox4.Value)
If validarfecha = False And ALTA_CLIENTE.ComboBox1 <> "PERSONA JURIDICA" Then
MsgBox "DEBES INTRODUCIR EL SIGUIENTE FORMATO PARA LA FECHA 00/00/0000", vbCritical, "FECHA DE NACIMIENTO"
Exit Sub
End If

'HACEMOS UN CONTROL DE QUE LA FECHA NUNCA SEA MAYOR QUE EL DÍA DE HOY
hoy = Date
If (ALTA_CLIENTE.TextBox4.Value) > hoy And ALTA_CLIENTE.ComboBox1 <> "PERSONA JURIDICA" Then
MsgBox "LA FECHA QUE ESTÁS INTRODUCIENDO ES MAYOR QUE EL DÍA DE HOY, ASEGÚRATE QUE LOS DATOS INTRODUCIDOS SON CORRECTOS", vbCritical, "FECHA DE NACIMIENTO"
Exit Sub
End If


'TIPO DE DOCUMENTO QUE LO ACREDITA
If ALTA_CLIENTE.ComboBox2 = Empty Then
MsgBox "DEBES INDICAR UN TIPO DE DOCUMENTO", vbInformation, "TIPO DE DOCUMENTO"
Exit Sub
End If


'NUMERO DE DOCUMENTO
If ALTA_CLIENTE.TextBox5 = Empty Then
MsgBox "DEBES INTRODUCIR UN NUMERO DE DOCUMENTO", vbInformation, "NUMERO DE DOCUMENTO"
Exit Sub
End If

'NUMERO DE DOCUMENTO
If ALTA_CLIENTE.ComboBox1 = "PERSONA JURIDICA" And ALTA_CLIENTE.ComboBox2 <> "CIF" Then
MsgBox "UNA PERSONA JURIDICA SOLO PUEDE TENER CIF COMO NUMERO DE DOCUMENTO", vbExclamation, "NUMERO DE DOCUMENTO"
Exit Sub
End If

'NUMERO DE DOCUMENTO
If ALTA_CLIENTE.ComboBox1 = "PERSONA FISICA" And ALTA_CLIENTE.ComboBox2 = "CIF" Then
MsgBox "UNA PERSONA FISICA NO PUEDE TENER CIF COMO NUMERO DE DOCUMENTO", vbExclamation, "NUMERO DE DOCUMENTO"
Exit Sub
End If


'TIPO DE VIA
If ALTA_CLIENTE.ComboBox3 = Empty Then
MsgBox "DEBES INDICAR UN TIPO DE VIA", vbInformation, "TIPO DE VIA"
Exit Sub
End If


'NOMBRE DE LA VIA
If ALTA_CLIENTE.TextBox6 = Empty Then
MsgBox "DEBES INTRODUCIR EL NOMBRE DE LA VIA", vbInformation, "NOMBRE DE LA CALLE"
Exit Sub
End If

'NUMERO DE LA VÍA
If ALTA_CLIENTE.TextBox7 = Empty Then
MsgBox "INTRODUCE EL NUMERO DE LA VIA", vbInformation, "NUMERO"
Exit Sub
End If
'CONTROLAMOS QUE SEA NUMERO, EN CASO DE NO TENER NUMERO "S/N"
Validarn_via = IsNumeric(ALTA_CLIENTE.TextBox7.Value) Or ALTA_CLIENTE.TextBox7.Value = "S/N"
If Validarn_via = False Then
MsgBox "DEBES INTRODUCIR UN DATO NUMÉRICO EN NUMERO DE VIA O SIN NUMERO CON LAS SIGUIENTES LETRAS:S/N", vbCritical, "NUMERO"
Exit Sub
End If

'NUMERO DE PISO
If ALTA_CLIENTE.TextBox8 = Empty Then
MsgBox "INTRODUCE EL NUMERO DE PISO", vbInformation, "PISO"
Exit Sub
End If
'CONTROLAMOS QUE SEA NUMERO, O SI ES VIVIENDA UNIFAMILIAR
Validarn_via = IsNumeric(ALTA_CLIENTE.TextBox8.Value) Or ALTA_CLIENTE.TextBox8.Value = "CASA"
If Validarn_via = False Then
MsgBox "DEBES INTRODUCIR UN DATO NUMÉRICO EN NUMERO DE PISO O SI SE TRATA DE UNA CASA INDICAR: CASA", vbCritical, "PISO"
Exit Sub
End If

'LETRA O PUERTA DE LA VIVIENDA
If ALTA_CLIENTE.TextBox9 = Empty Then
MsgBox "INTRODUCE LETRA O PUERTA", vbInformation, "LETRA/PUERTA"
Exit Sub
End If

'NOMBRE DE LA CIUDAD
If ALTA_CLIENTE.TextBox10 = Empty Then
MsgBox "INTRODUCE EL NOMBRE DE LA CIUDAD DEL CLIENTE", vbInformation, "CIUDAD"
Exit Sub
End If

'CODIGO POSTAL
If ALTA_CLIENTE.TextBox11 = Empty Then
MsgBox "INTRODUCE UN CODIGO POSTAL", vbInformation, "CODIGO POSTAL"
Exit Sub
End If
'CONTROLAMOS QUE SEA NUMERO
Validar_cpostal = IsNumeric(ALTA_CLIENTE.TextBox11.Value)
If Validar_cpostal = False Then
MsgBox "DEBES INTRODUCIR UN DATO NUMÉRICO PARA EL CODIGO POSTAL", vbCritical, "CODIGO POSTAL"
Exit Sub
End If

'ELEGIMOS PROVINCIA
If ALTA_CLIENTE.ComboBox4 = Empty Then
MsgBox "INDICA LA PROVINA DE RESIDENCIA DEL CLIENTE", vbInformation, "PROVINCIA/REGION"
Exit Sub
End If

'ELEGIMOS PAIS
If ALTA_CLIENTE.ComboBox5 = Empty Then
MsgBox "INDICA EL PAIS DE RESIDENCIA CLIENTE", vbInformation, "PAIS"
Exit Sub
End If

'TELEFONO MOVIL
If ALTA_CLIENTE.TextBox12 = Empty Then
MsgBox "INTRODUCE UN TELEFONO MOVIL DE CONTACTO", vbInformation, "TELEFONO MOVIL"
Exit Sub
End If
'CONTROLAMOS QUE SEA NUMERO
Validartelefono = IsNumeric(ALTA_CLIENTE.TextBox12.Value)
If Validartelefono = False Then
MsgBox "DEBES INTRODUCIR UN DATO NUMÉRICO PARA EL NÚMERO DE TELEFENO MOVIL", vbCritical, "TELEFONO MOVIL"
Exit Sub
End If

'CONTROLAMOS QUE SOLO QUE SEA NUMERO, PUEDE QUEDAR VACIO
Validartelefono = IsNumeric(ALTA_CLIENTE.TextBox13.Value)
If Validartelefono = False And ALTA_CLIENTE.TextBox13.Value <> Empty Then
MsgBox "DEBES INTRODUCIR UN DATO NUMÉRICO PARA EL NÚMERO DE TELEFONO FIJO", vbCritical, "TELEFONO FIJO"
Exit Sub
End If


'EMAIL
If ALTA_CLIENTE.TextBox14 = Empty Then
MsgBox "INTRODUCE UN CORREO ELECTRONICO DE CONTACTO", vbInformation, "EMAIL"
Exit Sub
End If
'CONTROLAMOS QUE TENGA "@" Y UN "."
If InStr(1, ALTA_CLIENTE.TextBox14.Text, "@") And InStr(1, ALTA_CLIENTE.TextBox14.Text, ".") = 0 Then
MsgBox "INTRODUCE UN CORREO ELECTRONICO VALIDO", vbCritical, "EMAIL"
Exit Sub
End If

Worksheets("DATOS").Visible = True
Worksheets("DATOS").Select

final = Range("J" & Rows.Count).End(xlUp).Row + 1
For i = 2 To final
If Worksheets("DATOS").Cells(i, 1) = Empty Then
final = i
Exit For
End If
Next

'VERIFICAR QUE NO EXISTA UN CLIENTE CON EL MISMO DOCUMENTO
For i = 2 To final
If Worksheets("DATOS").Cells(i, 10) = ALTA_CLIENTE.TextBox5 And Worksheets("DATOS").Cells(i, 9) = ALTA_CLIENTE.ComboBox2 Then
MsgBox "YA EXISTE UN CLIENTE CON ESE DOCUMENTO, REVISA LA INFORMACIÓN", vbCritical, "NUMERO DE DOCUMENTO"
ALTA_CLIENTE.TextBox5.BackColor = vbRed

Worksheets("DATOS").Visible = False
Application.ScreenUpdating = True

Exit Sub
Exit For
End If
Next

ALTA_CLIENTE.TextBox5.BackColor = vbWhite

CONFIRMAR_ALTA.Show

End Sub
Creo que toda rutina que tenga la misma finalidad, podría ser unida para no tener el evento tan largo.
Esto realmente será para expertos y conocedores, donde yo no estoy incluido

El mensaje debería ( pido) que el MsgBox mencione el control que le faltan datos

Gracias de una
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #2 (permalink)  
Antiguo 28/08/2015, 09:37
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 17 años, 3 meses
Puntos: 39
Respuesta: Unir codigo de varios TextBox en una sola rutina y que responda a todos

¿Se podría hacer algo?

El 1º lo resolví con ayuda de un amigo en la WEB, ahora me queda este

Código:
Private Sub ComboBox1_Change()

'CONDICIONAMOS EL TIPO DE CLIENTE PARA CUBRIR EL FORMULARIO Y DESACTIVAMOS TEXBOX SI SE TRATA DE JURIDICA

    If ComboBox1 = "PERSONA JURIDICA" Then
        TextBox2.Text = "NO"
        TextBox3.Text = "NO"
        TextBox4.Text = "NO"
        TextBox2.Enabled = False
        TextBox3.Enabled = False
        TextBox4.Enabled = False
        Frame2.Enabled = False
    Else
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox2.Enabled = True
        TextBox3.Enabled = True
        TextBox4.Enabled = True
        Frame2.Enabled = True
    End If
End Sub
Agradezco al alma generosa
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Etiquetas: excel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:37.