miércoles, 22 de enero de 2014

Macro para ingresar clientes con campos a activar.


Al momento de crear una base de datos en excel existen ciertas características que pueden pertenecer a todos los cliente y otras que solo alguno lo tienen. Pero en el momento de crear el formulario no es necesario tener todos los campos y que en todos los casos sean accesible puede llevar a ingresar datos de manera errónea. 

Para Ingresar los datos correspondientes al cliente, se elaboró una pantalla de inicio para proteger el resto de las hojas y así evitar errores por mal uso. 

Al apretar el botón para ingresar el nuevo cliente, se accede a un Formulario
Sub Ingresar_Empresas()
IngresarCliente.Show
End Sub

El cual es como se presenta a continuación

El cual tiene las siguientes macros asociadas
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If CheckBox7 = False Then
TextBox13.Value = "."
TextBox19.Value = "."
TextBox18.Value = "."
TextBox17.Value = "."
Else
End If


If (TextBox1.Value = "" Or TextBox2.Value = "" Or TextBox9.Value = "" Or TextBox10.Value = "" Or TextBox11.Value = "" Or TextBox12.Value = "") Then
MsgBox ("Faltan datos para ingresar cliente respectivo")
Else
'para ingresar los datos de los clientes
Sheets("Clientes").Unprotect
Sheets("Clientes").Select
Range("A1").Select
filafinal = Selection.End(xlDown).Row

FILANUEVA = filafinal + 1

Range("A" & FILANUEVA) = filafinal
Range("B" & FILANUEVA) = TextBox1.Value
Range("C" & FILANUEVA) = TextBox2.Value & TextBox3.Value
Range("D" & FILANUEVA) = TextBox9.Value
Range("E" & FILANUEVA) = TextBox10.Value
Range("F" & FILANUEVA) = TextBox11.Value
Range("G" & FILANUEVA) = TextBox12.Value


If CheckBox7.Value = True Then
contacto = 1
End If

Range("H" & FILANUEVA) = TextBox4.Value
    If contacto = 1 Then
    Range("I" & FILANUEVA) = TextBox13.Value
    Else
    Range("I" & FILANUEVA) = "S/I"
    End If
Range("J" & FILANUEVA) = TextBox15.Value
    If contacto = 1 Then
    Range("K" & FILANUEVA) = TextBox19.Value
    Else
    Range("K" & FILANUEVA) = "S/I"
    End If
Range("L" & FILANUEVA) = TextBox20.Value
    If contacto = 1 Then
    Range("M" & FILANUEVA) = TextBox18.Value
    Else
    Range("M" & FILANUEVA) = "S/I"
    End If
Range("N" & FILANUEVA) = TextBox8.Value
    If contacto = 1 Then
    Range("O" & FILANUEVA) = TextBox17.Value
    Else
    Range("O" & FILANUEVA) = "S/I"
    End If


Unload Me
ThisWorkbook.Save
Columns("A:O").EntireColumn.AutoFit
Range("A1").Select
Sheets("Clientes").Protect
Sheets("Inicio").Select
End If
Application.ScreenUpdating = True

End Sub




Para Hacer Visible el campo "extra", que en este caso son contactos se crea un checkbox en el formulario para mostrar o no los campos extras. 

Private Sub CheckBox7_Click()
If CheckBox7.Value = True Then

Label15.Visible = True
TextBox13.Visible = True
TextBox19.Visible = True
TextBox18.Visible = True
TextBox17.Visible = True
TextBox13.Value = ""
TextBox19.Value = ""
TextBox18.Value = ""
TextBox17.Value = ""

Else
Label15.Visible = False
TextBox13.Visible = False
TextBox19.Visible = False
TextBox18.Visible = False
TextBox17.Visible = False

End If
End Sub

Finalmente ingresando datos en la tabla correspondiente


Para observar el excel completo siga el siguiente enlace. 
https://db.tt/0bTyj9YQ

No hay comentarios:

Publicar un comentario