Académique Documents
Professionnel Documents
Culture Documents
Para desarrollar esté ejemplo vamos a utilizar los Botones de Opción de Programdor/Desarrollador
• En la hoja tabla elaborar tablas dinámicas con filtro de Servicios, Fila Cursos, Columnas Meses
• Selección el rango A6:N9, en la barra de fórmulas ingrese la siguiente fórmula y presione CONTROL
+ ENTER
=SI($I$2=1,Tabla!A5,SI($I$2=2,Tabla!A16,Tabla!A26))
• En la celda la fila 2, insertar Botón de Opción (Control de Número) y vincular con la celda I2
Una macro consiste en una serie de comandos y funciones que se almacenan en un MODULO de
MICROSOFT VISUAL BASIC y que puede ejecutarse siempre que sea necesario realizar alguna tarea.
Ej.: Crear una macro que muestre los registros de cualquier proveedor con monto menor a S/. 20,000.00
1) Ficha INSERTAR, grupo FORMAS, seleccionar un objeto que tenga área (BISEL de FORMAS
BASICAS)
2) Dibujar el objeto en la zona de trabajo e ingresar nombre al objeto.
d) ACEPTAR.
e) Para ejecutar la macro se debe hacer clic fuera del objeto, para luego hacer clic sobre el objeto.
Se debe ingresar al editor de Visual Basic siguiendo una de las siguientes formas:
• Forma1: Ficha DESARROLLADOR, grupo CODIGO, MACROS, seleccionar la macro, MODIFICAR.
• Forma2: Presionar las teclas ALT + F11.
Un libro con macros es un archivo de tipo diferente ya que posee extensión .XLSM, para ello:
a) Menu ARCHIVO.
b) GUARDAR COMO.
c) En la ventana mostrada seleccionar el lugar a guardar, ingresar el nombre y en tipo seleccione
la opción: LIBRO DE EXCEL HABILITADO PARA MACROS…
Dependiendo del nivel de seguridad del Excel en su computador se mostrará un mensaje sobre la barra de
fórmulas al momento de abrir el libro con macros…
Una instrucción es una unidad sintácticamente completa que expresa un tipo de acción, declaración o
definición. Entre las más importantes tenemos:
3.1.1. SUB:
Permite declarar un procedimiento al cual se le asignara un nombre seguido de paréntesis. Todas las
instrucciones que aparecen entre SUB y ENDSUB se ejecutaran.
3.1.2. REM o ‘:
Se utiliza para ingresar comentarios dentro del procedimiento los cuales se mostrarán de color verde.
3.1.3. SHEETS(hoja):
Hace referencia a una hoja de cálculo la cual debe estar escrita entre doble comilla.
3.1.4. SELECT:
3.1.5. RANGE(rango):
Hace referencia a una celda o rango de celdas, estas deben estar escritas entre doble comilla.
3.1.6. ACTIVECELL:
Hace referencia a la primera celda de un rango previamente seleccionado, también se utiliza para ingresar
datos.
3.1.7. OFFSET(fila,columna):
3.1.8. CLEARCONTENTS:
3.1.9. MSGBOX:
Crea una interfaz entre el usuario y el programa y sirve para mostrar, recibir o devolver información del
usuario.
3.1.11. IF = SI
Si deseamos exportar alguna información en PDF para luego imprimirla o almacenarlo, esto se debe codificar.
Así mismo cuando consideramos que nuestra información debe permanecer segura, debemos colocar usuario
y contraseña.
Realizamos la acción de como guardar en PDF encendido la macros con el nombre de macros: Guardar_PDF
y nombre del archivo: Factura_Envi_PDF. Luego nos dirigimos al Visual Basic (Alt + F11) para ver los códigos
Sub Guardar_PDF()
'
' Guardar_PDF Macro
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\ENVI COMPANY_SRL\ENVI 2019\Cursos\Clases\Excel\Nivel III\Excel_Nivel III_Clase
04\Modelo\Reportes\Factura_Envi_PDF.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub
El archivo se habrá guardado en PDF, podemos adicionar la macros a un botón y comprobarlo. Siempre va
guardar con el mismo nombre. Sin embargo, cuando se crea archivos consecutivos, como facturas, recibos u
otros están pueden guardarse en forma ascendente o considerando el nombre de la entidad.
Así mismo, esta macros siempre nos guardar la hoja activa sin limitaciones. Pero por ejemplo si queremos
solo un rango, donde se concentra la información necesaria, se debe modificar en el VB, de la forma
siguiente:
Sub Guardar_PDF1()
'
' Guardar_PDF Macro
'
'
Ruta_PDF = "D:\ENVI COMPANY_SRL\ENVI 2019\Cursos\Clases\Excel\Nivel III\Excel_Nivel III_Clase 04\Modelo\Reportes\"
Nombre_PDF = "Factura_N°_001-000" & Range("NFACTURA") & "_" & Range("NOMBRE")
Worksheets("Factura").Range("A1:H26").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Ruta_PDF & Nombre_PDF, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub
La información se irá guardando de forma consecutiva.
Else
MsgBox "Datos Incorrectos"
End If
End Sub
• Finalmente obtendremos lo siguiente:
Cuando vamos de compras y deseamos finalmente hacer el pago de producto, observamos que algunas
entidades manejan un tipo de sistema programado que te permiten ingresar tus datos y por consiguiente
generar la boleta. Trabajaremos en el siguiente ejemplo la elaboración de lo mencionado anteriormente:
• Paso 1: A la hoja precios, seleccionamos el rango A3:C15 le vamos a convertir en Tabla,
presionando CTRL+T y luego le damos el nombre de tabla de “Precios”, lo mismo en “Clientes”.
• Paso 2: Creamos una nueva hoja que lo llamaremos factura y elaboramos como se muestra en la
siguiente imagen:
• Paso 5: Mostrar Lista: Presionamos ALT + F11; insertamos un Formulario (Lo llamaremos
“Clientes”), ingresamos un cuadro de texto (lo llamamos “Texto”) y otro cuadro de lista (lo llamamos
“Lista”)
• Paso 6: Doble clic en el formulario (en Clientes) → e ingrese los siguientes códigos, para mostrar el
formulario hacemos clic en Ejecutar Sub/UseForm (F5)
• Paso 7: Regresamos al formulario (“Clientes”) y hacemos doble clic en el cuadro de texto (Llamado
“Texto”) e ingresamos lo siguiente:
End Sub
Filtra los datos de acuerdo a que ingreses el nombre
• Paso 8: Ingresar cliente: regresamos al formulario (“Clientes”) y hacemos doble clic en el cuadro de
lista (Llamado “Lista”) e ingresamos lo siguiente:
End Sub
• Paso 9: Creamos un módulo e ingresamos los siguientes códigos y luego adicionamos esta macro a
la primera lupa en la hoja Factura:
• Paso 10: Ingrese las siguientes fórmulas en las siguientes celdas y rangos:
D10:E10 → =SI.ERROR(BUSCARV(G7,Clientes,2,FALSO),"")
D11:E11 → =SI.ERROR(BUSCARV(G7,Clientes,4,FALSO),"")
G10 → =SI.ERROR(SI(G11="","",HOY()),"")
G11 → =SI.ERROR(BUSCARV(G7,Clientes,3,FALSO),"")
• Paso 12: Doble clic en el formulario (en Servicios) → e ingrese los siguientes códigos, para mostrar
el formulario hacemos clic en Ejecutar Sub/UseForm (F5):
DEBERÁ MOSTRAR
LA LISTA DE LOS
SERVICIOS A
OFRECER
• Paso 13: Regresamos al formulario (“Servicios”) y hacemos doble clic en el cuadro de texto (Llamado
“Texto”) e ingresamos lo siguiente:
Next
End Sub
Luego de culminado se podrá filtrar el Servicio a ofrecer
• Paso 14: Ingresar servicio a celda: regresamos al formulario (“Servicios”) y hacemos doble clic en
el cuadro de lista (Llamado “Lista”) e ingresamos lo siguiente:
While ActiveCell.Value <> "" And ActiveCell.Value <> L And ActiveCell.Value <> Val(L)
ActiveCell.Offset(1, 0).Select
Wend
mensaje = Lista.List(Lista.ListIndex, 0)
Sheets("Factura").Select
Rows("14:14").Select
Range("C14").Select
ActiveCell.Value = mensaje
Unload Me
ERR:
End Sub
• Paso 15: En el módulo creado ingresamos los siguientes códigos y luego adicionamos esta macro a
la segunda lupa en la hoja Factura:
• Paso 16: Ingresamos las siguientes fórmulas en los rangos y celdas correspondientes:
D14 → =BUSCARV([@Código],Servicios,2,FALSO)
F14 → =BUSCARV([@Código],Servicios,3,FALSO)
G14 → =[@Cantidad]*[@Precio]
• Pasos siguientes: Exporte a PDF y borre todos los datos generando nueva factura, para lo cual
deberá asignar dos iconos y adicionarlos.
• Paso1: En el siguiente ejemplo observamos que al abrir los datos se muestran de la siguiente forma:
Sin embargo, cuando realizamos cambios en la base de Datos o ingresamos nuevos datos, está tabla
dinámica no tendrá cambios, al no ser que uno lo actualice de forma manual. Como claro ejemplo tenemos
visualizamos a continuación:
• Paso 2: Realizamos cambios en la base de Datos en las columnas F, G y H, tanto en el nombre
como los valores
Pero la tabla dinámica no surge ningún cambio y se mantiene como al inicio. Por lo que siempre se debe
actualizar de forma manual, al no ser que se establezca una macros para evitar realizar esto de forma
repetitiva.
• Paso 5: Presionar ALT + F11, que nos dirige al visual Basic, hacemos clic en la hoja en que estamos
trabajando las tablas dinámicas e ingresamos lo siguientes códigos: