Formularios en Exel
Parte 1: ¿Qué nececitamos? y Base de datos
Parte 2. Funciones básicas de Exel
Parte 3. Relacionando tablas para conocer las Entradas y Salidas de los Productos
Parte 4: Rellenando de forma dinámica y profesional, nuestras bases de datos principales (proveedores, productos, clientes)
Entre las tablas que necesitamos desarrollar, están aquello cuyos datos, todos, los debemos ingresar nosotros mismos, por ejemplo, los datos de los clientes, proveedores, productos, insumos, ect; esta información que recolectemos luego se asociará a otros formularios y también alimentará las bases de datos que nos proveerán los indicadores para nuestra gestión.
Veamos un ejemplo:
Esta tabla de "Clientes", que también se puede usar para incluir a los "Proveedores", o si se desea hacerlos separados, describe los datos que necesitamos, Nombres, Número de identificación, Número de teléfono, Tipo de cliente, Dirección; puede más datos si así lo requiere o retirar los datos que no sea necesario para su análisis, cada quien debe decidir la cantidad mínima de campos a rellenar, para satisfacer su necesidad.
Existe cuatro (4) formas de rellenar ese formulario:
1. Forma directa:
- Consiste en rellenar linea por linea los datos requeridos directamente en la tabla.
2. Usando el Formulario creado por defecto de Exel:
- Al seleccionar la tabla realizada, en cualquier celda, se puede ir a la pestaña "Formulario" y dar "clic" en "Formulario"
- Se habilita instantáneamente un recuadro con campos identificados para rellenar, al dar "clic" en "Nuevo", los campos estarán disponibles para incluir los datos de un nuevo cliente, y después de rellenar todos los datos, se da "clic" en "nuevo" y la nueva linea de datos del cliente se agrega al final de la tabla.
3. Grabar una Macro:
- Las macros permiten codificar linea por linea cada acción que hacemos mientras grabamos la macro, es útil si aún no sabemos dominar el lenguaje de programacion de Visual Basic para Exel, además es muy recomendable para tareas sencillas y repetitivas.
- Seleccionar la Pestaña "Programador", si aún no tiene activa esta pestaña, igualmente la opción de Macros se puede ver en la pestaña "Vista", luego en el extremo derecho de la cinta de herramientas.
- Antes de grabar la macro:
2.1 Realizar un recuadro aparte con los mismos datos que se desean ingresar, abajo de el celdas en blanco donde rellenar los datos requeridos (esto es precio de activar la grabación de la macro).
2.2 Usar el recuadro para llenar los datos necesarios (antes de comenzar a grabar la macro) - Dar clic en "Grabar macro"
- Indicar el nombre de la macro y descripción de la misma.
- "Aceptar", a partir de ese momento se va grabar cada acción realizada dentro de Exel, pasos recomendados:
5.1 Ir a la segunda fila de la tabla de "Clientes" e incluir una fila nueva.
5.2 Seleccionar las celdas donde se copiaran los datos nuevos
5.3 "Pegar" y copiar "valores" en la nueva linea creada.
5.4 Ir a las celdas seleccionadas en el cuadro de relleno y borrarlas, esto es para que los datos escritos allí ya no estén después de copiarlas en la tabla.
5.5 "Detener la grabación de la macro"
5.6 Incluir un objeto, al que luego se le puede añadir la macro realizada, para que ejecute la acción.
Ejemplo de cómo usar la grabadora de la macro:
4. Realizar una macro desde el editor de Visual Basic
- Desde Exel teclear Alt + F11, o ir a la pestaña "Desarrolladores" o "Prigramadores" y dar clic en "Visual Basic"
- Ir a "Insertar" y seleccionar "UserForm"
- Allí diseñar el formulario deseado, para crear un formulario sencillo, solo nececitamos "Etiquetas" para escribir el concepto del capo a rellenar, "Cuadro de texto" donde rellenaremos la información a copiar, y un "Botón de comando" quien va a ejecutar la acción que le escribiremos.
- Código recomendado:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False 'ELIMINA LOS FLASHEOS DE LA MACRO
Dim hoja As String 'REGRESA A LA HOJA DESDE DONDE SE LLAMÓ
hoja = ActiveSheet.Name
Dim pregunta As String
pregunta = MsgBox("¿Ingreso nuevo cliente?", vbYesNo, "S.I.A")
If pregunta = vbNo Then
Exit Sub
Else
Sheets("CLIENTES").Select 'SELECCIONA LA HOJA DONDE SE VA REGISTRAR LOS DATOS
ActiveSheet.Unprotect
Range("B12").EntireRow.Insert 'INSERTA UNA FILA "LINEA" DONDE GRABAR DATOS NUEVOS
Range("B12").Value = Me.TXT1.Value 'CADA UNO DE ESTOS TXT SON LOS TextBox DONDE RELLENAS LOS DATOS, Y LOS RANGE ES LA UBICACIÓN DONDE DESEAS QUE SE COPIEN LOS DATOS TECLEADOS EN LOS CUADROS DE TEXTOS
Range("C12").Value = Me.TXT2.Value
Range("D12").Value = Me.TXT3.Value
Range("E12").Value = Me.TXT4.Value
Range("F12").Value = Me.TXT5.Value
Range("G12").Value = Me.TXT6.Value
Range("H12").Value = Me.TXT7.Value
Range("I12").Value = Me.TXT8.Value
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Worksheets(hoja).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
'PROTEGE CONTRA ESCRITURA LA HOJA ACTIVA
ActiveWorkbook.Save 'GUARDA LOS CAMBIOS REALIZADOS
Application.ScreenUpdating = True
End If
Unload Me 'CIERRA EL FORMULARIO
End Sub
Parte 5: Factura dinámica, con formulas y macros.
Continuará...