• No results found

III. Inter-Cycle Correlation

3.4. Study on BEAVRS

PROCEDIMIENTO:

NOTA: Los nombres de la primera celda de cada hoja: INICIO_ALMACEN. INICIO_VENTAS, INICIO_FACTURAS, INICIO_DERECHOS e INICIO_MENU deberán definirse antes de grabar cada una de las macros.

Los códigos de las macros asignadas a cada botón del menú son los siguientes Sub A_ALMACEN()

' Macro para trasladarse a la hoja ALMACEN Application.Goto Reference:="INICIO_ALMACEN" End Sub

Sub A_VENTAS()

' Macro para trasladarse a la hoja VENTAS Application.Goto Reference:="INICIO_VENTAS" End Sub

Sub A_FACTURAS()

' Macro para trasladarse a la hoja FACTURAS Application.Goto Reference:="INICIO_FACTURAS" End Sub

Sub A_DERECHOS()

' Macro para trasladarse a la hoja DERECHOS Application.Goto Reference:="INICIO_DERECHOS" End Sub

Sub A_MENU()

' Macro para trasladarse a la hoja MENU Application.Goto Reference:="INICIO_MENU" End Sub

HOJA ALMACEN:

Debe definirse previamente un nombre (“PRODUCTOS”) para el rango que contendrá la lista de datos de almacén. Se sugiere establecer un rango para ingresar por lo menos 500 productos (A2:D503)

1. MACRO PARA AGREGAR NUEVOS PRODUCTOS:

Nombre de macro: NUEVO

PROCEDIMIENTO:

Se debe definir antes un nombre (“PRODUCTO_NUEVO”) para el área de productos adquiridos: (G5:G8) El código de la macro que agrega nuevos productos al almacén ya modificado queda de la forma siguiente:

Sub NUEVO()

' NUEVO - Macro que permite agregar nuevos productos al almacén. Application.Goto Reference:="INICIO_ALMACEN"

RESP = vbYes

Do WhileRESP = vbYes

Application.Goto Reference:="R5C7" CLAVE = InputBox("ESCRIBE LA CLAVE") ActiveCell.FormulaR1C1 = CLAVE

ActiveCell.Offset(1, 0).Range("A1").Select

PRODUCTO = InputBox("ESCRIBE NOMBRE DE PRODUCTO") ActiveCell.FormulaR1C1 = PRODUCTO

ActiveCell.Offset(1, 0).Range("A1").Select

PRECIO = InputBox("ESCRIBE PRECIO DEL PRODUCTO") ActiveCell.FormulaR1C1 = PRECIO

ActiveCell.Offset(1, 0).Range("A1").Select

CANT = InputBox("TECLEA LA CANTIDAD COMPRADA") ActiveCell.FormulaR1C1 = CANT Application.Goto Reference:="PRODUCTO_NUEVO" Selection.Copy Application.Goto Reference:="R1C1" Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=True Application.CutCopyMode = False

RESP = MsgBox("¿DESEAS CAPTURAR OTRO PRODUCTO?", vbYesNo)

Loop

Application.Goto Reference:="R1C1" End Sub

2. MACRO PARA ACTUALIZAR EXISTENCIAS EN ALMACEN (NUEVAS COMPRAS)

NOTA: Antes de proceder al grabado de la macro colocar funciones de búsqueda en G11, G12 y G13 que permitan consultar desde la base de datos el nombre, precio y existencia del producto que corresponde a la clave dada:

=BUSCARV(G10,PRODUCTOS,2,FALSO) =BUSCARV(G10,PRODUCTOS,3,FALSO) =BUSCARV(G10,PRODUCTOS,4,FALSO)

El código ya modificado de la macro que actualiza existencias en almacén queda de la forma siguiente: Sub ACTUALIZAR()

' Macro que actualiza existencias en Almacen

Application.Goto Reference:="INICIO_ALMACEN"

RESPUESTA = vbYes

Do WhileRESPUESTA = vbYes RESPUESTA2 = vbNo

Do While RESPUESTA2 = vbNo

Application.Goto Reference:="R10C7"

CLAVE = InputBox("FAVOR DE TECLEAR LA CLAVE") ActiveCell.FormulaR1C1 = CLAVE

Application.Goto Reference:="R14C7"

COMPRA = InputBox("FAVOR DE TECLEAR CANTIDAD COMPRADA") ActiveCell.FormulaR1C1 = COMPRA

RESPUESTA2 = MsgBox("¿EL DATO ES CORRECTO?", vbYesNo)

Loop

Selection.Copy

Application.Goto Reference:="R1C1"

Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _

xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate

ActiveCell.Offset(0, 3).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _ :=False, Transpose:=False

Application.CutCopyMode = False Application.Goto Reference:="R14C7" Selection.ClearContents

MsgBox "¡EL PRODUCTO SE HA ACTUALIZADO!", vbOKOnly

RESPUESTA = MsgBox("¿DESEA ACTUALIZAR OTRO PRODUCTO?", vbYesNo)

Loop

Application.Goto Reference:="R1C1" End Sub

3.- MACRO PARA BUSQUEDA DE PRODUCTOS EN ALMACEN:

NOTA: Este procedimiento permite hacer una búsqueda de un producto utilizando la clave o el nombre del mismo. La clave y nombre se deberá pedir a través de un Input Box. Colocar antes en G17, G18 Y G19 fórmulas para la búsqueda del NOMBRE, PRECIO y EXISTENCIA del producto que corresponde a la clave o nombre dados:

=BUSCARV(G16,PRODUCTOS,2,FALSO) =BUSCARV(G16,PRODUCTOS,3,FALSO) =BUSCARV(G16,PRODUCTOS,4,FALSO)

El código ya modificado de la macro para búsquedas en almacén queda de la forma siguiente: Sub BUSQUEDA()

' Macro para realizar BUSQUEDAS en almacén. Application.Goto Reference:="INICIO_ALMACEN"

CLAVE = InputBox("ESCRIBA LA CLAVE O NOMBRE DEL PRODUCTO BUSCADO") Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _

xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate

Selection.End(xlToLeft).Select Selection.Copy

Application.Goto Reference:="R16C7"

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

Application.CutCopyMode = False Application.Goto Reference:="R1C1" End Sub

HOJA VENTAS:

PROCEDIMIENTO:

A.) Antes de iniciar asegurarse que ya existe un nombre (“PRODUCTOS”) para el rango de la lista de productos que se encuentran en almacén. Si no es así deberá crearlo.

B.) Crear fórmulas de búsqueda en B4, B5 y B7 para saber el nombre del producto, precio y existencia: PROCEDIMIENTO PARA HACER LA BUSQUEDA:

Colocarse en la celda donde se va a colocar el Nombre del producto. Crear las formulas de búsqueda:

=BUSCARV(B3,PRODUCTOS,2,FALSO) Para el Producto

=BUSCARV(B3,PRODUCTOS,3,FALSO) Para el Precio

=BUSCARV(B3,PRODUCTOS,4,FALSO) Para la Existencia

El código Visual ya modificado de la macro para la hoja VENTAS queda de la forma siguiente: Sub VENTA()

' Macro para realizar una VENTA

Application.Goto Reference:="INICIO_VENTAS" RESP = vbYes

Do WhileRESP = vbYes

Application.Goto Reference:="R3C2"

CLAVE = InputBox("TECLEA LA CLAVE DEL PRODUCTO") ActiveCell.FormulaR1C1 = CLAVE

CORRECTA = vbNo

Do While CORRECTA = vbNo

Application.Goto Reference:="R6C2"

CANT = InputBox("TECLEA LA CANTIDAD SOLICITADA") ActiveCell.FormulaR1C1 = CANT

CORRECTA = MsgBox("¿LA CANTIDAD ES CORRECTA?", vbYesNo)

Loop

AUTORIZA = MsgBox("¿EL CLIENTE ACEPTA LA COMPRA?", vbYesNo) If AUTORIZA = vbNo Then

Application.Goto Reference:="INICIO_VENTAS" End

Else

Selection.Copy

Application.Goto Reference:="INICIO_ALMACEN"

Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _

xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate

ActiveCell.Offset(0, 3).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Application.Goto Reference:="INICIO_VENTAS" End If

RESP = MsgBox("¿DESEAS REGISTRAR OTRA VENTA?", vbYesNo)

Loop

Application.Goto Reference:="INICIO_VENTAS" End Sub

HOJA FACTURAS:

PROCEDIMIENTO:

PRODUCTOS (Hoja Almacén A2:D503), ARTS_VENDIDOS (A9:G19); y CLIENTE (B4:B5) son nombres de rango que tiene que definir con anterioridad. Además deberá poner un 1 en la celda F1 para inicializar el contador del consecutivo. El código Visual ya modificado de la macro FACTURAR queda de la forma siguiente:

Sub FACTURAR()

' Macro para llenar una FACTURA

Application.Goto Reference:="INICIO_FACTURAS" Application.Goto Reference:="R1C6"

Selection.Copy

ActiveCell.Offset(1, 0).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _ :=False, Transpose:=False

Application.CutCopyMode = False

Application.Goto Reference:="ARTS_VENDIDOS" Selection.ClearContents

CORRECTO = vbNo

Do WhileCORRECTO = vbNo

Application.Goto Reference:="CLIENTE" Selection.ClearContents

Application.Goto Reference:="R4C2"

NOMBRE = InputBox("INTRODUCE NOMBRE DEL CLIENTE") ActiveCell.FormulaR1C1 = NOMBRE

ActiveCell.Offset(1, 0).Range("A1").Select

DIRECCION = InputBox("INTRODUCE DIRECCION DEL CLIENTE") ActiveCell.FormulaR1C1 = DIRECCION

CORRECTO = MsgBox("LOS DATOS DEL CLIENTE ¿SON CORRECTOS?", vbYesNo)

Loop

RESPUESTA = vbYes Do While RESPUESTA = vbYes

Application.Goto Reference:="R7C1" Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Range("A1").Select

CLAVE = InputBox("INTRODUCE LA CLAVE DEL PRODUCTO A VENDER") ActiveCell.FormulaR1C1 = CLAVE ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],PRODUCTOS,2,FALSE)" ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],PRODUCTOS,3,FALSE)" ActiveCell.Offset(0, 1).Range("A1").Select

CANTIDAD = InputBox("INTRODUCE LA CANTIDAD A VENDER") ActiveCell.FormulaR1C1 = CANTIDAD

Selection.Copy

Application.Goto Reference:="INICIO_ALMACEN"

Cells.Find(What:=CLAVE, After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate

ActiveCell.Offset(0, 3).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Application.Goto Reference:="INICIO_FACTURAS" Application.Goto Reference:="R7C1" Selection.End(xlDown).Select ActiveCell.Offset(0, 4).Range("A1").Select ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=RC[-1]*15%" ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"

Loop

Application.Goto Reference:="R20C7" Selection.Copy

Application.Goto Reference:="R2C9"

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _ :=False, Transpose:=False

Application.CutCopyMode = False Application.Goto Reference:="R1C1" End Sub

C

Coommeennttaarriiooss

Deseamos que el presente material de apoyo le haya facilitado el aprendizaje de los temas que componen cada módulo de este evento y que le sea útil para futuras consultas.

Le felicitamos por haber concluido este curso de capacitación, continúe practicando; recuerde que su habilidad dependerá del manejo cotidiano de esta paquetería.

Le invitamos a tomar el curso de Excel 2003 Intermedio, en el cual conocerá el uso de las Tablas Dinámicas, Escenarios, Esquemas, Funciones de Bases de Datos, Solver, Buscar Objetivos, etc., dichas herramientas le ayudarán a realizar mejor sus funciones laborales y personales, con Excel 2003 Avanzado, aprenderás a crear y aplicar las macros de Excel, con esta herramienta podrás automatizar todos tus procesos de una manera eficaz, atrévete a entrar al mundo maravilloso de la aplicación de las matemáticas en una hoja de cálculo.

La perseverancia nos lleva al ÉXITO ¡ C a p a c í t a t e !

Bibliografía:

La BIBLIA de Microsoft Office 2003 Ed Bott

Woody Leonhard

Editorial Anaya Multimedia País España

1084 Páginas 2005

Edición Especial Microsoft Office XP ED BOTT y WOODY LEONHARD Editorial Prentice Hall

País España 1344 Páginas 2004

Microsoft Excel 2003 Paso a Paso C. Nossiter Joshua

Editorial Prentice Hall País México

426 Páginas 2004

Excel 2003 Super Book McFedries Paul

Editorial SAMS Publishing País EEUU

1772 Páginas 2004

Obra literaria propiedad del: Centro Nacional de Capacitación y Calidad IMSS-SNTSS Elaborado por: Eliseo Robles Hernández

Related documents