Está en la página 1de 177

INFORMATICA II

Compilador: Lic. Rosell Alejandro Valderrama Chumbes



















INTRODUCCIN
Microsoft Excel, es una aplicacin prctica orientada a construir libros y hojas que facilitan
el trabajo y mejorar la productividad es decir manejar Excel con eficiencia, en la
asignatura de Informtica II se aprender a usar las herramientas, comandos y funciones
orientadas a la parte contable.
Se iniciar resolviendo casos o aplicaciones contables y administrativas para que se
vayan familiarizando con las funcionalidades que brinda Excel.
Desarrollo de aplicaciones con macros y programacin VBA Visual Basic for Aplication,
con procedimientos y creacin de funciones para la optimizacin en funcionalidad y
procesos.




NDICE
INTRODUCCIN
SUMILLA


UNIDAD I APLICACIONES CON EXCEL
Sesin 1 Clculo de Depreciacin
Sesin 2 Letras por Cobrar
Sesin 3 Libro Caja y Bancos
Sesin 4 Trabajar con Macros
Sesin 5 Comprobantes de pago Factura (Parte 1)



UNIDAD II VBA PARA EXCEL
Sesin 6 Visual Basic para Aplicaciones
Sesin 7 Fundamentos de Programacin
Sesin 8 Aplicativo Factura (Parte 2)
Sesin 9 Creando Formularios y sus Controles
Sesin 10 Aplicativo Recibo por Honorarios
















SUMILLA

La asignatura de Informtica II pertenece al rea curricular de formacin profesional
especializada y de naturaleza prctica. Tiene el propsito de brindar al estudiante las
habilidades y destrezas en el manejo de las hojas electrnicas y elaboracin de frmulas
electrnicas para automatizar procesos de clculo aplicado, para que el estudiante se
desempee con xito en el campo profesional de la Contabilidad y la Administracin y
Negocios Internacionales. Comprende los siguientes contenidos: Desarrollo de
Aplicaciones contables, macros y sus aplicaciones avanzadas con Visual Basic para
Aplicaciones. Todo esto teniendo en cuenta la filosofa de la educacin Adventista.









COMO ESTUDIAR LOS MDOLUS DIDCTICOS
O TEXTOS AUTOINSTRUCTIVOS
METODO A2D



A2D



El mtodo A2D, es un mtodo de f;acil aplicacin para la
mayora de los estudiantes, inclusive para los no
autodidactas. Si el estudiante aplica este mtodo su trabajo
intelectual ser ms rpido y eficaz.
A2D responde a las letras iniciales de los 3 pasos, que se
propone para la lectura de una gua de autoaprendizaje,
mdulo didctico o cualquier otro texto.

Consiste en la exploracin preliminar y se debe:

A
n
t
e
s

d
e

l
a

l
e
c
t
u
r
a


Echar un vistazo general empezando por el ndice, reconociendo unidades y
actividades que se van explicando en la gua de autoaprendizaje.
Anota tus dudas que van surgiendo durante el vistazo general, para esclarecerlos
durante la lectura o despus de la lectura.
Adoptar una actitud Psicolgica positiva.

Esta es la fase ms importante del mtodo, el ritmo de lectura, lo pone cada lector. Debes tener
presente los siguientes aspectos.

D
u
r
a
n
t
e

l
a

l
e
c
t
u
r
a


Mantn la actitud Psicolgica positiva.
Participa activamente la lectura: Tomando apuntes, subrayando, resumiendo y
esquematizando.
Si no entiendes lo que lees o encuentras una palabra desconocida, consulta con
tu profesor, tutor o un diccionario.

Esta fase va afianzar tu lectura, mejorando tu comprensin de lectora, para ello debes tener en
cuenta lo siguiente:

D
e
s
p
u

s

d
e

l
a

l
e
c
t
u
r
a


Repasa los apuntes tomados, durante la lectura.
Organiza el trabajo y planifica el horario de estudio. Trata de que siempre la
misma hora.
Realiza los trabajos diariamente. No dejes que se te acumulen las tareas.
Procura ampliar las lecciones con lecturas complementarias.
Al final de cada actividad o sesin has tu cuadro sinptico o mapa conceptual.
Elabora tu propio resumen.

Enriquece tu vocabulario para entender mejor las prximas lecturas.
Por: Dr. Ral Paredes Morales

Antes de la lectura
Durante la lectura
Despus de la lectura







UNIDAD N I
APLICACIONES CON EXCEL

COMPETENCIAS A LOGRAR
CONCEPTUAL PROCEDIMENTAL ACTITUDINAL
Al concluir la unidad el
estudiante estar en
condiciones de reconocer las
herramientas, comandos y
funciones de Excel orientadas
a la contabilidad y finanzas.
El estudiante domina una serie
de habilidades y destrezas
acerca de las estrategias para
manejar y resolver
aplicaciones en una hoja de
clculo.
El estudiante debe de cambiar
de actitud frente al estudio de
los conocimientos logrados.


Sesin 1
CLCULO DE DEPRECIACION

Introduccin
De acuerdo con Frank Ayres, Jr. Matemticas Financiera: Teora y 500 Problemas
Resueltos, serie Shaum, pgina 7, la depreciacin se define como la prdida de valor de
un activo fsico (edificios, maquinarias, etc.) como consecuencia de su uso.
La depreciacin es un gasto como cualquier otro gasto de explotacin el cual se debe
tomar en cuenta antes de determinar las ganancias de una empresa. El problema
principal consiste en determinar qu proporcin del activo debe tomarse para un perodo
determinado. Con este fin se han propuesto varios mtodos: Mtodo de la lnea recta,
Mtodo de la Suma de los Dgitos Anuales, Mtodo de la Doble Disminucin de Saldo,
etc.
Depreciacin. Mtodo de la Lnea Recta
Este mtodo es el ms simple de todos y por lo tanto el que se usa con ms frecuencia.
Simplemente se toma el costo de adquisicin del activo, el cual incluye, adems del valor
segn factura, el flete y otros gastos, as como tambin el costo de instalacin en aquellos
casos en que se requiera. A este importe se le resta el valor residual, el cual se estima por
anticipado, prorrateando la diferencia entre la vida til estimada del activo en referencia.
Bajo este mtodo, una parte proporcional del costo del activo se asigna por igual a cada
ejercicio durante la vida til prefijada para dicho activo. El cargo peridico se ex-presa
mediante la frmula [1]:
[1] Depreciacin = (Costo - Valor_Residual) / Vida
Ejercicio hipottico:
Supongan que Uds. adquieren una mquina para hacer troqueles cuyo costo instalado y
listo para usar es tal como sigue:
- Costo segn factura S/. 94,540.00
- Flete martimo S/. 6,547.00
- Gastos de aduana S/. 2,300.00
- Seguro S/. 1,540.00
- Acarreo en Per S/. 1,347.00
- Gastos de instalacin S/. 1,300.00
Costo total instalada S/. 107,534.00

Se estima, adems, que la mquina tendr un valor residual de S/. 12,534.00 despus de
una vida til estimada en 10 aos. A cunto ascender el monto de la depreciacin
anual ?. Para conocer el resultado se deben sustituir los datos del problema en la frmula
[1]. Resultado: S/. 9,500.00 anual.
Ahora veamos de qu manera se calcula la depreciacin con la hoja de Microsoft Excel:
Empezaremos diciendo que Microsoft Excel dispone de varias funciones (en la categora
de funciones financieras) para el clculo de la depreciacin. Una de ellas es la conocida
con el nombre de la lnea recta, representada por la funcin =SLN( ). Las siglas aluden a
la expresin Stright Line. La sintaxis o manera de escribir correctamente dicha funcin es
la siguiente:
[2] =SLN(Costo;Valor_Residual;Vida)
Observen que esta funcin utiliza tres argumentos separados mediante puntos y comas
(;). Es obligatorio que colocar dichos argumentos en el mismo orden en que se muestran
en la frmula:
Costo: Es el costo inicial del activo.
Valor_residual: Es el valor al final de la depreciacin (algunas veces se denomina valor
residual del activo).
Vida: Es el nmero de perodos durante los cuales ocurre la depreciacin del activo
(tambin conocido como vida til del bien).

Metodologa de clculo
Vamos a ilustrar a continuacin la forma de dar solucin al ejercicio hipottico plantea-do
ms arriba, utilizando la funcin [2] de Microsoft Excel.
1. Transcriban el Titulo y las etiquetas tal como aparecen en el Cuadro No. 1
2. Copien ahora los datos contenidos en los rangos B3:B5 y C3:C5, respectivamente.








3. Hagan clic en la celda A10 y escriban el ao: 0
4. Hagan clic sobre la celda E10 para activarla. Escriban el signo igual (=). Hagan clic
sobre la celda B3 para seleccionarla y opriman la tecla Enter. Noten que Excel
reproduce el contenido en la celda E10.
5. Hagan clic en la celda A11 y escriban el primer ao de vida del activo: 1
6. Hagan clic en la celda B11, escriban el signo = y seleccionen la celda E10. Enter.
7. Hagan clic en la celda C11 y escriban la siguiente frmula con el fin de calcular el
cargo anual o depreciacin del activo:
- Signo igual (=) para indicarle a Excel que se va a escribir una frmula
- Escriban el nombre de la funcin SLN de Microsoft Excel con la cual se calcular
la depreciacin anual (por el mtodo de la lnea recta).
- Abra parntesis y escriban:
o la direccin de la celda B3 la cual contiene el COSTO del activo. Opriman
la tecla F4 para convertir la celda B3 en una celda absoluta4: $B$3
Escriban ;
o la direccin de la celda B4, la cual contiene el VALOR RESIDUAL del
activo, es decir Bs. 2.456.789. Opriman la tecla de funcin F4. Escriban ;
o la direccin de la celda B5 la cual contiene la VIDA TIL del activo, es decir
10 aos. Opriman la tecla de funcin F4.
- Cierren el parntesis y opriman la tecla Enter.
Noten que Excel reporta un cargo por depreciacin anual de S/. 9,500.00. Puesto
que este cargo es una constante anual, el fondo para reserva de depreciacin se
incrementar en ese monto cada ao, mientras que el valor neto en libros
decrecer tambin anualmente en dicha cantidad. Vean estos movimientos en el
cuadro No. 1
8. En la celda D11 escriban la direccin =C11 y opriman la tecla Enter, con el fin de
calcular la depreciacin acumulada (es decir, el fondo de reserva para la
depreciacin).
9. Hagan clic en la celda E11 para activarla y escriban la siguiente frmula: =E10-C11
con el fin de calcular el valor neto en libros para el final del primer ao. Opriman Enter.
10. Hagan clic en la celda A12 y escriban el 2do ao de vida del activo, es decir: 2
11. Hagan clic en la celda B12. Escriban =E11 y opriman la tecla Enter. La frmula tiene
por finalidad colocar el valor neto en libros en la celda B12. (inicio del ao)
12. Hagan clic en la celda C12 y siga las instrucciones del punto 7 para calcular la
depreciacin del activo para el segundo ao. Si lo prefiere copie el contenido de la
celda C12 en C13 utilizando para ello el Visor del portapapeles de Windows.
13. Hagan clic en la celda D12 y escriban la siguiente frmula para acumular la
depreciacin del primer ao con la depreciacin del segundo ao, es decir:
=D11+C12. Opriman la tecla Enter
14. Hagan clic en la celda E12 para activarla y escriban la siguiente frmula: =E11-C12
con el fin de calcular el valor neto en libros para el final del segundo ao. Opriman la
tecla Enter.
15. Ahora Hagan clic en la celda A12 y arrastre hasta la celda E12 con el fin de
seleccionar el rango que contiene todas las frmulas correspondiente al segundo ao,
es decir: A12:E12
16. Coloque el cursor sobre el Controlador de relleno y arrstrelo hacia abajo con el fin de
copiar las frmulas en el rango A13:E20.
17. Guardar el contenido sin antes renombrar la Hoja1 por Linea Recta.
Grfico de la Depreciacin
1. Seleccione los rangos: AOS, Cargo Anual a Depreciacin y Valor Neto en los libros
2. Seleccione ficha Insertar luego grupo grficos, Dispersin-Dispersin lneas
suavizadas y marcadores, en el cuadro de Diseos de grafico Diseo1.
3. Escriba los ttulos del grfico segn la imagen y Finalizar

Series1 Depreciacin Contante
Series2 Valor Neto en Libros Decreciente

Depreciacin. Mtodo Suma de los Dgitos Anuales
De acuerdo con James A. Cashin y Joel J. Lerner, los aos de la vida til del activo se
numeran 1, 2, 3, 4, etc. y las cantidades de depreciacin se basan en una serie de
fracciones que tienen como comn denominador la suma de los dgitos de los aos de
vida til del activo. El dgito mayor se usa como numerador para el primer ao, el dgito
inmediatamente anterior para el segundo, y as sucesivamente.
Microsoft Excel se bas en este concepto para construir la funcin =SYD con el fin de
calcular la depreciacin por el mtodo Sum Year Digits = Suma de los Dgitos Anuales.
[3] =SYD(Costo;Valor_Residual;Vida;Perodo)
S/.-
S/.20,000.00
S/.40,000.00
S/.60,000.00
S/.80,000.00
S/.100,000.00
S/.120,000.00
0 2 4 6 8 10 12
N
u
e
v
o
s

S
o
l
e
s

Vida til (Anos)
Depreciacin Mtodo de Lnea Recta
Series1
Series2
Observen que esta funcin utiliza los siguientes cuatro argumentos separados mediante
puntos y comas (;). Es obligatorio que Uds. coloquen dichos argumentos en el mismo
orden en que se muestran en la frmula:
Costo: Es el costo inicial del activo.
Valor_residual: Es el valor remanente al final de la vida del activo (algunas ve-ces se
denomina valor residual del activo).
Vida: Es el nmero de perodos durante los cuales se produce la depreciacin del activo
(tambin conocido como vida til del bien).
Perodo: Es el perodo y se deben utilizar las mismas unidades que en Vida.
Metodologa de clculo
Vamos a ilustrar a continuacin la forma de dar solucin al ejercicio hipottico planteado
ms arriba, utilizando la funcin [3] de Microsoft Excel
1. Transcriban el Ttulo y la las etiquetas tal como aparecen en el Cuadro No. 2
2. Copien ahora los datos contenidos en los rangos B26:B28 y C26:C28,
respectivamente.
3. Hagan clic en la celda A33 y escriban el ao: 0
4. Hagan clic sobre la celda E33 para activarla. Escriban el signo igual (=). Hagan clic
sobre la celda B26 para seleccionarla y opriman la tecla Enter. Note que Excel
reproduce el contenido en la celda E33.
5. Hagan clic en la celda A34 y escriban el primer ao de vida del activo: 1
6. Hagan clic en la celda B34, escriban el signo = y seleccionen la celda E33. Opriman la
tecla Enter.
7. Hagan clic en la celda C34 y escriban la siguiente frmula con el fin de calcular el
cargo anual o depreciacin del activo:
- Signo igual (=) para indicarle a Excel que se va a escribir una frmula
- Escriban el nombre de la funcin SYD con la cual se calcular la depreciacin
anual (por el mtodo de la suma de los dgitos anuales).
- Abra parntesis y escriba:
La direccin de la celda B26 la cual contiene el COSTO del activo. Oprima
la tecla de funcin F4 para convertir la referencia relativa B26 en una
referencia absoluta, es decir: $B$26. Escriba;
La direccin de la celda B27, la cual contiene el VALOR RESIDUAL del
activo, es decir Bs. 2.456.789. Opriman la tecla de funcin F4. Escriba;
La direccin de la celda B28 la cual contiene la VIDA TIL del activo, es
decir 10 aos. Opriman la tecla de funcin F4. Escriba;
La direccin de la celda A34, la cual contiene el primer perodo para el
cual se quiere calcular la depreciacin, es decir el primer ao
- Cierre el parntesis y opriman la tecla Enter.
Noten que Excel reporta una depreciacin de S/. 17,273 para el primer ao










8. En la celda D34 escriban la direccin =C34 y opriman la tecla Enter, con el fin de
acumular la depreciacin (es decir, el fondo de reserva para la depreciacin).
9. Hagan clic en la celda E34 para activarla y escriban la siguiente frmula: =E33-C34
con el fin de calcular el valor neto en libros para el final del primer ao. Enter.
10. Hagan clic en la celda A35 y escriban el 2do ao de vida del activo, es decir: 2
11. Hagan clic en la celda B35. Escriban =E34 y opriman la tecla Enter. La frmula tiene
por finalidad colocar el valor neto en libros en la celda B35. (inicio del segundo ao)
12. Hagan clic en la celda C35 y siga las instrucciones del punto 7 para calcular la
depreciacin del activo para el segundo ao. Si lo prefieren copien el contenido de la
celda C34 en C35 utilizando para ello el Visor del portapapeles de Windows.
13. Hagan clic en la celda D35 y escriban la siguiente frmula para acumular la
depreciacin del primer ao con la depreciacin del segundo ao, es decir:
=D34+C35. Opriman la tecla Enter
14. Hagan clic en la celda E35 para activarla y escriban la siguiente frmula: =E34-C35
con el fin de calcular el valor neto en libros para el final del segundo ao. Opriman la
tecla Enter.
15. Ahora Hagan clic en la celda A35 y arrastren hasta la celda E35 con el fin de
seleccionar el rango que contiene todas las frmulas correspondiente al segundo ao,
es decir: A35:E35
16. Coloque el cursor sobre el Controlador de relleno y arrstrenlo hacia abajo con el fin
de copiar la frmula en el rango A36:E43.
Grfico de la Depreciacin
1. Con la ayuda de la tecla Control (Ctrl) seleccionen los rangos: AOS, Cargo Anual a
Depreciacin y Valor Neto en los libros
2. Seleccione ficha Insertar luego grupo grficos, Dispersin-Dispersin lneas
suavizadas y marcadores, en el cuadro de Diseos de grafico Diseo1.
3. Escriba los ttulos del grfico segn la imagen y Finalizar

Series1 Depreciacin Contante
Series2 Valor Neto en Libros Decreciente

Depreciacin. Mtodo Doble Saldo Decreciente
De acuerdo con James A. Cashin y Joel J. Lerner8, el mtodo del Doble Saldo
Decreciente es el que da la mayor cifra de depreciacin en los primeros aos y no
reconoce el valor de desecho. En cambio, el valor del activo que permanece en los libros
al ter-minar el perodo de depreciacin se convierte en el valor residual o valor de
desecho. Muchas empresas prefieren este mtodo debido a lo rpidamente que se
efecta la depreciacin en los primeros aos, que es cuando el activo presta su mayor
contribucin al negocio y cuando se ha hecho el gasto. El procedimiento consiste en
aplicar una tasa fija al valor del activo que declina en los libros cada ao. A medida que
declina el valor en los libros, la depreciacin es cada vez menor.
Microsoft Excel se bas en esta definicin para construir su funcin =DDB con el fin de
calcular la depreciacin por el mtodo Doble Saldo Decreciente.
[4] =DDB(Costo;Valor_Residual;Vida;Perodo;Factor)
Note que =DDB utiliza 5 argumentos separados por puntos y comas (;). Es obligatorio que
dichos argumentos se coloquen en el mismo orden en que se muestran en la frmula:
Costo: Es el costo inicial del activo.
Valor_residual: Es el valor residual al final de la vida del activo
Vida: Es el nmero de perodos durante los cuales se produce la depreciacin del activo
(tambin conocido como vida til del bien).
S/.0.00
S/.20,000.00
S/.40,000.00
S/.60,000.00
S/.80,000.00
S/.100,000.00
S/.120,000.00
0 2 4 6 8 10 12
N
u
e
v
o
s

S
o
l
e
s

Vida til (Anos
Mtodo de la Suma de los Dgitos Anuales
Series1
Series2
Perodo: Es el perodo para el que se desea calcular la depreciacin. El perodo debe
usar las mismas unidades que las utilizadas en Vida.
Factor: Es la tasa (%) a la cual disminuye el saldo (si se omite este factor, DDB asumir
el valor por defecto, es decir 2).
Metodologa de clculo
Vamos a ilustrar a continuacin la forma de dar solucin al ejercicio hipottico planteado
ms arriba, utilizando la funcin [4] de Microsoft Excel
1. Transcriba el Titulo y las etiquetas tal como aparecen en el Cuadro No. 3
2. Copien ahora los datos contenidos en los rangos B49:B52 y C49:C52,
respectivamente.
3. Hagan clic en la celda A57 y escriban el primer ao de vida del activo: 0










4. Haga clic sobre la celda E57 para activarla. Escriban el signo igual (=). Haga clic sobre
la celda B49 para seleccionarla y opriman la tecla Enter. Note que Excel reproduce el
contenido en la celda E57.
5. Haga clic en la celda A58 y escriba el primer ao de vida del activo: 1
6. Haga clic en la celda B58, escriba el signo = y seleccionen la celda E57. Opriman la
tecla Enter.
7. Haga clic en la celda C58 y escriba la siguiente frmula con el fin de calcular el cargo
anual o depreciacin del activo:
- Signo igual (=) para indicarle a Excel que se va a escribir una frmula
- Escriba el nombre de la funcin DDB de Microsoft Excel con la cual se calcular la
depreciacin anual por el mtodo de la Doble Saldo Decreciente
- Abra parntesis y escriban:
la direccin de la celda B49 la cual contiene el COSTO del activo. Opriman la
tecla de funcin F4 para convertir la celda B49 en una celda absoluta: $B$49.
Escriban ;
la direccin de la celda B50, la cual contiene el VALOR RESIDUAL del activo,
es decir Bs. 2.456.789. Opriman la tecla F4. Escriban ;
la direccin de la celda B51 la cual contiene la VIDA TIL del activo, es decir
10 aos. Opriman la tecla de funcin F4. Escriban ;
la direccin de la celda A58, la cual contiene el primer perodo para el cual se
quiere calcular la depreciacin, es decir el primer ao
la direccin de la celda B52 en la cual est almacenada la tasa a la cual
disminuir el activo. Opriman la tecla de funcin F4.
- Cierre el parntesis y opriman la tecla Enter.

Note que Excel reporta una depreciacin de S/. 21,507.00 para el primer ao.

8. En la celda D58 escriban la direccin =C58 y opriman la tecla Enter, con el fin de
calcular la depreciacin acumulada (es decir, el fondo de reserva para la
depreciacin).
9. Haga clic en la celda E58 para activarla y escriba la frmula: =E57-C58 con el fin de
calcular el valor neto en libros para el final del primer ao. Enter.
10. Haga clic en la celda A59 y escriba el 2do ao de vida del activo, es decir: 2
11. Haga clic en la celda B59. Escriban =E58 y opriman la tecla Enter. La frmula tiene
busca colocar el valor neto en libros en la celda B59. (inicio del 2do ao)
12. Haga clic en la celda C59 y siga las instrucciones del punto 7 para calcular la
depreciacin del activo para el segundo ao. Si lo prefiere, puede copiar el contenido
de la celda C58 en C59.
13. Haga clic en la celda D59 y escriban la siguiente frmula para acumular la
depreciacin del primer ao con la depreciacin del segundo ao, es decir:
=D58+C59. Opriman la tecla Enter
14. Haga clic en la celda E59 para activarla y escriban la siguiente frmula: =E58-C59 con
el fin de calcular el valor neto en libros para el final del segundo ao. Enter.
15. Ahora haga clic en la celda A59 y arrastre hasta la celda E59 con el fin de seleccionar
el rango que contiene todas las frmulas correspondiente al segundo ao, es decir:
A59:E59
16. Coloque el cursor sobre el Controlador de relleno y arrstrelo hacia abajo con el fin de
copiar la frmula en el rango A60:E67.
Grfico de la Depreciacin
1. Con la ayuda de la tecla Control (Ctrl) seleccionen los rangos: AOS, Cargo Anual a
Depreciacin y Valor Neto en los libros
2. Seleccione ficha Insertar luego grupo grficos, Dispersin-Dispersin lneas
suavizadas y marcadores, en el cuadro de Diseos de grafico Diseo1.
3. Escriba los ttulos del grfico segn la imagen y Finalizar

Series1 Depreciacin Decreciente
Series2 Valor Neto en Libros Decreciente

4. Haga clic en la opcin ARCHIVO y seleccionar el comando GUARDAR














S/.0.00
S/.20,000.00
S/.40,000.00
S/.60,000.00
S/.80,000.00
S/.100,000.00
S/.120,000.00
0 2 4 6 8 10 12
N
u
e
v
o
s

S
o
l
e
s

Vida til (Anos
Mtodo de Doble Disminucin de Saldo
Series1
Series2
ACTIVIDAD N1
APLICATIVO CUADRO DE CLCULO DE DEPRECIACIN
Crearemos la plantilla Clculo de Depreciacin, en una hoja de Excel.
Esta plantilla nos permitir calcular la depreciacin de un activo fijo, por cada periodo de
su vida til, aplicando el mtodo de valuacin Lnea recta.


En este ejemplo solo se ingresan los datos en las celdas pintadas, para este caso, el
activo se adquiri el 1/7/2009 y ese misma fecha como inicio de la depreciacin, su costo
es de S/. 2,400.00, tiene una vida til de 10 aos, 120 meses, con una tasa de
depreciacin anual de 10%.
Ingresando estos datos, la plantilla calcula hasta que ao se depreciara el activo, cuantos
meses se deprecian por ao, la depreciacin del periodo (del ao), depreciacin
acumulada del periodo (del ao) y su saldo por ao, hasta su agotamiento.
En el siguiente ejemplo cambiaremos la vida til a 5 aos, 60 meses, la tasa de
depreciacin anual a 20% y el nuevo clculo ser el siguiente.


En el siguiente ejemplo cambiaremos la fecha de adquisicin a 1/1/2009, misma fecha
como inicio de la depreciacin, la vida til a 4 aos, 48 meses, la tasa de depreciacin
anual a 25% y el nuevo clculo ser el siguiente.

Como se ve esta plantilla realiza el clculo, con solo ingresar los parmetros del activo a
depreciar, ahora veremos que formulas tenemos que crear en la plantilla.
Celda Formula
D9 =D8*12
A14 =SI(C14>0,1,0)
A15 =SI(C15>0,2,0)
A16 =SI(C16>0,3,0)
A17 =SI(C17>0,4,0)
A18 =SI(C18>0,5,0)
A19 =SI(C19>0,6,0)
A20 =SI(C20>0,7,0)
A21 =SI(C21>0,8,0)
A22 =SI(C22>0,9,0)
A23 =SI(C23>0,10,0)
A24 =SI(C24>0,11,0)
B14 =SI(D4>0,AO(D4),0)
B15 B24 =SI(Y(C14>0,A15>0),B14+1,0)
C14 =SI(D6>0,13-MES(D6),0)
C15 =SI(Y(G14>0,(D$9-C14)>=12),12,0)
C16 =SI(Y(G15>0,(D$9-(C14+C15))>=12),12,0)
C17 =SI(Y(G16>0,(D$9-(C14+C15+C16))>=12),12,0)
C18 =SI(Y(G17>0,(D$9-(C14+C15+C16+C17))>=12),12,SI(Y(G17>0,(D$9-
(C14+C15+C16+C17))<12),D$9-(C14+C15+C16+C17),0))
C19 =SI(Y(G18>0,(D$9-(C14+C15+C16+C17+C18))>=12),12,SI(Y(G18>0,(D$9-
(C14+C15+C16+C17+C18))<12),D$9-(C14+C15+C16+C17+C18),0))
C20 =SI(Y(G19>0,(D$9-
(C14+C15+C16+C17+C18+C19))>=12),12,SI(Y(G19>0,(D$9-
(C14+C15+C16+C17+C18+C19))<12),D$9-(C14+C15+C16+C17+C18+C19),0))
C21 =SI(Y(G20>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20))>=12),12,SI(Y(G20>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20))<12),D$9-
(C14+C15+C16+C17+C18+C19+C20),0))
C22 =SI(Y(G21>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20+C21))>=12),12,SI(Y(G21>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20+C21))<12),D$9-
(C14+C15+C16+C17+C18+C19+C20+C21),0))
C23 =SI(Y(G22>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20+C21+C22))>=12),12,SI(Y(G22>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20+C21+C22))<12),D$9-
(C14+C15+C16+C17+C18+C19+C20+C21+C22),0))
C24 =SI(Y(G23>0,(D$9-
(C14+C15+C16+C17+C18+C19+C20+C21+C22+C23))>=12),12,SI(Y(G23>0,(D
$9-(C14+C15+C16+C17+C18+C19+C20+C21+C22+C23))<12),D$9-
(C14+C15+C16+C17+C18+C19+C20+C21+C22+C23),0))
D14 D24 =SI(Y(D$5>0,B14>0),D$5,0)
E14 =((D14*D$7)/12)*C14
F14 =E14
F15 - F24 =SI(E15>0,F14+E15,0)
G14 G24 =SI(F14>0,D14-F14,0)













Sesin 2
LETRAS POR COBRAR
Toda empresa tiene dificultad para ganarse un sitial en el mercado, dentro de las acciones
a tomar esta justamente la venta al crdito, extendiendo para ello una letra de cambio ,
comprometindose el cliente a cumplir con su compromiso de pago en la fecha
establecida, estas letras son controladas por el vendedor en un auxiliar llamado
REGISTRO DE LETRAS POR COBRAR .

Concepto

Es un libro Auxiliar voluntario, en el que se registra en forma cronolgica, las letras
aceptadas por terceros como consecuencia de una venta o prestacin de servicio,
teniendo en cuenta la factura o el contrato de compra-venta.

Rayado

El rayado del registro de Letras por cobrar ,no es uniforme, se adecua de acuerdo a las
necesidades de la empresa, siendo el mas usual el siguiente:
- Se registra la fecha de emisin de la letra.
- Se especifica el N de la factura correspondiente.
- Se registra el N de la letra
- Se hace referencia al cliente o persona quien acepta la letra.
- Se refiere a la fecha en que se acepta la letra.
- Se registra el tiempo en que se debe cancelar las letras.
- Se refiere a las fechas en que debe ser canceladas las letras.
- Se especifica el importe de cada letra.
- Se escribe las posibles observaciones a que hubiese lugar







ACTIVIDAD N2
APLICATIVO LETRAS POR COBRAR
Crearemos la plantilla Letras por Cobrar, en una hoja.

Esta plantilla calculara la fecha de vencimiento de las letras, teniendo en cuenta la fecha
de aceptacin y los das de plazo.
En la imagen anterior, la letra N 1 tiene una fecha de aceptacin el 15/04/2009, pagadero
a 30 das de plazo, la plantilla indica que la fecha de pago ser el 15/05/2009.
Cambiemos ahora los das de plazo a 60 y veamos qu fecha de vencimiento nos
muestra la plantilla.

Como se ve la fecha de vencimiento ha cambiado y nos muestra el 14/06/2009.
Crearemos lista para la columna:
Endoso a Cargo de
Ahora veremos que formulas tenemos
Celda Formula
K7 K21 =SI(I7>0,SI(MES($H7+$I7)=1,DIA($H7+$I7),""),"")
L7 L21 =SI(I7>0,SI(MES($H7+$I7)=2,DIA($H7+$I7),""),"")
M7 M21 =SI(I7>0,SI(MES($H7+$I7)=3,DIA($H7+$I7),""),"")
N7 N21 =SI(I7>0,SI(MES($H7+$I7)=4,DIA($H7+$I7),""),"")
O7 O21 =SI(I7>0,SI(MES($H7+$I7)=5,DIA($H7+$I7),""),"")
P7 P21 =SI(I7>0,SI(MES($H7+$I7)=6,DIA($H7+$I7),""),"")
Q7 Q21 =SI(I7>0,SI(MES($H7+$I7)=7,DIA($H7+$I7),""),"")
R7 R21 =SI(I7>0,SI(MES($H7+$I7)=8,DIA($H7+$I7),""),"")
S7 S21 =SI(I7>0,SI(MES($H7+$I7)=9,DIA($H7+$I7),""),"")
T7 - 721 =SI(I7>0,SI(MES($H7+$I7)=10,DIA($H7+$I7),""),"")
U7 U21 =SI(I7>0,SI(MES($H7+$I7)=11,DIA($H7+$I7),""),"")
V7 V21 =SI(J7>0,SI(MES($H7+$I7)=12,DIA($H7+$I7),""),"")
W22 =SUMA(W7:W21)










Sesin 3
LIBRO CAJA Y BANCOS
Es un libro principal y obligatorio, donde se registra todas aquellas operaciones
comerciales en efectivo, cheques o valores representativos de dinero, ya sea ingresos o
egresos.
Libro Caja y Bancos
Su objetivo es el de registrar todas las operaciones comerciales que indiquen movimiento
de dinero en efectivo.
La importancia de este libro se debe a que nos permite controlar todos los valores que
recibe y entrega la empresa, ya sea dinero en efectivo, cheques o una representacin de
valor, determinar el saldo disponible.
SISTEMAS DE LIBRO CAJA
Caja Italiana o Simple Conocido cmo caja centralizado, es la forma ms simple
de registrar ingresos y egresos de fondos (Diario
resumido)
Caja Americana o Tabular Llamado tambin Analtica, este tipo de sistemas nos
permite controlar los fondos de la empresa a travs de un
diseo especial adoptando la forma columnada.
Caja Bancos Su funcin es la de registrar entradas y salidas de fondos
en efectivo o cheque.



ACTIVIDAD N3
APLICATIVO CAJA Y BANCOS
Crearemos la plantilla Caja y Bancos, en la hoja1 Empresa, en la hoja2 Caja, en la hoja3
Banco, en la hoja4 Conc banc (Conciliacin bancaria), en la hoja5 Asto Caja (Asiento
caja), en la hoja6 Asto Bcos (Asiento Bancos), en la hoja7 PC (Plan de cuentas), en la
hoja 8 Operaciones y en la hoja9 T1 (Tipo de medio de pago).
Esta plantilla nos permitir registrar las operaciones de caja, bancos, hacer la conciliacin
bancaria y nos arrojara los asientos contables.











Ahora veremos que formulas tenemos que crear en la plantilla.
Nos ubicamos en la hoja Empresa







Nos ubicamos en la hoja Caja

En la columna Descripcin de la operacin, crear una lista con los datos de la hoja
Operaciones
Seleccionar las celdas D9 al D20 y nombrar la seleccin CRICAJA
Seleccionar las celdas F9 al F20 y nombrar la seleccin DCAJA
Seleccionar las celdas G9 al G20 y nombrar la seleccin HCAJA
En esta hoja se crearan las siguientes formulas
Celda Formula
A3 =CONCATENAR("PERIODO: ",MES," - ",AO)
A4 =CONCATENAR("RUC: ",RUC)
A5 =SI(CIA>"",CIA,"")
E9 E20 =SI(D9="","",BUSCARV(D9,PLANC,2,0))
F21 =SUMA(F9:F20)
G21 =SUMA(G9:G20)
F22 =SI(G21>F21,G21-F21,0)
G22 =SI(F21>G21,F21-G21,0)
F23 =SUMA(F21:F22)
G23 =SUMA(G21:G22)
Nos ubicamos en la hoja Banco

En la columna Descripcin de la operacin, crear una lista con los datos de la hoja T1
Seleccionar las celdas H11 al H21 y nombrar la seleccin CRICON
Seleccionar las celdas I11 al I21 y nombrar la seleccin CRIBCO
Seleccionar las celdas K11 al K21 y nombrar la seleccin DBCO
Seleccionar las celdas L11 al L21 y nombrar la seleccin HBCO
En esta hoja se crearan las siguientes formulas
Celda Formula
A3 =CONCATENAR("PERIODO: ",MES," - ",AO)
A4 =CONCATENAR("RUC: ",RUC)
A5 =SI(CIA>"",CIA,"")
C11
C21
=SI(D11>"",BUSCARV(D11,MEDIOPAGOS,2,0),"")
J11 J21 =SI(I11="","",BUSCARV(I11,PLANC,2,0))
K22 =SUMA(K11:K21)
L22 =SUMA(L11:L21)
K23 =SI(L22>K22,L22-K22,0)
L23 =SI(K22>L22,K22-L22,0)
K24 =SUMA(K22:K23)
L24 =SUMA(L22:L23)
Nos ubicamos en la hoja Conc Banc

En esta hoja se crearan las siguientes formulas
Celda Frmula
A1 =CONCATENAR("RUC: ",RUC)
A2 =SI(CIA>"",CIA,"")
B4 =CONCATENAR("CONCILIACION BANCARIA MES DE ",MES," DEL ",AO)
D8 =SUMAR.SI(CRICON,A8,DBCO)*-1
D9 =SUMAR.SI(CRICON,A9,HBCO)
D12 =SUMA(D7:D11)
D16 =D8*-1
D17 =D9*-1
D18 =D11*-1
D19 =D10*-1
D20 =SUMA(D15:D19)

Nos ubicamos en la hoja Asto Caja


En esta hoja se crearan las siguientes formulas

Celda Frmula
A1 =CONCATENAR("PERIODO: ",MES," - ",AO)
A2 =SI(CIA>"",CIA,"")
D6 =SUMA(E7:E14)
E7 E14 =SUMAR.SI(CRICAJA,A7,DCAJA)
D16 =SUMA(D6:D15)
E16 =SUMA(E6:E15)
D17 =SI(D16<>E16,"NO CUADRA","")
J6 J19 =SUMAR.SI(CRICAJA,G6,HCAJA)
K20 =SUMA(J6:J19)
J22 =SUMA(J6:J21)
K22 =SUMA(K6:K21)
J23 =SI(J22<>K22,"NO CUADRA","")
Nos ubicamos en la hoja Asto Bcos

En esta hoja se crearan las siguientes formulas
Celda Frmula
A1 =CONCATENAR("PERIODO: ",MES," - ",AO)
A2 =SI(CIA>"",CIA,"")
D6 =SUMA(E7:E14)
E7 E14 =SUMAR.SI(CRIBCO,A7,DBCO)
D16 =SUMA(D6:D15)
E16 =SUMA(E6:E15)
D17 =SI(D16<>E16,"NO CUADRA","")
J6 J19 =SUMAR.SI(CRIBCO,G6,HBCO)
K20 =SUMA(J6:J19)
J22 =SUMA(J6:J21)
K22 =SUMA(K6:K21)
J23 =SI(J22<>K22,"NO CUADRA","")



Ahora ingresemos la siguiente informacin en las hojas
Caja

Banco

Estado de cuenta banco (Referencial no se crea esta hoja, solo sirve para hacer la
conciliacin)

La plantilla calculara automticamente las siguientes hojas
Conciliacin bancaria


Los siguientes rubros se ingresan manualmente:
( - ) Nota de Cargo no consider. En Libro Banco
( + ) Nota de Abono no consider. En Libro Banco, segn conciliacin con el estado de
cuenta bancario.

Asiento de caja


Asiento de banco


Sesin 4
TRABAJAR CON MACROS
Qu es una macro?
Seguro que ha odo hablar de las macros. Alguien le habr dicho que es una herramienta
muy til para solucionar problemas de clculo en Excel. En realidad son una serie de
instrucciones que se almacenan juntas para usarlas cuando sea necesario.
Aunque ya dispone de herramientas que facilitan su trabajo, hay veces que tendr que
repetir sistemticamente los mismos pasos. Se habr preguntado: no existe una forma
ms sencilla de realizar esta tarea?
Pues s! Puede preparar una macro y llamarla para que ejecute todos los pasos
automticamente.
Hay dos formas de crear una macro: grabarla o escribirla en el editor de Visual Basic
que tiene a su disposicin en Excel.
Ejemplos:
Realizaremos dos prcticas a modo de ejemplo:
1. Insertar automticamente mi nombre en la celda actual.
2. Introducir la fecha de hoy en la celda actual.
Grabar una macro

Cuando graba una macro, MS Excel guarda la informacin sobre cada paso que da. Si
comete algn error mientras se graba la macro, tambin se graban las correcciones que
realice. Antes de empezar a grabar una macro, es conveniente que practique las
operaciones que vaya a realizar, las veces que sean necesarias, hasta estar satisfecho.
Recuerde que si comete algn error durante la grabacin, no debe preocuparse, porque
puede borrar la macro e intentarlo de nuevo.
MS Excel almacena cada macro en un espacio llamado mdulo que queda adjunto al
libro con el que est trabajando.
Prctica 1. Grabar una macro
Grabar una macro que inserte su nombre.
1. Abra Excel y guarde el libro actual como Ejercicios de Macros (Por tener el
ejercicio controlado en todo momento).
2. Ubquese en la celda donde quiere insertar su nombre.
3. Seleccione Vista en la Cinta de Opciones Macros Grabar Macro
Ver la ventana Grabar Macro: Debe darle el nombre a la macro y, si quiere, una
tecla rpida (puede ser til despus para llamar a la macro). Tambin puede elegir
donde guardar la macro. Hay tres posibilidades:
- En un libro de macros personal, para
utilizar la macro siempre que entres en
Excel en la misma PC.
- En un libro nuevo, para guardar la
macro en un nuevo libro.
- En este mismo libro, es decir, el que
ests utilizando ahora.
4. En la caja que se abre para indicar el
nombre de la macro, escriba
InsertarNombre, y en la caja para
indicar la descripcin, escriba
Esta macro inserta mi nombre.

5. Agregue una letra en el Mtodo Abreviado. Pulse el botn aceptar.
El dilogo Grabar Macro desaparece y vuelve a la hoja activa. A partir de este
momento todo lo que haga se grabar en la macro.
6. Escriba el nombre en la Celda actual y pulse la tecla Enter.
7. Pulse el botn detener grabacin en la Cinta de Opciones, Macros Detener
Grabacin.

8. Presione las teclas Ctrl + j . Observe.

Prctica 2. Grabar una macro
Grabar una macro que inserte la fecha de hoy.
En realidad, para realizar esta operacin bastara con introducir la funcin Hoy() en la
casilla que desee. El problema que va a encontrar, es que esta funcin inserta la fecha
actual (de hoy) y cada vez (cada da) que abra el libro cambiar.
Para solucionar este problema puede utilizar la funcin de Pegado Especial. Si esta
operacin la tiene que realizar habitualmente, puede grabar una macro que le ahorre
bastante tiempo y equivocaciones:
1. Abrir Excel.
2. Seleccione Vista Macros Grabar nueva Macro.
3. En la caja para el nombre de la macro, escriba InsertarFecha, y en la caja para
la descripcin escriba Esta macro inserta la fecha de hoy.
4. Pulsar Enter.
5. Escriba =HOY() en celda actual y pulse Enter.






6. Con el cursor en la celda D2, pulse el botn Copiar de la barra de herramientas
estndar.
7. Sobre la celda D2 pulse Inicio Pegado especial en la Cinta de Opciones.
8. Selecciona la opcin Valores en la seccin Pegar y pulsa Aceptar.
9. Excel copia el valor de la formula =HOY() en la celda D2.
10. Pulsa el botn de Centrado y el de Negrita.
11. Pulsa el botn detener grabacin.
Ejecutar una Macro
Una vez almacenada la macro, hay que ejecutarla para que se realicen las acciones que
has grabado:
1. Seleccione Vista Macros Clic.







2. Seleccione la macro que va a ejecutar.
3. Pulsar el botn Ejecutar.
Hay distintas opciones para ejecutar una macro. Debes elegir la opcin ms adecuada
a lo que quiere hacer.
Estas son algunas de las posibilidades:
1. Asignar una tecla rpida.
2. Asociar un botn de la barra de herramientas.
3. Asociar un botn incrustado en la hoja.
4. Asociar un elemento grfico de la hoja.
Prctica 3: Asociar una tecla rpida a una macro
Asociar una tecla rpida a la macro Insertar Fecha
1. Cinta de Opciones, Vista
2. Macro Ver Macros, Clic Opciones





3. Ver un cuadro de dilogo que se llama Opciones de la Macro.
4. En el cuadro de texto Tecla de mtodo abreviado debe introducir la tecla que
escoja.
5. Pulsar el botn Aceptar.
Aadir un botn personalizado a la Barra de Herramientas de Acceso Rpido
Una opcin muy til es aadir un botn que ejecute una macro ya grabada, para que la
tengas disponible siempre que la necesites.
Excel permite personalizar las barras de Herramientas de Acceso Rpido, que es lo que
vas a usar para solucionar este ejercicio.
Prctica 4. Aadir una macro a la barra de herramientas
Aadir un botn que ejecute la macro InsertarFecha.
1. Clic botn derecho del mouse Barras de Herramientas Personalizar en la
barra de mens.

ACTIVIDAD N4
1. Insertar un rectngulo o foto en la hoja que ejecute una macro.













Sesin 5
COMPROBANTES DE PAGO - FACTURA
Comprobantes de pago
Es todo documento que acredita la transferencia de bienes, entrega en uso o prestacin
de servicios, calificado como tal por la SUNAT (Segn Decreto Ley 25632 y su
reglamento). El comprobante de pago es un documento formal que avala una relacin
comercial o de transferencia en cuanto a bienes y servicios se refiere
Documentos considerados como comprobante de pago:
a) Factura
b) Recibos por honorarios
c) Boletas de Venta
d) Liquidaciones de Compra
e) Ticket o Cintas emitidos por Mquinas Registradoras
f) Gua de Remisin

FACTURA
Es un documento que permite sustentar gastos costos y detalle en forma clara de
bienes y el importe de los mismos, los servicios prestados, descuentos, condiciones de
venta, etc.
Con este documento el vendedor se ver en la obligacin de cobrar el importe fijado y el
comprador de pagar el importe exigido o registrado, as como demostrar la propiedad del
bien o servicio comprado.
Este documento se emitir a favor de adquiriente o usuario que posea nmero de
Registro nico del Contribuyente (RUC).

ACTIVIDAD N5
APLICATIVO FACTURA
PARTE 1








Ahora veremos que formulas tenemos que crear en la plantilla.
Nos ubicamos en la hoja Clientes


Seleccionar las celdas A4 al A15 y nombrar la seleccin CLIENTES
Seleccionar las celdas A4 al C15 y nombrar la seleccin CLIENTES1
Nos ubicamos en la hoja Productos

Seleccionar las celdas A4 al A15 y nombrar la seleccin PRODUCTOS
Seleccionar las celdas A4 al C15 y nombrar la seleccin PRODUCTOS1
Nos ubicamos en la hoja Vendedor

Seleccionar las celdas A4 al A15 y nombrar la seleccin VENDEDORES
Nos ubicamos en la hoja Factura


Celda Formula
D4 =CONCATENAR(TEXTO(1,"00#")&" - "&TEXTO(J4,"0000#"))
K4 =J4
F6 =HOY()
C7 =SI(A7>0,BUSCARV(A7,CLIENTES1,2,0),"")
B8 =SI(A7>0,BUSCARV(A7,CLIENTES1,3,0),"")
C11
C18
=SI($A11>0,BUSCARV($A11,PRODUCTOS1,2,0),0)
F11 F18 =(C11*D11)-E11
B20 =SI(F22>0,Num_Texto(F22),"")
F20 =SUMA(F11:F18)
F21 =F20*0.19
F22 =SUMA(F20:F21)

En la celda A7 B7, crear una lista con los datos de la hoja Clientes (Campo Nombre o
Razn Social)
En la celda E8 F8, crear una lista con los datos de la hoja Vendedor
En la celda A11 B11, crear una lista con los datos de la hoja Productos (Campo
Descripcin) y copiar esta lista hasta la celda A18

























Vuelve a leer la Unidad I, si no puedes responder las actividades.

T eres el resultado de tus pensamientos

IMPORTANTE







Si no has contestado las actividades
no leas la Unidad II No te engaes a
ti mismo
RECUERDA
SI TIENES ALGUNA DUDA DE LA UNIDAD ANTERIOR VUELVE A REPASAR PARA QUE ENTIENDAS
MEJOR LA SIGUIENTE UNIDAD.
Y si aplicas el mtodo de estudios A2D del Doctor Ral Paredes Morales para lectura de un mdulo
didctico o cualquier otro texto tu trabajo intelectual ser ms rpido y eficaz.
RECUERDA SIEMPRE LOS SIGUIENTES ASPECTOS:



Mantn la actitud Psicolgica positiva.
Participa activamente la lectura: Tomando apuntes,
subrayando, resumiendo y esquematizando.
Si no entiendes lo que lees o encuentras una palabra
desconocida para ti, consulta con tu profesor, tutor o un
diccionario.

TU PUEDES
Repasa los apuntes tomados, durante la lectura.
Organiza el trabajo y planifica el horario de estudio. Trata de que siempre la misma hora.
Realiza los trabajos diariamente. No dejes que se te acumulen las tareas.
Procura ampliar las lecciones con lecturas complementarias.
Al final de cada actividad o sesin has tu cuadro sinptico o mapa conceptual.
Elabora tu propio resumen.
Enriquece tu vocabulario para entender mejor las prximas lecturas.

TU PUEDES SER EL MEJOR ESTUDIANTE

Saber cmo estudiar es el secreto

Progrmate para ser el mejor y cambiar tu vida




UNIDAD N II
VBA PARA EXCEL


COMPETENCIAS A LOGRAR
CONCEPTUAL PROCEDIMENTAL ACTITUDINAL
Al concluir la unidad el
estudiante estar en
condiciones de reconocer,
aplicar la programacin VBA
para la optimizacin en
funcionalidad y procesos en
Excel.
El estudiante domina una serie
de habilidades y destrezas
acerca del uso de
procedimientos y creacin de
funciones para resolver
aplicaciones en Excel
El estudiante estar en
condiciones de desarrollar
aplicaciones en su
especialidad.


Sesin 6
VISUAL BASIC PARA APLICACIONES
VBA significa Visual Basic for Applications. Es un lenguaje de programacin que surge
de Visual Basic (VB). Se podra decir que es un dialecto de VB. VBA de Excel est
adaptado a Excel, para trabajar con celdas, hojas, autofiltro etc. (es decir, los objetos de la
aplicacin Excel).
Qu puedo hacer con VBA?
Con este lenguaje de programacin puedes crear tus propios programas en Excel. Estos
programas pueden ser todo desde una macro (una pequea programa VBA, por ejemplo
un atajo personalizado) hasta una aplicacin entera con listas desplegables, mens etc.
Puedo acceder a VBA?
S. VBA est incluido en el Excel normal y corriente. Se instala con Excel por defecto.
Por qu VBA?
VBA sirve para muchas cosas. Imagnate todas las tareas repetitivas que tienes que
ejecutar todos los das. Un ejemplo - siempre vas aplicando el mismo formato a un grupo
de celdas de un libro que te mandan todos los das. En vez de hacer un montn de clic
para obtener este formato, puedes automatizar el proceso, a un botn, o un atajo de
teclado.
Tambin puedes crear aplicaciones que importan datos desde el libro mayor, reorganizan
los datos, y crean informes personalizados para cada departamento. Casi no hay lmites.
VBA de Excel te permite interactuar no solo con otros libros Excel, sino con todos los
programas Office, como Access, Word etc. (menos InfoPath que forma parte del Office
2003).
Origen de VBA
Es de Microsoft, y surge de BASIC (Beginners All-purpose Symbolic Instruction Code, o
Cdigo de Instrucciones Simblicas de Uso General para Principiantes), el cual en su
turno es un lenguaje que tiene muchos aos ya (desde los aos sesenta).
Existen varios VBAs?
VBA existe para todas las aplicaciones de Microsoft Office, y estas se llaman host
aplicacions. As que hay VBA para Excel, otro para Word etc. Cada VBA se parece al
resto, pero tambin tienen diferencias, por servir distintos.
Editor de Visual Basic
El objetivo es mostrar los elementos de la ventana programacin de Visual Basic.
Haremos una descripcin de la ventana del explorador, del examinador de cdigo entre
otras.
Lo primero es tener activado la ficha Programador y si no lo esta seguir los siguientes
pasos:
1. Haga clic en la opcin y, a continuacin, haga clic en Opciones.











2. Luego en la ventana Opciones dar clic en Personalizar cinta de opciones, en la seccin
Fichas principales hacer un clic sobra Programador y luego clic en el botn Aceptar.




3. Ahora debe verse as:



4. Luego hacer clic en el icono Visual Basic o ALT + F11 para ingresar al Editor de Visual
Basic para Aplicaciones.

1. Men principal
2. Barra de Herramientas
3. Explorador de Proyectos
4. Ventana de Propiedades
1. Men principal: permite acceder a las opciones Archivo, Edicin, Ver, Insertar, etc.
2. Barra de Herramientas: Posee una serie de botones que permiten acceder a tareas
generales de edicin, como copiar, cortar y pegar, opciones del proyecto: Insertar
procedimientos, mdulos y formularios: y acciones con el cdigo desarrollado, ejecutar un
procedimiento, etc.




1. Volver a Microsoft Excel
2. Inserta un Formulario
3. Guardar el Proyecto
4. Ejecutar Sub/User Form (F5)
1
2
3
4
1
2
3
4
5
6
7
8
9
10
11
5. Interrumpir
6. Restablecer
7. Modo de diseo
8. Explorador de Proyectos (CTRL + R)
9. Ventana de Propiedades (F4)
10. Examinador de Objetos (F2)
11. Cuadro de Herramientas
3. Explorador de Proyectos
En el Explorador de Proyectos podr ver, modificar, y navegar los proyectos por cada libro
de trabajo abierto o referenciado, documento, plantilla o presentacin.







Dentro de un Proyecto, puede haber objetos de aplicacin que tiene eventos asociados
con ellos, las cajas de dilogos(llamadas formularios), mdulos, estndares de clases y
referencias.
Elementos de un Proyecto





Ver Cdigo
Muestra la ventana Cdigo para que pueda escribir y editar cdigo asociado al elemento
seleccionado.

Por ejemplo:
Objetos Excel
Formularios
Mdulos
Ver Cdigo
Alternar Carpeta
Ver Objeto

1. Seleccionar el Objeto Formularios UserForm1
2. Hacer clic en el Botn Ver Cdigo









Ver Objeto
Muestra la ventana Objeto correspondiente al elemento seleccionado, u documento o un
formulario existente:
Por ejemplo:

1. Seleccionar el Objeto Formularios UserForm1
2. Hacer clic en el Botn Ver Objeto







Objeto formulario para la programacin de Interface
Objeto
Eventos y Procedimientos
Alternar Carpetas
Oculta y muestra las carpetas de objetos a la vez muestra los elementos indivisuales
contenidos en dichas carpetas.
4. Ventana de Propiedades
Una propiedad es una caracterstica de un objeto tal como el color o el ttulo del objeto. Se
configura la propiedad para especificar la caracterstica o comportamiento de un objeto.
Por ejemplo puede configurar la propiedad Showspelling Error del documento Word o
True para mostrar los errores ortogrficos en el documento.
Podemos acceder a la ventana de propiedades de la siguiente manera:

- Mediante la barra de herramientas estndar
- Mediante el Men Ver
- Presionando la tecla F2











Ventana de Propiedades del Objeto Formulario

En este ejemplo se ha cambiado la propiedad Caption del Formulario por Lista de Clientes
(Ttulo de Ventana Formulario ).
Puede utilizar la ventana de propiedades para configurar las propiedades de un objeto en
un tiempo de diseo. La ventana propiedades es muy til cuando esta trabajando con
cajas de dilogos personalizadas y controles ActiveX.
Cada control presenta una lista de propiedades, algunas son comunes, como por ejemplo
Caption, enabled, sin embargo hay otras propiedades de uso exclusivo.







Ventana de Propiedades de un Cuadro de Textos

Escribir un nuevo Procedimiento
Un procedimiento es una unidad de cdigo encerrado en Sub y End Sub o entre las
sentencias Function y End Function.
Para crear un mdulo estndar
Ir al Men Inserta luego elegir la opcin Mdulo.



















Ventana de Mdulo
Para agregar un procedimiento
1. Abra el Mdulo (Hacer doble clic sobre el mdulo)
2. Haga clic a Procedimiento en el Men Insertar
3. Seleccione las opciones que dese en la caja de dilogo como el nombre, el tipo y el
mbito. Agregar Procedimiento y luego haga clic en el botn Aceptar.



















Por ejemplo
En la caja de dilogo, escriba prueba en la caja Nombre, haga clic en Procedimiento
debajo de Tipo, haga a Pblico debajo de mbito, y luego haga clic en el botn de
Aceptar. Se mostrar:
Ventana Mdulo con el Procedimiento Prueba
Observe que el sistema le aade las expresiones Public Sub y al final End Sub, esto
debido a que todo bloque de instrucciones de cdigo se encuentra dentro de estas lneas
que indican Inicio y Final del procedimiento.
Public Sub Prueba()
.
End Sub
Luego que usted a agregado un procedimiento a un mdulo, puede agregar un cdigo a
un procedimiento. El siguiente ejemplo agrega al cdigo anterior una que muestre un
cuadro de mensaje.
Public Sub Prueba()
MsgBox(Bienvenidos a la Programacin VBA)
End Sub
Si desea escribir cdigos que se ejecuten automticamente cuando cierto evento ocurre,
por ejemplo cuando un documento es abierto, una hoja de clculo es calculada, o un
botn en la caja de dilogo Personalizar es seleccionado, debe de escribir un
procedimiento asociado con el evento para el objeto o el formulario.
Para agregar una funcin
4. Abra el Mdulo (Hacer doble clic sobre el mdulo)
5. Haga clic a Procedimiento en el Men Insertar
6. Seleccione las opciones que dese en la caja de dilogo como el nombre, el tipo y el
mbito. Agregar Funcin y luego haga clic en el botn Aceptar.














ACTIVIDAD N6
Ingresando un Procedimiento
1. Desde el Editor de Visual Basic
2. Ir al Men Insertar Mdulo
3. Se aadir la carpeta Mdulo, dentro del cual se mostrar el objeto Mdulo1.








4. Ahora ingresaremos el procedimiento en el rea de cdigo.
5. Ir al Men Insertar luego la opcin Procedimiento
6. En nombre Saludo y en tipo Procedimiento.











7. Luego presionar F5 para ejecutar
Sesin 7
FUNDAMENTOS DE PROGRAMACION
El lenguaje Visual Basic para Aplicaciones (VBA), en el contexto de Excel, constituye una
herramienta de programacin que nos permite usar cdigo Visual Basic adaptado para
interactuar con las mltiples facetas de Excel y personalizar las aplicaciones que
hagamos en esta hoja electrnica.
Las unidades de cdigo VBA se llaman macros. Las macros pueden ser procedimientos
de dos tipos:
- Funciones (Function)
- Subrutinas (Sub) ).
Las funciones pueden aceptar argumentos, como constantes, variables o expresiones.
Estn restringidas a entregar un valor en una celda de la hoja. Las funciones pueden
llamar a otras funciones y hasta subrutinas (en el caso de que no afecten la entrega de un
valor en una sola celda)
Una subrutina realiza acciones especficas pero no devuelven ningn valor. Puede
aceptar argumentos, como constantes, variables o expresiones y puede llamar funciones.
Con las subrutinas podemos entregar valores en distintas celdas de la hoja. Es ideal para
leer parmetros en algunas celdas y escribir en otras para completar un cuadro de
informacin a partir de los datos ledos.
Editar y ejecutar macros.
Las funciones y las subrutinas se pueden implementar en el editor de Visual Basic (Alt-
F11).
Para usar una funcin en una hoja de Excel se debe, en el editor de VB, insertar un
mdulo y editar la funcin en este mdulo. Esta accin de describe ms adelante. De la
misma manera se pueden editar subrutinas en un mdulo.
Una funcin se invoca en una hoja, como se invoca una funcin de Excel o una frmula.
Una subrutina se puede invocar por ejemplo desde la ventana de ejecucin de macros
(Alt-F8) o desde un botn que hace una llamada a la subrutina (como respuesta al evento
de hacer clic sobre l, por ejemplo).

El cdigo que ejecuta un botn puede llamar a subrutinas y a las funciones de la hoja. El
cdigo del botn no est en un mdulo. En la hoja de edicin donde se encuentra el
cdigo del botn, se pueden implementar funciones para uso de este cdigo pero que
sern desconocidas para la hoja (mensaje de error #NOMBRE?).
Nota: Un error frecuente es editar una funcin en un mdulo que corresponde a una hoja y
llamarlo desde otra hoja. En este caso se despliega el error (mensaje de error
#NOMBRE?).
Funciones
Una funcin tiene la siguiente sintaxis:
Function NombreFun(arg1, arg2,...,argn)
Declaracin de Variables y constantes
Instrucccin 1
Instrucccin 2
...
Instrucccin k
NombreFun = Valor de retorno 'comentario
End Function
Una funcin puede tener o no tener argumentos, pero es conveniente que retorne un
valor. Observe que se debe usar el nombre de la funcin para especificar la salida:
NombreFun = Valor de retorno

Nota 1: Al interior de las funciones, se pueden hacer comentarios utilizando (antes de stos)
la comilla (').

Nota 2: Para el uso de nombres de variables o de cualquier otra palabra reservada de VBA,
no se discrimina entre el uso de letras maysculas y minsculas.
Ejemplo 1: implementar una funcin.
Vamos a implementar como una macro la funcin con la que se trabaj previamente:
()

()
()

()



Para su definicin y utilizacin, se siguen los pasos:
1. Ingresamos a la ficha Programador, luego se elige Editor de Visual Basic:

Primeros pasos para la definicin de una macro.
Tambin puede usar Alt - F11
2. Nuevamente, en el men de la ventana que se abre, se elige Insertar, para luego
seleccionar Mdulo:

Se inserta un mdulo en el que se escribir el cdigo de las macros.
3. Ahora en la pantalla de edicin del mdulo, escribimos el siguiente cdigo:

Function f(x)
f = 2 * x ^ 3 + Log(x) - Cos(x) / Exp(x) + Sin(x)
End Function


Escritura del cdigo de una macro.
Una vez que ha sido editado el cdigo del macro, se guarda y salimos del ambiente de
programacin en Visual Basic para volver a la hoja electrnica de donde partimos.
Esto se hace en el men Archivo, seleccionando Cerrar y Volver a Excel.
4. Para evaluar la funcin () en algunos valores que se localicen, por ejemplo, desde
la fila 3 hasta la fila 6 de la columna B, nos situamos en una celda en la que nos
interese dejar el resultado de dicha evaluacin y se digita +f(B3). Luego se arrastra
hasta C6 para copiar la frmula, quedando:

Evaluacin de una funcin definida por el usuario.
Nota: Para conocer con detalle la sintaxis de las funciones matemticas estndar que se
pueden evaluar en Visual Basic, puede usarse la Ayuda del Editor de Visual Basic. Esta
sintaxis es un poco diferente a la que maneja Excel para las mismas funciones. Como
ya vimos, para implementar la funcin
()

()
()

()
En Excel la sintaxis es: 2*B3^3+LN(B3)-COS(B3)/EXP(B3)+SENO(B3)
En VBA la sintaxis es 2 * x ^ 3 + Log(x) - Cos(x) / Exp(x) + Sin(x)



Observe, por ejemplo, que la funcin logaritmo natural (), en Excel se escribe LN
mientras que en VBA se escribe Log.
Ejemplo 2: Lectura de parmetros en celdas
Una vez ms vamos a trabajar con el modelo de crecimiento poblacional descrito
anteriormente. La funcin
()


con



Ahora evaluaremos P(t) para distintos valores del tiempo t en das, pero esta vez haremos
dicha evaluacin mediante una macro para definir P(t).
Los parmetros los vamos a leer desde unas celdas ubicadas en la columna C. Para
hacer referencia a una celda, se usa el cdigo
Cells(fila,columna)
pero escribiendo 'columna' en formato numrico. Por ejemplo, la celda C5 se invoca como
Cells(5,3)
Lo primero que hacemos es escribir, en el editor de VBA, la frmula de P(t), luego la
invocamos en la celda F3 (de nuestra hoja de ejemplo) y arrastramos. Para esto, se
siguen los siguientes pasos:
1. En primer lugar, abrimos una hoja Excel, que se llame por ejemplo Poblacion.xls.
Luego se escriben los valores de los parmetros, tal y como puede observarse en la
siguiente figura:







Ubicacin inicial de los parmetros.
2. Ahora ingresamos al men y en la opcin Vista seleccionamos Macros. Luego se elige
Editor de Visual Basic.
Nuevamente, en el men de la ventana que se abre, se elige Insertar, para luego
seleccionar Mdulo y escribir el siguiente cdigo:

Function P(t)
P0 = Cells(2, 3) 'P0 esta en la celda C2
LimPobl = Cells(4, 3) 'K esta en la celda C4
k = Cells(5, 3) 'k esta en la celda C5
A = (LimPobl - P0) / P0
P = LimPobl / (1 + A * Exp(-k * t))
End Function

De esta forma, la ventana de edicin de Visual Basic, quedara as:

Captura de algunos parmetros constantes de las celdas de la hoja.



3. Una vez que ha sido editado el cdigo de la macro, se guarda y salimos del ambiente
de programacin en Visual Basic para volver a la hoja electrnica de donde partimos.
Este retorno se hace siguiendo el men Archivo y seleccionando Cerrar y Volver a
Excel.
Para evaluar la funcin P(t) en los valores de t que estn en la fila que inicia en F2,
nos situamos en la celda F3 y se digita +P(F2). Luego se arrastra hasta J2 para copiar
la frmula, quedando:

Resultado final al evaluar la macro del modelo poblacional.
Elementos de programacin en VBA
Un programa computacional escrito mediante cualquier lenguaje de programacin puede
verse a grandes rasgos como un flujo de datos, algunos jugando el papel de datos de
entrada, otros son datos que cumplen alguna funcin temporal dentro del programa y
otros son datos de salida. A lo largo del programa es muy frecuente que sea necesaria la
entrada en accin de otros programas o procesos. A mayor complejidad del problema que
resuelve el programa, mayor es la necesidad de programar por aparte algunos segmentos
de instrucciones que se especializan en una tarea o conjunto de tareas.
Hay tres tipos de estructuras bsicas que son muy utilizadas en la programacin de un
algoritmo, a saber, la estructura secuencial, la estructura condicional y la repetitiva.
A continuacin se explica, con ejemplos programados como macros de Excel, estas
estructuras. Tambin se incluyen los programas en seudo cdigo y diagramas de flujo
para explicar de un modo ms grfico la lgica del programa. El uso de estos ltimos es
cada vez menor, pues el seudocdigo por lo general es suficientemente claro y se escribe
en lenguaje muy cercano al lenguaje natural.
Identificadores
Los identificadores representan los objetos de un programa (constantes, variables, tipos
de datos, procedimientos, funciones, programas, campos de registros, etc.). Un
identificador es una secuencia de caracteres que puede ser de cualquier longitud, pero
slo 255 primeros caracteres son significativos. Un identificador se caracteriza por estas
reglas:

1. Debe comenzar con una letra (A a Z, maysculas o minsculas) y no puede contener
blancos.
2. Letras, dgitos y caracteres subrayados (_) estn permitidos despus del primer
carcter excepto como ltimo carcter.
3. No se puede utilizar una palabra reservada como identificador.
4. Los caracteres %, &, !, #, @, $ solo pueden ser usados al final del
identificador(variable) para indicar el tipo de datos que almacenar dicha variable.

Estos pueden ser identificadores vlidos:
- Nombre
- Area_Rectangulo
- Lado1
- Impuesto_Sobre_La_Renta
- ImpuestosTotales

Estos son identificadores no validos:
- Area&Rectangulo El ampersand (&) solo puede ser usado al final
- Lado 1 Contiene espacios en blanco
- Impuesto@Renta Tiene un @ despus del primer carcter
- For Es una palabra reservada en Visual Basic

Comentarios
Cuando una frase va precedida de una comilla simple (), Visual Basic Interpreta que esa
frase es un comentario y no ejecuta accin alguna sobre ella. Ejemplo:

Operando
suma = n1 + n2 Esto sumara las dos variables.
resta = n1 - n2
multi = n1 * n2 Multiplicar las dos variables solicitadas.

Constantes

Es un valor que no cambia durante la ejecucin de un programa, Visual Basic admite
nmeros decimales (base 10), hexadecimales (base 16) y octales (base 8). Un nmero
hexadecimal va precedido por el &H y un nmero octal va precedido por &O (letra O).
Los comentarios son de mucha utilidad para poder entender el cdigo del programa
utilizado. En programas con pocas lneas de cdigo puede ser no importante pero para
proyectos realmente complejos o desarrollados por varios programadores su importancia
es evidente.
Por ejemplo:

9 17 1034 Son nmeros decimales
&H9 &HF &H40A Son nmeros hexadecimales
& 011 &0665 &020123 Son nmeros octales

Una constante de caracteres o constantes alfanumricas es una cadena de caracteres
encerrada entre comillas dobles. Por ejemplo: Grados Centgrados:

Las constantes son privadas por defecto
Const igv=0.19


Declaracin de una constante pblica
Public Const saludo= Bienvenido

Declaracin de un entero constante
Private Const altura as Integer=15

- Es aconsejable definir todas las constantes globales en un nico mdulo.

Variables

Una variable contiene un valor que puede modificarse a lo largo de la ejecucin de la
aplicacin. Cada variable tiene atributos propios como:
- Nombre: es el nombre que utilizaremos para referirnos a la variable en la aplicacin.
- Tipo: el tipo determina qu clase de valores puede almacenar la variable.
- mbito: especfica en qu parte de la aplicacin es conocida la variable y por lo tanto
puede utilizarse.

a. Consideraciones en Nombres de las Variables

- El nombre de una variable tiene que comenzar por una letra, puede tener
hasta 255 caracteres de longitud y debe ser nico de su mbito.

- Los caracteres puedes ser letras, dgitos, el carcter subrayado y los
caracteres de declaracin del tipo de la variable (%,&,!,#,@ y $)

- No se puede utiliza el punto ni otros caracteres que tiene un significado
especial para Visual Basic; por ejemplo, los parntesis. Los caracteres de
declaracin del tipo, cuando se utilicen, tiene que ocupar la ltima posicin.

- El nombre de una variable no puede ser una palabra reservada. Una
palabra reservada tiene un significado especial en Visual Basic como for,
val, hide, caption, long etc.

b. Tipos de Datos Intrnsecos

Todas las variables tienen un tipo de dato que determina la clase de datos que pueden
almacenar. Una variable puede ser de alguno de los tipos siguientes:
Tipo Descripcin Car-tipo Rango
Integer Entero (2 bytes) % -32768 a 32.767
Long Entero largo(4 bytes) & -2147.483.648 a 2.147.483.648
Single Coma flotante. Precisin
simple (4bytes)
! -3,40E+38 a -3,40E+38
Double Coma flotante. Precisin
doble (8 bytes).
# -1,79D+308 a -1,79D+308
Currency Nmero con punto decimal
fijo (8 bytes)
@ +/- 922.337.203.685.477,5807
String Cadena de caracteres de
longitud variable: (10 bytes
+ 1 bytes por carcter.)
$ De 0 a 65500 caracteres aprox.
Byte Carcter (1 byte) (ninguno) 0 a 255
Boolean Boolean (2 bytes) (ninguno) True o False
Date Fecha/Hora (8 bytes) (ninguno) 1/enero/100 a 31/diciembre/9.999
Object Referencia a un objeto (4
bytes)
(ninguno) Cualquier referencia a tipo Object
Variant

Fecha/hora; nmeros
enteros, reales 0
caracteres (16 bytes + 1
byte/car, en cadenas de
caracteres).
(ninguno) F/h: como Date: nmeros: mismo
rango que el tipo de valor
almacenado.
Decimal Nmeros con 0 a 28
decimales (14 bytes)
(ninguno) Valor mayos con 0 decimales.

c. Declaraciones de variables

Antes de utilizar una variable, es aconsejable declarar su tipo. Una forma de
hacerlo es utilizando la sentencia DIM (o una de las palabras Public, Private
o Static). Cualquier declaracin se stas inicia las variables numricas con el
valor cero y las variables alfanumricas con el valor cero y las variables
alfanumricas con el carcter nulo. Por ejemplo:
Dim I As Integer I una variable entera
Dim R As Double R variable real de precisin doble
Dim Nombre As String Nombre variable de cadena
Dim Etiqueta As String * 10 Etiqueta variable de caracteres con longitud
fija (10 caracteres)
Dim F as Currency F como variable fraccionaria
Dim L as Long, X as Currency L como variable entera larga y X como
variable fraccionaria.


Observa que la sentencia Dim puede realizar ms de una declaracin. La
clusula As tipo de la instruccin. Dim le permite definir el tipo de dato o de
objeto de la variable que va a declarar.
- Cuando se declara una variable y no se define su tipo se asume que es
de tipo Variant. Por ejemplo:
Dim A, B As Integer
Aqu se considera A (por omisin) es de tipo Variant y B de tipo Integer.
- Otra forma de declarar una variable es utilizando los caracteres de
declaracin de tipo. Por ejemplo:
I% Variable entera.
R# Variable real de Precisin doble.
Nombres$ Cadena de caracteres de longitud variable
f@ Variable fraccionaria
- Cuando se utiliza una variable que no se ha declarado, se asume que es
de tipo Variant por ejemplo:
L=dato
L=3.25678
d. Option Explicit
La sentencia Option Explicit en la seccin de declaraciones del formulario y del
mdulo, genera un mensaje de error si se encuentra una variable no declarada
explcitamente. Si se desea que esta opcin este siempre presente en cada
aplicacin seleccione men herramientas/opciones/editor/Requerir declaracin de
variables.

e. Operadores
Un operador es un smbolo o palabra que ejecuta una a operacin matemtica o
maneja informacin. La siguiente tabla muestra el conjunto de operadores que
soporta Visual Basic.
Tipo Operacin Operador
Aritmtico Exponenciacin.
Cambio de signo
Multiplicacin y divisin
Divisin entera
Resto de una divisin entera
Suma y resta
^
-
*, /
\
Mod
+,-
Concatenacin Concatenar o enlazar &
Relacional Igual, distinto, menor, mayor =,<>,<,>,<=,>=
Lgico Negacin
And
Or inclusiva
Or exclusiva
Equivalencia (opuesta a Xor)
Implicacin (falso si primer operando
verdadero y segundo operando falso).
Not
And
Or
Xor
Eqv
Imp

Flujo secuencial
El flujo secuencial consiste en seguir una secuencia de pasos que siguen un orden
predeterminado.
Por ejemplo, un programa que a partir de un nmero N de das, calcula la cantidad de
segundos que hay en esta cantidad de das. Este programa se puede ver como una
secuencia de varios pasos:
- Inicio: Ingresa el nmero N de das
- Paso 1: H = 24*N, para determinar la cantidad de horas
- Paso 2: M = 60*H, para determinar la cantidad de minutos.
- Paso 3: S = 60*M, para determinar la cantidad de segundos.
- Paso 4: Retorne S.
- Fin.






Flujo secuencial
La macro correspondiente a esta secuencia de clculos puede escribirse como sigue:

Function CalculeSegundos(Dias)
CantHoras = 24 * Dias
CantMinutos = 60 * CantHoras
CalculeSegundos = 60 * CantMinutos
End Function

Flujo condicional (If - Else)
Un flujo condicional se presenta en un programa o procedimiento que debe escoger una
accin o proceso a ejecutar, dependiendo de condiciones que puedan cumplirse.
El caso ms sencillo ocurre cuando el programa verifica si una condicin se cumple y en
caso de ser verdadera ejecuta un proceso, en tanto que si es falsa ejecuta otro proceso.
En VBA tenemos la instruccin
If...Then...Else
Ejecuta condicionalmente un grupo de instrucciones, dependiendo del valor de una
expresin.
Sintaxis
If condicin Then
instrucciones
Else instrucciones-else
Puede utilizar la siguiente sintaxis en formato de bloque:
If condicin Then
instrucciones
ElseIf condicin Then
instrucciones-elseif
...
Else instrucciones-else
End If
Nota: En la ayuda del editor de Visual Basic, tenemos acceso a la referencia del lenguaje.
Ejemplo 2
En este ejemplo veremos cmo usar la instruccin If...Then...Else
Obtener un programa que calcule aproximaciones de , sabiendo que la sucesin
{

} converge a , definida en forma recurrente mediante la relacin:


{




El programa deber estimar el error absoluto de las aproximaciones y ser capaz de
escribir un mensaje de xito o de fracaso, dependiendo de si el error absoluto es o no
menor que una tolerancia dada.






Resultado de la aproximacin de .
Para los resultados que aparecen en la grfica anterior pueden programarse las siguiente
macros para ser evaluadas en cada columna:

Function AproxDeRaiz(x)
AproxDeRaiz = (1 / 2) * (x + 2 / x)
End Function
Function CalculoElError(Aproximacion, ValorExacto)
CalculoElError = Abs(Aproximacion - ValorExacto)
End Function
Function verificaTol(Error, Tol)
If (Error < Tol) Then
verificaTol = "EXITO"
Else
verificaTol = "FRACASO"
End If
End Function

El diagrama siguiente ilustra la forma en que esta ltima funcin de verificacin acta con
base en el valor de sus dos parmetros de entrada:

Diagrama de flujo condicional para verificar si se alcanz la tolerancia.
Flujo repetitivo (For-Next, While-Wend)
El flujo repetitivo se presenta en un algoritmo cuando se requiere la ejecucin de un
proceso o parte de un proceso sucesivamente, hasta que ocurra una condicin que
permita terminar.
Este tipo de flujos repetitivos se presentan en tres formas que obedecen a maneras
diferentes de razonarlos pero que en el fondo hacen lo mismo:
- Utilizar un contador que empiece en un nmero y termine en otro, ejecutando el
proceso cada vez que el contador tome un valor distinto.
- Mientras una condicin sea verdadera, ejecutar un proceso y regresar a la
condicin.
- Ejecutar un proceso, hasta que una condicin deje de cumplirse.
En VBA tenemos las siguientes instrucciones para realizar procesos iterativos:
1. For ... Next
Repite un grupo de instrucciones un nmero especificado de veces.
Sintaxis (las instrucciones entre `[ ]' son instrucciones adicionales)
For contador = inicio To fin [Step incremento]
instrucciones
[Exit For]
instrucciones
Next contador
2. While...Wend
Ejecuta una serie de instrucciones mientras una condicin dada sea True.
Sintaxis
While condicin
intrucciones
Wend
Nota: No hay un Exit While. En una subrutina, si fuera necesario, se podra usa Exit
Sub
3. Una instruccin muy parecida a While pero ms eficiente de Do
Sintaxis
Do while condicin
instrucciones
[Exit Do]
Loop
Ejemplo 3
Para ilustrar estas formas de realizar un flujo repetitivo, vamos a aproximar la suma de
una serie alternada con un error estimado menor que una cantidad TOL dada.
Consideremos la serie alternada
( )
2
1
1 1 1 1
1 1 ...
4 9 16

=
= + +

k
k
k


La suma parcial N-sima viene dada por:
( ) ( )
2 2
1
1 1 1 1 1
1 1 ... 1
4 9 16
=
= = + + +

N
k N
N
k
S
k N


es decir:

1
2
3
4
1 1
1 1/ 4 0.75
1 1/ 4 1/ 9 0.861111...
1 1/ 4 1/ 9 1/16 0.798611...
.
.
.
= =
= + =
= + =
= + + =
S
S
S
S
De acuerdo con la teora de series alternadas, la serie
( )
2
1
1
1

k
k
k
es convergente. Si su
suma es S, al aproximarla con la suma parcial S
N
, el error de la aproximacin es menor
que
( )
2
1
1 + N
, es decir:
( )
2
1
1
s
+
N
S S
N


Primer problema
Dada una tolerancia TOL, calcular cada una de las sumas parciales hasta que el error de
aproximacin sea menor que TOL

Sumas parciales y estimacin del error
Implementamos dos macros, una para el clculo de las sumas parciales y otra para hacer
la verificacin del error estimado. En este caso, vamos a suponer que TOL est en la
celda B33

Function sumaParcial(hastaN) Dim Acum, signo As Integer Acum = 0
signo = -1

For k = 1 To hastaN
Acum = Acum + signo * 1 / k ^ 2
signo = -signo
Next k

sumaParcial = Acum End Function
'--------------------------------------------------------------------
Function verificaTol(elN, tol)
If (1 / (elN + 1) ^ 2 > tol) Then
verificaTol = "Error estimado > " + Str(tol) 'tol es un nmero
Else 'no una String
verificaTol = "OK, error estimado <" + Str(tol) 'por esto debemos usar
'Str'
End If
End Function

En la primera llamada de las macros se us sumaParcial(C33) y verificaTol(C33;B$33)
Segundo problema
Dada una lista de tolerancias TOL (donde TOL es una cantidad positiva, como 10
-1
, 10
-8
,
etc.), aproximar la suma de la serie con una cantidad N de trminos lo suficientemente
grande de tal manera que
( )
2
1
1
<
+
TOL
N
La cantidad
( )
2
1
1 + N
juega en este problema
el papel de una cota del error, al aproximar la serie correspondiente hasta el trmino N-
simo

1. Primera solucin:
Dado que hay que sumar hasta el trmino N -simo tal que
( )
2
1
1
<
+
TOL
N
, en
este caso es posible despejar el entero positivo N, quedando:
1
1 > N
TOL

Tomamos N como la parte entera superior de
1
1 > N
TOL
, por lo que se calcula:
1
(
=
(

N
TOL
(parte entera)
Los pasos a seguir para programar la suma a partir de la tolerancia dada, son los
siguientes:
o Inicio: Ingresa la tolerancia con que se har la aproximacin.
o Paso 1: Calcular
1
(
=
(

N
TOL

o Paso 2: Acum = 0 (Se inicializa el acumulador para la suma).
o Paso 3: Para k = 1 ...N:
Acum = Acum + ( )
2
1
1
k
k

o Paso 4: Retorne Acum.
o Fin.

Diagrama de flujo correspondiente a la primera solucin.
Observe que en cada sumando, se incluye el factor ( ) 1
k
, que en la prctica, ms que
una potencia, lo que indica es el cambio de signo en los trminos sucesivos. Para evitarle
al programa clculos innecesarios, podemos inicializar una variable signo en -1 y en cada
paso de la instruccin repetitiva se cambia al signo contrario. La macro correspondiente a
este programa puede escribirse como sigue:
Function SumaParcial(Tol)
Acum = 0 signo = -1
N = Int(1 / Sqr(Tol))
For k = 1 To N
Acum = Acum + signo * 1 / k ^ 2
signo = -signo
Next k
SumaParcial = Acum
End Function
La siguiente figura muestra la evaluacin de esta macro para algunos valores de
la tolerancia.

Resultados calculados mediante la primera solucin.
2. Segunda solucin:
En esta solucin no es necesario calcular el valor de N, sino que se suman los
trminos mientras no se haya alcanzado la tolerancia. El programa en
seudocdigo se puede escribir como sigue:
o Inicio: Ingresa la tolerancia con que se har la aproximacin.
o Paso 1: Iniciar con N = 1 .
o Paso 2: Acum = -1 (Se inicializa el acumulador para la suma con el
primer trmino).
o Paso 3: Mientras
( )
2
1
1
>
+
TOL
N
:
.
N = N + 1 .
.
Acum = Acum + ( )
2
1
1
N
N

o Paso 4: Retorne Acum.
o Fin.

Diagrama de flujo correspondiente a la segunda solucin.
El cdigo es

Function SumaParcial2(Tol)
N = 1 Acum = -1 signo = 1
While (1 / (N + 1) ^ 2 > Tol)
N = N + 1
Acum = Acum + signo * 1 / N ^ 2
signo = -signo
Wend
SumaParcial2 = Acum
End Function

Manejo de rangos
Un rango en Excel corresponde a una seleccin de celdas. Una seleccin de las celdas
de una fila o una columna se maneja en Excel como una matriz de orden 1 x n o de orden
n x 1(un vector). La seleccin de un bloque de celdas se maneja como una matriz n x m.
Si una celda est en blanco, se lee un cero.
Ejemplo 4
Promedio simple. Consideremos una tabla con 5 notas, todas con igual peso.

Promedio simple.
Para calcular el promedio simple, en cada fila, vamos a hacer una macro que recibe un
rango, cuenta las notas, suma y divide entre el nmero de notas.

Function PromedioSimple(R As Range) As Double 'R es la variable
que recibe el rango
Dim n As Integer
Dim sump As Double
sump = 0
n = R.EntireColumn.Count 'cantidad de notas en el rango

For Each x In R 'suma de las notas
sump = sump + x
Next x

Sume = sump / n 'promedio simple
End Function

En primera celda de la columna Promedio, llamamos a la macro con:
PROMEDIO(C52:G52) pues en este caso el rango es C52:G52.
Ejemplo 5
El Promedio eliminando las dos notas ms bajas. En este caso, a un conjunto de
notas les calculamos el promedio simple pero eliminando las dos notas ms bajas.
El programa PromedioQ suma las n notas de una fila (rango), localiza la posicin (en el
vector R) de las dos notas ms bajas y luego le resta a la suma estas dos notas para
luego dividir entre
n -2. En este caso, el rango R es una matriz 1 x n, o sea, se puede ver como un vector de
componentes.

Promedio de notas, eliminando las dos ms bajas.

Function PromedioQ(R As Range) As Double

Dim n, i, Imin1, Imin2 As Integer
Dim suma As Double

suma = 0
n = R.EntireColumn.Count 'nmero de elementos de la seleccin

For i = 1 To n
suma = suma + R(1, i) 'R es una matriz 1xn (o sea, un vector)
Next i 'En R no se hace referencia a la celda

Imin1 = 1 'POSICION de la 1ra nota mnima en R
For i = 1 To n
If R(1, i) < R(1, Imin1) Then
Imin1 = i
End If
Next i

Imin2 = 1 'POSICION de la segunda nota mnima en R
If Imin1 = 1 Then
Imin2 = 2
End If

'comparar con todos excepto Imini1
For i = 1 To n
If (R(1, i) < R(1, Imin2)) And (i <> Imin1) Then
Imin2 = i
End If
Next i

PromedioQ = (suma - R(1, Imin1) - R(1, Imin2)) / (n - 2)
End Function


Nota: Tambin podramos resolver este problema usando Selection.Sort pero la
programacin es un poco ms compleja.
Subrutinas.
Edicin y ejecucin de una subrutina
Las subrutinas o procedimientos es otro de los tipos bsicos de programas en Visual
Basic. Una descripcin de la sintaxis de una subrutina que no es completa, pero s
suficiente para los alcances de este material es la siguiente:
Sintaxis:
Sub Nombre-de-Subrutina(lista-argumentos)
instrucciones
End Sub
o tambin
[Private Public] [Static] Sub Nombre-de-Subrutina(lista-argumentos)
instrucciones
End Sub

Las partes entre corchetes indican que son opcionales. Adems:
Public. Es opcional. Indica que la subrutina puede ser llamada por todas las
dems subrutinas sin importar donde se encuentre.
Private. Es opcional. Indica que la subrutina puede ser llamada solamente por
otras subrutinas que se encuentren en el mismo mdulo.
Static. Es opcional. Indica que las variables locales de la subrutina se mantienen
constantes de una llamada a otra. El mbito de accin de esta declaracin no
incluye a variables declaradas fuera de la subrutina.
Nombre-De-Subrutina. Es requerido. Indica el nombre de la subrutina.
lista-argumentos. Es opcional e indica las variables que conforman los
argumentos con que una subrutina es llamada. Para separar una variable de otra
se escribe una coma.
instrucciones. Es opcional y conforma el conjunto de instrucciones que son
ejecutadas a lo largo de la subrutina.

Ejemplo 6
Elevar al cuadrado los valores de una seleccin (ejecutar desde la ventana de
ejecucin de macros).

Elevar al cuadrado los elementos de la seleccin
Podemos implementar una subrutina en una hoja, que recorra una seleccin hecha con el
mouse y que vaya elevando al cuadrado el valor de cada celda.

Sub elevAlCuadado()
For Each cell In Selection.Cells 'para cada celda de la seleccin
cell.Value = cell.Value ^ 2 'recalcula el valor de la celda
Next cell
End Sub


Nota: La macro se aplica a los datos que estn actualmente seleccionados
Para editar la subrutina, vamos al editor VB (Alt-F11) y hacemos doble-clic sobre
(Hoja1)

Edicin de la subrutina en Hoja 1
Escribimos el cdigo, compilamos (en men Depuracin), guardamos y nos devolvemos a
la hoja.
Para ejecutar la macro seleccionamos la tabla con el mouse y levantamos la ventana
de ejecucin de macros (Alt-F8) y damos clic en 'Ejecutar'

Ejecutar macro
Nota: Esta subrutina tambin se puede editar en un mdulo. Para ejecutarla se procede
de la misma forma.
Ejecucin de una subrutina mediante un botn
Otra posibilidad bastante prctica para ejecutar un programa o subrutina como los
presentados en la seccin precedente es mediante un botn de comando.
Ejemplo 7
Elevar al cuadrado los valores de una seleccin.
1. Primero digitamos la tabla de valores. Luego insertamos un botn. Para esto
seleccionamos un botn del cuadro de controles (si la barra no est disponible,
puede habilitarla con Ver - Barra de herramientas - Cuadro de Controles).

Insertar un botn
2. Luego hacemos clic en el lugar de la hoja donde queremos el botn. Una vez que
tenemos el botn, podemos agregar algunas propiedades como etiqueta, color de
fondo, etc., en el men de contexto. Este men se abre con clic derecho +
propiedades. Luego cerramos el men

Men de contexto para un botn

Tabla y botn
3. Para editar el cdigo que deber ejecutar el botn, le damos un par de clics al
botn (que todava est en modo diseo). En este caso, si es la primera vez, nos
aparece el cdigo
4. Private Sub CommandButton1_Click() End Sub
Aqu tenemos dos opciones
a.)
Implementar la subrutina por separado y luego llamarla desde la subrutina del
botn


Sub elevAlCuadado()
For Each cell In Selection.Cells 'para cada celda de la seleccin
cell.Value = cell.Value ^ 2 'recalcula el valor de la celda
Next cell
End Sub
'-----------------------------------------------------------------------
Private Sub CommandButton1_Click()
elevAlCuadado 'sin parntesis
End Sub
'-----------------------------------------------------------------------

b.)
Incluir en la subrutina del botn lo que vamos a querer que se ejecute cuando se
haga clic sobre l

Private Sub CommandButton1_Click()
For Each cell In Selection.Cells 'para cada celda de la seleccin
cell.Value = cell.Value ^ 2 'recalcula el valor de la celda
Next cell
End Sub

5. Una vez que escogemos alguna de las dos opciones anteriores, compilamos (en
men Depurar), guardamos y nos devolvemos a la hoja.
6. Para habilitar el botn debemos deshabiltar el cono de diseo.
7. Ahora solo resta seleccionar la tabla y hacer clic sobre el botn.
Observe que al dar un clic sobre el botn, el programa opera sobre lo que
tengamos seleccionado previamente

Correr una subrutina desde un botn con la tabla seleccionada
Nota: Puede ser importante conocer la primera o la ltima celda de una seleccin. Para
esto podemos usar la propiedad Address
Set R = Selection
adr = R(1, 1).Address 'primera celda de la seleccin, por ejemplo $A$1
num = Right(adr, 1) 'primera posicin a la derecha de adr (1 en este caso)

















Sesin 8
APLICATIVO FACTURA
PARTE 2 Continuacin de la Actividad N5 de la Sesin 5
A continuacin realizaremos algunas aplicaciones en Visual Basic, para ingresar
presionamos ALT + F11 y se muestra la siguiente pantalla

Agregamos un mdulo



El mdulo se muestra a continuacin

En el rea en blanco situado a la derecha, ingresamos la siguiente informacin:
------------------------------------------------------------------------------------------------------------------------
Function Num_texto(Numero)
Dim Texto
Dim Millones
Dim Miles
Dim Cientos
Dim Decimales
Dim Cadena
Dim CadMillones
Dim CadMiles
Dim CadCientos
Texto = Numero
Texto = FormatNumber(Texto, 2)
Texto = Right(Space(14) & Texto, 14)
Millones = Mid(Texto, 1, 3)
Miles = Mid(Texto, 5, 3)
Cientos = Mid(Texto, 9, 3)
Decimales = Mid(Texto, 13, 2)
CadMillones = ConvierteCifra(Millones, 1)
CadMiles = ConvierteCifra(Miles, 1)
CadCientos = ConvierteCifra(Cientos, 0)
If Trim(CadMillones) > "" Then
If Trim(CadMillones) = "UN" Then
Cadena = CadMillones & " MILLON"
Else
Cadena = CadMillones & " MILLONES"
End If
End If
If Trim(CadMiles) > "" Then
Cadena = Cadena & " " & CadMiles & " MIL"
End If
If Trim(CadMiles & CadCientos) = "UN" Then
Cadena = Cadena & " y " & Decimales & "/100 Nuevos Soles"
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " y " & Decimales & "/100 Nuevos
Soles"
Else
Cadena = Cadena & " " & Trim(CadCientos) & " y " & Decimales & "/100 Nuevos
Soles"
End If
End If
Num_texto = Trim(Cadena)
End Function

------------------------------------------------------------------------------------------------------------------------
Function ConvierteCifra(Texto, SW)
Dim Centena
Dim Decena
Dim Unidad
Dim txtCentena
Dim txtDecena
Dim txtUnidad
Centena = Mid(Texto, 1, 1)
Decena = Mid(Texto, 2, 1)
Unidad = Mid(Texto, 3, 1)
Select Case Centena
Case "1"
txtCentena = "CIEN"
If Decena & Unidad <> "00" Then
txtCentena = "CIENTO"
End If
Case "2"
txtCentena = "DOSCIENTOS"
Case "3"
txtCentena = "TRESCIENTOS"
Case "4"
txtCentena = "CUATROCIENTOS"
Case "5"
txtCentena = "QUINIENTOS"
Case "6"
txtCentena = "SEISCIENTOS"
Case "7"
txtCentena = "SETECIENTOS"
Case "8"
txtCentena = "OCHOCIENTOS"
Case "9"
txtCentena = "NOVECIENTOS"
End Select

Select Case Decena
Case "1"
txtDecena = "DIEZ"
Select Case Unidad
Case "1"
txtDecena = "ONCE"
Case "2"
txtDecena = "DOCE"
Case "3"
txtDecena = "TRECE"
Case "4"
txtDecena = "CATORCE"
Case "5"
txtDecena = "QUINCE"
Case "6"
txtDecena = "DIECISEIS"
Case "7"
txtDecena = "DIECISIETE"
Case "8"
txtDecena = "DIECIOCHO"
Case "9"
txtDecena = "DIECINUEVE"
End Select
Case "2"
txtDecena = "VEINTE"
If Unidad <> "0" Then
txtDecena = "VEINTI"
End If
Case "3"
txtDecena = "TREINTA"
If Unidad <> "0" Then
txtDecena = "TREINTA Y "
End If
Case "4"
txtDecena = "CUARENTA"
If Unidad <> "0" Then
txtDecena = "CUARENTA Y "
End If
Case "5"
txtDecena = "CINCUENTA"
If Unidad <> "0" Then
txtDecena = "CINCUENTA Y "
End If
Case "6"
txtDecena = "SESENTA"
If Unidad <> "0" Then
txtDecena = "SESENTA Y "
End If
Case "7"
txtDecena = "SETENTA"
If Unidad <> "0" Then
txtDecena = "SETENTA Y "
End If
Case "8"
txtDecena = "OCHENTA"
If Unidad <> "0" Then
txtDecena = "OCHENTA Y "
End If
Case "9"
txtDecena = "NOVENTA"
If Unidad <> "0" Then
txtDecena = "NOVENTA Y "
End If
End Select

If Decena <> "1" Then
Select Case Unidad
Case "1"
If SW Then
txtUnidad = "UN"
Else
txtUnidad = "UNO"
End If
Case "2"
txtUnidad = "DOS"
Case "3"
txtUnidad = "TRES"
Case "4"
txtUnidad = "CUATRO"
Case "5"
txtUnidad = "CINCO"
Case "6"
txtUnidad = "SEIS"
Case "7"
txtUnidad = "SIETE"
Case "8"
txtUnidad = "OCHO"
Case "9"
txtUnidad = "NUEVE"
End Select
End If
ConvierteCifra = txtCentena & " " & txtDecena & txtUnidad
End Function
------------------------------------------------------------------------------------------------------------------------
Este cdigo lo utilizamos en la frmula de la celda B20, para convertir el Precio de Venta
en nmeros a letras.
A continuacin crearemos los botones Nuevo y Cancelar en la hoja Factura
Primero tenemos que agregar a Excel los siguientes comandos
Haga clic en la opcin y, a continuacin, haga clic en Opciones.








Luego en la ventana Opciones dar clic en Personalizar cinta de opciones, en la seccin
Fichas principales hacer un clic sobra Programador y luego clic en el botn Aceptar.

Luego damos un clic en el botn Insertar Controles y seleccionamos la opcin Botn de
comando DE Controles ActiveX.


Dibujamos con el mouse el botn


Ingresamos a propiedades del botn creado, para esto damos clic derecho en el botn y
seleccionamos Propiedades

































Ahora creamos el botn Cancelar siguiendo los pasos anteriores

A continuacin damos doble clic en el botn Nuevo

Ahora agregamos el siguiente cdigo

Cerramos la pantalla
A continuacin damos doble clic en el botn Cancelar

Ahora agregamos el siguiente cdigo

Cerramos la ventana y volvemos a Excel
Nos ubicamos en la celda J4 e ingresamos 0 (cero)





Damos un clic en el botn Nuevo



Empezamos agregar informacin solo en las celdas sealadas en crculo

Como se puede apreciar esta plantilla es muy til para ingresar datos en una factura en
forma muy rpida.









Sesin 9
CREANDO FORMULARIOS Y SUS
CONTROLES

Antes de Empezar esta nueva fase le recomiendo que salga de MS Excel y vuelvas a
entrar, esto es por si estuviste practicando los cdigos, para que no quede una secuencia
de Macros.
Ahora le enseare a dominar lo mximo de Excel que es crear formularios y programarlos,
bueno un formulario es una ventana que se programa por medio de controles y estos
controles responden a sucesos que nosotros programamos. Todo esto se encuentra
dentro de Visual Basic.
A continuacin como crear un formulario y como programarlo:
1. Presione La Teclas Alt + F11, para entrar al editor de Visual Basic.
2. Active las siguientes opciones:
- De clic en el Men Ver y elija la opcin Explorador de Proyectos
- De clic en el Men ver y elija la opcin Ventana Propiedades
3. Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que
programaremos con controles. En el Explorador de Proyecto se observara que
se inserto el UserForm.

Tambin cuando de clic en el Formulario USERFORM1 se debe de activar el
Cuadro de Herramientas, si no se activa de clic en el Men Ver y elija la opcin
Cuadro de Herramientas.
4. Elija del Cuadro de Herramientas el Control Etiqueta el que tiene la A y Arrastre
dibujando en el Formulario USERFORM1 la etiqueta. Quedar el nombre Label1,
despus de un clic en la etiqueta dibujada y podr modificar el nombre de adentro
y pondremos ah Nombre. Si por error da doble clic en la etiqueta y lo manda a la
pantalla de programacin de la etiqueta, solo de doble clic en UserForm1 que se
encuentra en el Explorador de Proyecto.
5. Elija del Cuadro de Herramientas el control Cuadro de Texto el que tiene ab y
arrastre dibujando en el formulario USERFORM1 el cuadro de texto a un lado de la
etiqueta que dice Nombre. El cuadro de texto debe de estar vaco y su nombre
ser Textbox1, el nombre solo aparecer en el control.
6. Haga los dos pasos anteriores igualmente poniendo Direccin en la Label2 y
Telfono en la Label3 y tambin dibjeles su Textbox. Esto quedara as despus
de haberlo hecho.

Si tiene algn problema al dibujar las etiquetas o los cuadros de texto, solo cmbiele el
nombre a la etiqueta o el cuadro de texto en la Ventana Propiedades la opcin se llama
(Name). El Error que marque puede ser Nombre Ambiguo, pero si le cambia el Nombre
al control se quitara el error. Puedes ponerle cualquier nombre en lugar de Label1.

Solo modifique esto si le marca error, si NO djelo as.
Los controles como las Etiquetas y Cuadros de Textos pueden modificarse algunas
opciones en la Ventana Propiedades Para hacer esto es necesario tener conocimiento
sobre las propiedades de los controles. No altere las propiedades si no las conoce.
7. Elija del Cuadro de Herramientas el control Botn de Comando y Arrastre
dibujando en el Formulario USERFORM1 el Botn, despus de un clic en el
nombre del Botn dibujado y podr modificar el nombre y pondremos ah Insertar.
Si por error da doble clic en la Botn y lo manda a la pantalla de programacin de
la etiqueta, solo de doble clic en UserForm1 que se encuentra en el Explorador
de Proyecto.

As quedara el Formulario formado por los controles:

8. Ahora de doble clic sobre el control Textbox1 para programarlo y despus inserte
el siguiente cdigo:

Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
Esto indica que se vaya a A9 y escriba lo que hay en el Textbox1
Nota.- Lo que esta en azul lo genera Excel automticamente, usted solo escribir lo que
est en Negrita.
Para volver al Formulario y programar el siguiente Textbox de doble clic en
UserForm1 que se encuentra en el Explorador de Proyecto, o simplemente de
clic en Ver Objeto en el mismo Explorador de Proyecto.
9. Ahora de doble clic sobre el control Textbox2 para programarlo y despus inserte
el siguiente cdigo:

Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Esto indica que se valla a B9 y escriba lo que hay en el Textbox2
Para volver al Formulario y programar el siguiente Textbox de doble clic en
UserForm1 que se encuentra en el Explorador de Proyecto, o simplemente de clic
en Ver Objeto en el mismo Explorador de Proyecto.
10. Ahora de doble clic sobre el control Textbox3 para programarlo y despus inserte
el siguiente cdigo:
Private Sub TextBox3_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Esto indica que se valla a C9 y escriba lo que hay en el Textbox3
Para volver al Formulario y programar el Botn de Comando Insertar de doble
clic en UserForm1 que se encuentra en el Explorador de Proyecto, o
simplemente de clic en Ver Objeto en el mismo Explorador de Proyecto.
11. Ahora de doble clic sobre el control Botn de Comando para programarlo y
despus inserte el siguiente cdigo:
Private Sub CommandButton1_Click()
Rem inserta un rengln
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
Rem Textbox1.SetFocus Enva el cursor al Textbox1 para volver a capturar los
datos
TextBox1.SetFocus
End Sub
Nota.-El comando Rem es empleado para poner comentarios dentro de la
programacin, el comando Empty es empleado para vaciar los Textbox.
12. Ahora presione el botn Ejecutar User/Form que se encuentra en la barra de
herramientas o simplemente la tecla de funcin F5


Se activara el Userform1 y todo lo que escriba en los Textbox se escribir en
Excel y cuando presione el botn Insertar, se insertara un rengln y se vaciaran
los Textbox y despus se mostrara el cursor en el Textbox1.
Trabajando con formulas
Es de suma importancia saber aplicar Formulas en Macros de Excel, ya que la mayora
de las hojas de clculos las involucran, por ejemplo los Inventarios, las Nominas o
cualquier otro tipo de hoja las llevan, es por eso que en la siguiente Fase se muestra
cmo manejar Formulas en Macros de Excel.
Practica:
1. Presione La Teclas Alt + F11, para entrar al editor de Visual Basic.
2. Activa las siguientes opciones:
- De clic en el Men Ver y elija la opcin Explorador de Proyectos
1. De clic en el Men ver y elija la opcin Ventana Propiedades
3. Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que
programaremos con controles. En el Explorador de Proyecto se observara que
se insert el UserForm.

Ahora creara un formulario con el siguiente aspecto:

el formulario tendr:
1. Tres etiquetas
2. Tres Textbox
3. Un Botn de Comando

Los datos que se preguntaran sern Nombre y Edad, los Das Vividos se generaran
automticamente cuando inserte la edad. A continuacin se muestra como se deben de
programar estos Controles:
Programacin de los Controles:
Private Sub CommandButton1_Click()
Selection.EntireRow.Insert
TextBox1 = Empty
1
2
3
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub

Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
Rem aqu se crea la Formula
TextBox3 = Val(TextBox2) * 365
Rem El Textbox3 guardara el total de la multiplicacin del Textbox2 por 365
Rem El Comando Val permite convertir un valor de Texto a un Valor Numrico
Rem Esto se debe a que los Textbox no son Numricos y debemos de Convertirlos
End Sub
Private Sub TextBox3_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub
Esto va permitir que cuando se ejecute el formulario y se de la edad el resultado de los
das vividos aparecer en el Textbox3 y se escribir tambin en Excel. El comando Val
es un comando de Visual Basic que te permite convertir un valor de texto a un valor
numrico. Recuerden el Comando Rem se utiliza para poner Comentarios nicamente y
no afecta a la programacin.

Generaremos otro ejemplo, Crear el Siguiente Formulario con los siguientes datos:
- 5 Etiquetas
- 5 Textbox
- 1 Botn de Comando

Los datos que se preguntaran sern Nombre, Das Trabajados, Pago por Da, Bonos y
Sueldo Neto.

Generar el siguiente cdigo:
Private Sub CommandButton1_Click()
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub

Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub

Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox3_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub

Private Sub TextBox4_Change()
Range("D9").Select
ActiveCell.FormulaR1C1 = TextBox4
Rem aqu se crea la formula
TextBox5 = Val(TextBox2) * Val(TextBox3) + Val(TextBox4)
Rem El TextBox5 guardara el total
End Sub

Private Sub TextBox5_Change()
Range("E9").Select
ActiveCell.FormulaR1C1 = TextBox5
End Sub
Cuando se introduzca el Bonos automticamente se generara el Sueldo Neto.


Buscando informacin con un Textbox
Se puede buscar informacin con un Textbox programndolo de la siguiente forma:


Dibuje una Etiqueta, un Textbox y un Botn de Comando y agregue el siguiente
Cdigo:
Private Sub TextBox1_Change()
Range("a9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub

Private Sub CommandButton1_Click()
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub

Si se fija inclu en la programacin del Botn Buscar Ahora que buscara lo que en el
Textbox1 a la hora de Presionarse.
Elaborando una consulta
Todo Registro de informacin debe de tener su propia Consulta, Baja y Modificacin,
es por eso que en esta sesin nos concentramos en ello, primeramente en poder
consultar la informacin que ya se escribi en la Hoja de Excel, obviamente desde una
Macro combinada con Visual Basic, observemos el siguiente ejemplo:
Fase I
Etiqueta
Textbox
Botn de Comando
1. Presione La Teclas Alt + F11, para entrar al editor de Visual Basic.
2. Activa las siguientes opciones:
- De clic en el Men Ver y elija la opcin Explorador de Proyectos
- De clic en el Men ver y elija la opcin Ventana Propiedades
3. Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que
programaremos con controles. En el Explorador de Proyecto se observara que
se inserto el UserForm.

Ahora creara un formulario con el siguiente aspecto:

el formulario tendr:
- Tres etiquetas
- Tres Textbox
- Tres Botones de Comando

Los datos que se preguntaran sern Nombre, Direccin y Telfono. Los tres botones
nos servirn para lo siguiente: Consultar consultara la informacin que hayamos
insertado desde el botn insertar. Baja podr eliminar algn dato que se consulto y no lo
queremos. Insertar tendr la funcin de insertar los registros que vayamos dando de alta,
es como los ejercicios anteriores. A continuacin se muestra como se deben de
programar estos Controles:
Programacin de los Controles:
BOTON DE CONSULTA
Private Sub CommandButton1_Click()
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
Rem la lnea que contiene el ActiveCell.Offset(0, 1).Select permite moverse una
columna a la derecha, por lo tanto despus de la bsqueda de las primeras lneas con
Cell.Find si encuentra el Nombre de la persona se mueve a la siguiente columna y la
lnea TextBox2 = ActiveCell Permite capturar el valor de la celda al Textbox2 y as
mostrar el dato de la celda en el TextBox2.
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
Rem Cada vez que se escriba la lnea ActiveCell.Offset(0, 1).Select significa que tiene
que moverse una columna a la derecha.
Rem Si el nombre que trata de consultar no se encuentra podra generar un error porque
fallara el Cell.Find esto puede ocurrir en el Word 97, el Excel 2000 o XP y no tiene ese
problema. Pero esto se solucionara con una trampa de error.
End Sub

BOTON BAJA
Private Sub CommandButton2_Click()
Selection.EntireRow.Delete
Range("A9").Select
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub

BOTON INSERTAR
Private Sub CommandButton3_Click()
Range("A9").Select
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
CUADROS DE TEXTO
Private Sub TextBox1_Change()
Range("A9").FormulaR1C1 = TextBox1
Rem esta primera lnea reemplaza a estas dos que le parece todava mas corta
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub

Private Sub TextBox2_Change()
Range("B9").FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox3_Change()
Range("C9").FormulaR1C1 = TextBox3
End Sub
Si con el Botn Consulta tienes un error cuando no encuentra a la persona, entonces
tendr que agregar esto a su cdigo del Botn Consultar
BOTON DE CONSULTA
Private Sub CommandButton1_Click()
On Error Goto noencontro
Rem esta lnea genera una trampa de error si Excel encuentra un error se le dice que se
vaya a la etiqueta noencontro que est definida ms adelante en el cdigo. No use la
trampa de error si no tiene problemas a la hora de que no encuentra a la persona.
Recuerde si usted comete cualquier error Excel se dirigir a la etiqueta noencontro y
esquivara cualquier error, hasta uno que usted cometa en la programacin.
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
Rem Tambin se puede utilizar este cdigo para leer la informacin de las celdas lo que
esta en negritas. La diferencia es que se asignan los valores a variables y despus se
descargan a los TextBoxs.
ActiveCell.Offset(0, 1).Select
Direccion = Activecell
ActiveCell.Offset(0, 1).Select
Telefono = Activecell
TextBox2 = Direccion
TextBox3 = Telefono
noencontro:
Rem Aqu se esquiva el error
End Sub
Que le parece es increble como una Macro combinada con Visual Basic puede hacer
hasta lo imposible
Bueno ya tenemos elaborado un ejercicio de consultas de datos, ahora ingresaremos al
formulario desde Excel sin necesidad de entrar al Editor de Visual Basic.
Para realizar este ejercicio debemos permanecer dentro del Editor de Visual Basic para
poder introducir el cdigo en un Modulo, por lo tanto debers seguir los siguientes pasos:
De clic en el Men Insertar y elija la opcin Mdulo
Escriba dentro del Mdulo el nombre del mdulo en este caso Sub Entrada

Cuando usted escriba Sub Entrada aparecer de la siguiente manera:
Sub Entrada()
Load UserForm1
UserForm1.Show
End Sub
Usted deber escribir las dos lneas que estn en medio que son:
Load UserForm1
UserForm1.Show
La primer lnea significa que cargue a la memoria el formulario que se llama UserForm1,
la segunda lnea significa que lo muestre, esto quiere decir que en el modulo estamos
escribiendo el cdigo de una macro que permitir cargar el formulario desde MS Excel sin
necesidad de entrar al Editor de Visual Basic.
Si se fija en el explorador de proyecto aparece el Modulo que creamos.

si queremos volver al formulario solo de doble clic en UserForm1
Bueno ya esta listo ahora salgamos del Editor de Visual Basic y volvamos a Excel.
De clic en el Men Archivo del Editor de Visual Basic
Elija la opcin Cerrar y volver a Microsoft Excel

Ya que estamos en Excel, podemos insertar una imagen o un botn o cualquier grfico,
por ejemplo:
De clic en el Men Insertar
Elija la opcin Imagen, seguido por Imagen Prediseada
inserte cualquier imagen y dele el tamao que usted desea.
De clic derecho sobre la Imagen
Elija la opcin Asignar Macro
De clic en la Macro que se llama Entrada, es obvio la nica que hicimos
De Clic en Aceptar
De clic fuera de la imagen en cualquier celda y listo si presionas la imagen cargara
el formulario.
Trabajar con Combobox y un Listbox
Bueno, empezaremos con, como agregar informacin a un Combobox y un Listbox,
primeramente deber crear el siguiente formulario dentro de Visual Basic, recuerde
desde MS Excel se utiliza la tecla ALT + F11 para entrar a Visual Basic, seguido del
Men Insertar y despus Userform. Inserte un Combobox un Listbox y un Botn.

Ahora que ya creo la Interfaz vamos a
programar el botn, veremos como se
le puede agregar informacin por
medio de cdigo a estos dos controles.

De doble clic en el Botn y escriba las
siguientes lneas dentro del
procedimiento.

Private Sub CommandButton1_Click()
ComboBox1.AddItem "Juan Jose"
ComboBox1.AddItem "Pedro de la Fuente"
ComboBox1.AddItem "Salvador de la Luz"

ListBox1.AddItem "Juan Jos"
ListBox1.AddItem "Pedro de la Fuente"
ListBox1.AddItem "Salvador de la Luz"
End Sub
Bueno vamos a analizar el significado de estas lneas:
ComboBox1.AddItem "Juan Jos "
La opcin AddItem significa que va a agregar un dato de texto, por lo tanto se entiende
como va a agregar a Juan Jos al Combobox1, por lo tanto puede agregar los datos que
quiera a un Combobox o un Listbox con la opcin AddItem, entonces al presionar el
botn aparecern los datos que se encuentra escritos y podrs seleccionar cualquiera de
ellos, recuerde que la informacin la va a agregar segn sus necesidades.
Ahora si desea agregar nmeros a un Combobox o ListBox escriba el siguiente cdigo en
un botn:
Private Sub CommandButton1_Click()
For X=1 to 50
Listbox1.AddItem str(x)
Next
End Sub
La Instruccin For-Next es un ciclo contador que te permite contar desde un numero
hasta otro. Por ejemplo, le digo que cuente desde el 1 hasta el 50 y lo que se encuentre
dentro del ciclo For-Next se ejecutara el nmero de veces, la X es una variable numrica
que guarda el valor, cada vez que el ciclo da una vuelta aumenta un nmero, por lo tanto
X va a valer desde 1 hasta 50, y la instruccin Str es para convertir el valor numrico de la
X en valor de Texto, ya que la opcin AddItem guarda solo texto, claro est que tambin
puede funcionar sin esta instruccin en algunos casos.
Por lo tanto el Listbox1 va a guardar los nmero del 1 al 50, sin necesidad de irlos
poniendo de uno por uno, imagneselo.
Listbox1.AddItem 1
Listbox1.AddItem 2
Listbox1.AddItem 3
Bueno, esto es para introducirle datos a un Listbox y Combobox, pero como puedo usar
estos datos para enviarlos a una celda, en el siguiente ejemplo se lo explico:
De doble clic en el Listbox y escriba el siguiente cdigo:
Private Sub ListBox1_Click()
Range("A9").Select
ActiveCell.FormulaR1C1 = ListBox
End Sub

As de de fcil cada vez que escoja un dato que se encuentre en un Listbox1 lo enviara a
la celda A9, escribindolo ah. Si lo desea hacer lo puedes hacer en un Combobox, solo
cambie Listbox1 por Combobox1 y se acab.
Ahora si desea agregar los datos al Listbox o Combobox sin ningn botn que presionar
escriba el siguiente cdigo:
Private Sub UserForm_Activate()
ComboBox1.AddItem "Juan Jose"
ComboBox1.AddItem "Pedro de la Fuente"
ComboBox1.AddItem "Salvador de la Luz"
ListBox1.AddItem "Juan Jos"
ListBox1.AddItem "Pedro de la Fuente"
ListBox1.AddItem "Salvador de la Luz
End Sub
La Clave esta en el procedimiento UserForm_Activate() esto quiere decir que cuando se
active el formulario cargara lo que usted le indiques, en este caso va a introducir los datos
al Listbox1 y Combobox1 automticamente, que le parece.
Ahora si deseas tomar informacin de una celda y enviarla a un Combobox o Listbox
escriba el siguiente cdigo en un Botn:

Private Sub CommandButton1_Click()
Range("A9").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
ListBox1.AddItem ActiveCell
Loop
End Sub

Fjese bien, primeramente mueva el rango a la celda A9 porque ah esta el inicio de mi
informacin, despus la lnea Do While Activecell<> Empty significa Hazlo mientras la
celda no se encuentre vaca, la siguiente lnea que es ActiveCell.Offset(1, 0).Select,
significa Baja un Rengln, la siguiente lnea ListBox1.AddItem ActiveCell, agrega la
informacin de la celda al Listbox1 y la lnea Loop es parte del ciclo Do While, siempre
cierra el ciclo, como el For-Next. Por lo tanto todos los nombres que estn delante de A9
sern enviados al Listbox1 y cuando tope con la celda A15 que se encuentra vaca la
condicin del Do While parara la ejecucin de su cdigo. Esto funciona caminando
renglones hacia abajo, pero si desea moverse hacia la derecha por columnas solo cambia
la lnea ActiveCell.Offset(1, 0).Select por ActiveCell.Offset(0, 1).Select, quiere decir
que se mueva por columna, no por rengln. ActiveCell.Offset(Rengln,
Columna).Select
Si cambia el 1 por otro nmero se mover el nmero de veces que usted le indique, por
ejemplo si quiero bajar 10 renglones de un golpe:
ActiveCell.Offset(10, 0).Select
Si quiero moverme 20 columnas a la derecha
ActiveCell.Offset(0, 20).Select
As funciona esto.
Ahora veremos cmo se ejecuta una macro a la hora de abrir un libro
Primeramente inserta un Mdulo del Men Insertar dentro de Visual Basic y escriba el
siguiente cdigo:
Sub Auto_open()
Load UserForm1
UserForm1.Show
End Sub
La magia est en el procedimiento Auto_open() que permite ejecutar automticamente lo
que se encuentre dentro de el cundo abra un libro que contenga este cdigo, en este
ejemplo cuando se abre el libro se activa el formulario 1 que programo.
As que todo lo que agregue dentro de este procedimiento se ejecutara automticamente
cuando abra un libro.
A continuacin veremos como ordenar una informacin por orden alfabtica ascendente,
es un cdigo muy completo y bueno que le permite localizar los datos y ordenarlos, sin
pasarse un rengln en blanco.
Observemos el siguiente ejemplo y aprendamos de un poco ms.
Si se fijan en la siguiente pantalla tengo datos en una hoja que empiezan en el rengln
A10 y terminan en C16, el siguiente cdigo detectara donde debe detenerse para poder
ordenar los datos. Es necesario crear el cdigo para ordenar datos, aqu se lo muestro:






Programe esto en el botn1
Private Sub CommandButton1_Click()
Rem este cdigo localiza el ltimo registro por medio del rengln
Range("a10").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
Rem llega hasta el A17 donde no hay informacin y se regresa un rengln para ser
exacto con la siguiente lnea.
ActiveCell.Offset(-1, 0).Select
Rem este cdigo localiza la ltima columna del ltimo dato
Do While ActiveCell <> Empty
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(0, -1).Select
Rem esta lnea guarda en la variable celdaactiva la celda exacta donde esta el
ltimo dato de la ltima columna de informacin, en este caso C16.
celdaactiva = ActiveCell.Address
Rem este cdigo toma el rango desde A10 donde empieza la informacin, hasta
donde encontr el ltimo dato C16, que lo guarda la variable celdaactiva.
Selecciona de A10 hasta C16.
Range("A10:" + celdaactiva).Select
Rem este cdigo ordena los datos en orden ascendente, el cdigo fue generado en
Excel, as que si no sabe generarlo solo cpielo de aqu.
Selection.Sort Key1:=Range("A10"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
As es como funciona este cdigo de Macros de Excel ordenando exactamente desde A10
hasta donde estn los datos finales.
Bueno ahora para convertir la informacin a Minscula o Mayscula es muy parecido el
cdigo, solo obsrvelo:

Private Sub CommandButton1_Click()
Range("a10").Select
Do While ActiveCell <> Empty
ActiveCell.FormulaR1C1 = LCase(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
End Sub
As es la magia esta en Lcase que convierte a Minsculas y Ucase a Maysculas,
empieza en A10 y hasta que no encuentra datos deja de convertir a Minsculas.
El siguiente Formulario y cdigo muestra la fuerza de cmo se puede consultar y
modificar el dato que se encontr.





Etiqueta 4, escrbale el numero
9 dentro.





Crea la siguiente Interfaz, 4 Etiquetas, 3 Textbox y 3 Botones
Copia el siguiente cdigo:
Private Sub CommandButton1_Click()
Rem si no se escribe nada en los Textboxs a la hora de insertar escriba No Tiene
If TextBox1 = Empty Then Range("A9").FormulaR1C1 = "No Tiene"
If TextBox2 = Empty Then Range("B9").FormulaR1C1 = "No Tiene"
If TextBox3 = Empty Then Range("C9").FormulaR1C1 = "No Tiene"
Range("A9").Select
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
On Error GoTo noencontro
Rem Cdigo para buscar, ya lo conocemos
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
Rem la etiqueta 4 toma el valor del rengln activo y permite modificar la informacin
que encontr, ya que modifiques la informacin presionas el botn actualizar.
Label4 = ActiveCell.Row
noencontro:
End Sub

Private Sub CommandButton3_Click()
Rem Vuelve a indicar el rengln 9 para escribir en los Textboxs
Label4 = "9"
Range("a9").Select
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
Rem si nos damos cuenta la etiqueta 4 sirve para llevar el rengln donde
introducimos los datos o los modificamos, as que cada textbox que programemos
debe llevar estas lneas.
Range("A" + Label4).FormulaR1C1 = TextBox1
End Sub
Private Sub TextBox2_Change()
Range("B" + Label4).FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox3_Change()
Range("C" + Label4).FormulaR1C1 = TextBox3
End Sub




















Sesin 10
APLICATIVO RECIBO POR HONORARIOS

Crearemos la plantilla Recibo por Honorarios, en la hoja1 Base de datos, en la hoja2
Clientes, en la hoja3 Consulta y en la hoja4 Meses.
Esta plantilla nos ayudara en el registro de la informacin e impresin de nuestro registro
por mes.


















Crearemos un botn para cargar el formulario que nos servir para ingresar los datos
Seleccionamos la hoja Base de datos
Luego en la ficha Programador damos un clic en el botn de Insertar Controles y
seleccionamos la opcin Botn de comando





Dibujamos con el mouse el botn

Ingresamos a propiedades del botn creado, para esto damos clic derecho en el botn y
seleccionamos Propiedades

Ahora crearemos el formulario en Visual Basic, para ingresar damos ALT + F11.








Damos clic derecho para ingresar a propiedades y cambiamos las siguientes propiedades.


Damos clic al botn de acceso rpido y seleccionamos Etiqueta

Dibujamos en el formulario su ubicacin y damos clic derecho para ingresar a
propiedades y cambiamos las siguientes propiedades.

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Serie




Damos clic al botn de acceso rpido y creamos la Etiqueta para el guin

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Numero



Damos clic al botn de acceso rpido y creamos la Etiqueta para Fecha de
emisin


Damos clic al botn de acceso rpido y creamos el Cuadro de texto Fechaemision

Damos clic al botn de acceso rpido y creamos la Etiqueta para Fecha de cobro

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Fechacobro

Damos clic al botn de acceso rpido y creamos el Marco Cliente

Clic derecho en el marco para ingresar a propiedades y hacer los siguientes cambios

Damos clic al botn de acceso rpido y creamos la Etiqueta para Nombre


Damos clic al botn de acceso rpido y creamos el Cuadro combinado
Fechacobro

Clic derecho en el cuadro combinado para ingresar a propiedades y hacer los siguientes
cambios


Damos clic al botn de acceso rpido y creamos la Etiqueta para T. Docum

Damos clic al botn de acceso rpido y creamos el Cuadro de texto
Tipodocumento

Damos clic al botn de acceso rpido y creamos la Etiqueta para N. Docum

Damos clic al botn de acceso rpido y creamos el Cuadro de texto
Numerodocumento

Damos clic al botn de acceso rpido y creamos la Etiqueta para Tipo Ingreso

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Tipoingreso




Damos clic al botn de acceso rpido y creamos la Etiqueta para Renta

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Tipoingreso


Damos clic al botn de acceso rpido y creamos la Casilla de verificacin
Checkrenta

Clic derecho en la Casilla de verificacin para ingresar a propiedades y hacer los
siguientes cambios

Damos clic al botn de acceso rpido y creamos la Etiqueta para Impuesto


Damos clic al botn de acceso rpido y creamos el Cuadro de texto Impuesto




Damos clic al botn de acceso rpido y creamos la Etiqueta para Otra Retenc.

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Otraretencion


Damos clic al botn de acceso rpido y creamos la Etiqueta para Renta Neta

Damos clic al botn de acceso rpido y creamos el Cuadro de texto Rentaneta


Damos clic al botn de acceso rpido y creamos el Botn de comando Nuevo

Clic derecho en el Botn de comando para ingresar a propiedades y hacer los siguientes
cambios


Damos clic al botn de acceso rpido y creamos el Botn de comando Grabar


Damos clic al botn de acceso rpido y creamos el Botn de comando Cancelar

Damos clic al botn de acceso rpido y creamos el Botn de comando Salir

Seleccionar las celdas A4 al C30 de la hoja Clientes y nombrar la seleccin Clientes











Seleccionamos las propiedades del cuadro combinado Combocliente


Luego damos doble clic en el cuadro combinado para agregar el siguiente cdigo, como
se muestra a continuacin


Cerramos.

Luego damos doble clic en la casilla de verificacin Checkrenta para agregar el siguiente
cdigo, como se muestra a continuacin


Cerramos.
Luego damos doble clic en la cuadro de texto Otraretencion para agregar el siguiente
cdigo, como se muestra a continuacin

Cerramos.
Luego damos doble clic en la cuadro de texto Renta para agregar el siguiente cdigo,
como se muestra a continuacin


Cerramos.
Luego damos doble clic en la botn Nuevo para agregar el siguiente cdigo, como se
muestra a continuacin

Cerramos.

Luego damos doble clic en la botn Grabar para agregar el siguiente cdigo, como se
muestra a continuacin

Continua


Cerramos.
Luego damos doble clic en la botn Cancelar para agregar el siguiente cdigo, como se
muestra a continuacin

Cerramos.
Luego damos doble clic en la botn Salir para agregar el siguiente cdigo, como se
muestra a continuacin

Cerramos la ventana de Visual Basic y regresamos a la ventana de Excel.
Nos ubicamos en la hoja Base de datos y damos clic en el botn de acceso rpido Modo
Diseo y luego damos clic en el botn Recibo e ingresamos el siguiente cdigo
que se muestra a continuacin

Cerramos.
Damos clic en el botn de acceso rpido Modo Diseo .

Ahora veremos que formulas tenemos que crear en la hoja Base de datos.
Celda Formula
N1 0
O2 =CONTARA(E4:E200)
O1 =O2+4
M4 M200 =SI(A4="","",MES(A4))

Nos ubicamos en la hoja Consulta y damos clic en el botn Insertar Controles de la ficha
Programador y seleccionamos Cuadro combinado









Seleccionamos la hoja Meses y seleccionamos las celdas A1 hasta B13 y la nombramos
Meses

Nos ubicamos en la hoja Consulta e ingresamos a propiedades del cuadro combinado,
para esto damos clic derecho en el cuadro y seleccionamos Propiedades





Cerramos las propiedades y damos doble clic en el cuadro combinado Meses para
agregar el siguiente cdigo

Cerramos.
Damos clic en el botn de acceso rpido Insertar Controles de la ficha Programador y
seleccionamos Botn de comando






Ingresamos a propiedades del botn creado, para esto damos clic derecho en el botn y
seleccionamos Propiedades


Cerramos e ingresamos los siguientes datos:
Celda Formula
K3 MES

Seleccionamos la hoja Base de datos y seleccionamos las celdas A3 hasta M200 y la
nombramos DATA


A continuacin pasamos a la hoja Consulta y presionamos las teclas ALT + F11
En la ventana de Visual Basic insertaremos un Mdulo


Ingresamos el siguiente cdigo



Range("DATA").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("K3:K4"),
CopyToRange:=Range("A9:L9"), Unique:=False
Una vez ingresado el cdigo no quedara as

Cerramos la ventana y regresamos a la hoja Consulta, ah damos doble clic en el botn
Buscar y agregamos el siguiente cdigo

Cerramos la ventana Visual Basic y regresamos al Excel.
Damos clic en el botn de acceso rpido Modo Diseo .
En la hoja Consulta ocultamos la fila 9
En la hoja Base de datos ocultamos la fila 3
Ahora si ingresamos la siguiente informacin
Damos clic en el botn Recibo y damos clic en el botn Nuevo del formulario e
ingresamos la siguiente informacin

Damos clic en Grabar para que guarde la informacin en la base de datos.

No se ingresa la fecha de cobro porque en este caso ser posterior, pero si es la misma
fecha se tendr que ingresar.
Ahora ingresaremos el recibo 2 con retencin, damos clic en Nuevo


A continuacin ingresaremos el recibo nmero 3 con fecha de emisin y cobro10/09/2009
por S/. 2,500.00



Cerramos el formulario dando clic en el botn Salir o clic en el botn rojo con x de la parte
superior derecha.
Vamos a ingresar las fechas de cobro de los recibos nmero 1 y 2, 5/8/2009 y 15/8/2009
respectivamente.

Como vemos el recibo 1 y 2 se cobraron en el mes de agosto y el recibo 3 en setiembre.
Las fechas de cobro nos servirn para las consultas, como veremos a continuacin.
Seleccionamos la hoja Consulta y seleccionamos el cuadro combinado Mes para
seleccionar el mes de agosto, luego damos clic en el botn Buscar.

Como se ve en la imagen se muestra los recibos 1 y 2 a pesar que fueron emitidos en
distintos meses, recuerde que esta consulta solo toma en cuenta la fecha de cobro y el
mes en que fueron cobrados, si el recibo aun no tiene fecha de cobro no lo mostrara.
Regresemos a la hoja Base de datos y borremos la fecha de cobro del recibo 2 y
volvamos hacer la consulta.



Ya no muestra el recibo 2 solo el 1, ahora cambiemos el mes a setiembre.

Aqu muestra el recibo 3, recuerde que solo se muestran los recibos que tienen la fecha
de cobro y en el mes que se realizo la cobranza.
Esta plantilla es muy til para tener un registro, control y consulta de nuestros documentos
por mes.
El Excel con aplicaciones en Visual Basic es muy amplio, esto solo es una demostracin,
as que esperamos ustedes puedan investigar sobre el tema.








REFERENCIAS BIBLIOGRFICAS
1
Empresa Editora Macro.Diccionario de informtica e internet.Lima: Macro, 2008.
2
Ferreira, Gonzalo. Informtica: paso a paso. Editorial alfa omega. Mxico, DF. 2000.
3
Oceda Samaniego, Csar Miguel.Excel 2007: Desarrollo de aplicaciones y casos cada
vez ms prcticos. Lima: Macro, 2007.
4
Oceda Samaniego, Csar Miguel.Excel 2007. Macros en Excel con programacin
VBA. Ed. Macro . 2007
5
Prieto, A. Lloris y J.C. Torres, Introduccin a la Informtica, McGraw-Hill. 2003.
6
Pantigoso Silva, Robert Jaime.Descubriendo excel 2007.Lima: Megabyte, 2007
7
Pascual Gonzlez, Francisco.Gua de campo Excel 2007.Mxico: Alfaomega, 2007,
reimp. 2008
8
Alvarado Calle, Jos M. Excel 2007 y sus aplicaciones. Ed. Grupo Universitario SAC.
Lima. 2009
9
Oceda Samaniego, Csar/Rodrguez Alvarado, Manuel E. Excel Contable. Ed. Macro.
Lima. 2011
10
Aula clic. http://www.aulaclic.es/index.html

También podría gustarte