You are on page 1of 23

MACROS EN EXCEL Parte I

Excel es un programa que tiene un gran potencial, pero la mayora de la gente lo maneja de una forma muy simple, utilizando solo opciones bsicas, pero hay algo muy importante que tengo que decirles. Excel cuenta con un lenguaje muy poderoso llamado Visual Basic, este es solo una parte del lenguaje, pero permite hacer o resolver los problemas mas fcilmente, solo debemos aprender a programarlo y para eso es este curso, podra la gente decir que este curso es un nivel muy alto de Excel y quizs si lo sea, pero es fcil de aprender ya que se manejaran trminos sencillos, a mi me gusta hablar con palabras que todo el mundo entienda y eso lo hace mas fcil. La programacin que emplea en este curso o las estructuras que aparecen son creadas por su servidor, ya que para manejar la programacin de Visual Basic con Excel es necesario tener mucha creatividad, cada persona puede crear estructuras diferentes pero que trabajen igual. s que manos a la obra. Fase 1 !rimeramente debemos de saber que es una "acro y a continuacin se e#plica el trmino$ %na "acro son una serie de pasos que se almacenan y se pueden activar con alguna tecla de control y una letra. !or ejemplo, todos los das empleo frecuentemente en mis celdas los mismos pasos$ &ama'o de (uente)&ama'o de la letra*, +egrita, (uente)&ipo de letra* y ,olor de (uente),olor de Letra*, para no estar repitiendo estos pasos los puedo almacenar en una macro y cuando ejecute la macro los pasos antes mencionados se ejecutaran las veces que yo lo desee. continuacin te muestro como grabar una macro y ejecutarla$ -. &rasldate a la celda A1 y escribe tu +ombre. !or ejemplo, Ramn y presiona .nter /. 0egrsate a la celda A1, porque cuando diste .nter bajo de celda o cambio el rumbo. 1. 2a clic en el Men Ver, seguido por la 3pcin Barra e !erramientas y elija Visual Basic. 4e activara la barra de herramientas 5isual 6asic.

7. 2a clic en el botn "uar ar Macr#, el que tiene la ruedita zul. 8indo9s activa el cuadro de dialogo "ra$ar Macr#, el cual permitir darle el nombre a la macro y cual ser el mtodo abreviado para ejecutarla. .l mtodo breviado se refiere con que letra se va activar la macro, obviamente se activara con la tecla ,ontrol y la letra que usted quiera, de preferencia en min:scula, porque si activa las may:sculas la macro se activara presionando la tecla 4hift ; ,ontrol ; la letra que usted indico.

<. 2onde dice N#m$re e la macr# ya aparece el nombre que llevara la macro en este caso Macr#1. si desea cambiar el nombre escriba uno nuevo, pero yo le recomiendo que as lo deje. =. .n la opcin M%t# # A$re&ia # aparece que se activara con la tecla C#ntr#l'C(RL) ; la letra que usted indica, de clic en el cuadrito y ponga una letra, por ejemplo ponga la letra a)en min:sculas*. La macro se activara cuando este lista con la tecla C#ntr#l * a >. 2e clic en el B#tn Ace+tar. 8indo9s empezara a grabar todos los pasos en la Macr#1.y el botn de la ruedita azul cambiara de forma ahora ser un cuadrito zul, se llamara ,etener -ra$acin. Lo utilizaremos cuando terminemos de indicarle los pasos para detener la grabacin. ?. ,ambie el &ipo de Letra en el B#tn Fuente de la barra de herramientas (ormato @. ,ambie el tama'o de la letra en el B#tn (ama.# e Fuente de la barra de herramientas (ormato -A. !resione el B#tn Ne-rita de la barra de herramientas (ormato --. ,ambie el color de la letra en el B#tn C#l#r e Fuente de la barra de herramientas (ormato. 0ecuerde que todos estos pasos estn siendo almacenados en la macro que estamos grabando y tambin recuerde que estos pasos se estn efectuando en la celda A1. -/. !resione el 6otn ,etener "ra$acin de la barra de Berramientas de Visual Basic/ .l que tiene el cuadrito azul presionado.

Listo .#cel guardo los pasos en la "acro- que se activara presionado la tecla C#ntr#l * a -1. .scribe otro nombre en la celda C1 y presiona Enter, despus regresa a la celda C1. -7. !resiona la tecla C#ntr#l * a. 8indo9s efectuara todos los pasos grabados sobre la celda C1, esto quiere decir que el nombre que esta en C1 tendr las caractersticas

del que esta en A1. &ipo de letra, tama'o, negrita y el color que indicaste al grabar la macro.

N#ta. ,ada vez que presiones C#ntr#l * a .#cel ejecutara la macro y efectuara los pasos
en la celda que te encuentres. !uedes grabar todas las macros que desees. hora te recomiendo que domines estos pasos antes de pasar a la siguiente fase. &rata de crear macros que almacenen pasos como estos, recuerda los pasos los vas a indicar tu, que no se te olvide detener la grabacin despus de que indicaste los pasos, repite este ejercicio las veces que sea necesario para aprendrtelo bien. !ractica C Denera las siguientes "acros$
Draba una Macr# que se active con C#ntr#l * $ y que esta macro permita abrir un archivo Draba una Macr# que se active con C#ntr#l * c y que esta macro permita insertar un 8ord rt

"uchos pensaran que esto no es nada pero ya veremos mas adelante cuando mezclemos los cdigos que genera Excel con los de Visual Basic. .sto ser pura ,inamita. Fase 0 6ien, ahora despus de practicar la Fase 1 con diferentes ejemplos o Macr#s pasaremos a la siguiente Fase que nos permitir observar los cdigos que hemos generados con nuestra macros. &e recomiendo que salgas de Excel y vuelvas a entrar, para que trabajes limpio sin ninguna macro y empezando de la macro- de nuevo. OBSERVAN,O LOS CO,I"OS ,E 1NA MACRO ,E EXCEL ,rearemos una macro y veremos sus cdigos$ . !ara observar los cdigos de una macro debemos de seguir los siguientes pasos$ -. !rimeramente trasldese a la celda A2 antes de empezar la grabacin de la "acro /. !resione el 6otn "ra$ar Macr# de la barra de Berramientas Visual Basic/ Excel muestra el cuadro de 2ialogo Drabar "acro 1. en la opcin M%t# # A$re&ia # escriba la letra r, por lo tanto la macro se llamara con C#ntr#l * r 7. !resione el botn Ace+tar/ Excel inicia la grabacin del la Macr#1 <. &rasldese a la celda A1 y escriba Ramn, despus presione Enter para aceptar el valor en la celda

=. !are la grabacin de la macro presionando el botn ,etener "ra$acin de la barra de herramientas Visual Basic/ .#cel a grabado los pasos y a generado un cdigo, 3bservmoslos$ >. !resione la tecla lt ; la tecla de funcin (--) Alt * F11*. .#cel nos traslada al .ditor de 5isual 6asic. 4i este editor no se activa es que .#cel no esta bien instalado o se a borrado. &ambin puede acceder desde el Men !erramientas3 Macr# 4 E it#r e Visual Basic. ?. ctive los siguientes cuadros o ventanas$ 2e clic en el Men Ver y elija la opcin Ex+l#ra #r e Pr#4ect#s 2e clic en el Men &er y elija la opcin Ventana Pr#+ie a es

.stas dos opciones deben de estar siempre activadas ya que de ah depende todo lo que vallamos a hacer.

2el cuadro Pr#4ect# de doble clic en M ul#s o simplemente presione el signo de * que aparece en la opcin M ul#s. 4e activara debajo de M ul#s la 3pcin M# ul#1 -A. 2e doble clic en M# ul#1. 4e mostrara en el .ditor de 5isual 6asic el cdigo de la macro que grabamos de la siguiente forma$
@.

4ub "acro-)* E E "acro- "acro E "acro grabada el A?FA7F/AA- por 0 "3+ ".+23G 3,B3 E E cceso directo$ ,&0L;r E 0ange)H -H*.4elect ctive,ell.(ormula0-,- I H0amnH 0ange)H /H*.4elect .nd 4ub

Jue es lo que significa esto nos preguntaremos asombrados, a continuacin se da una e#plicacin de lo que ha hecho Excel$ Su$ y En Su$ indican el inicio y el final del procedimiento de la Macr#1 &odo lo que aparece con un apostrofe 5 indica que no se tomara en cuenta que es solo te#to o comentarios y ese te#to debe de aparecer en un color, ya sea el color verde. Ran-e'6A16)/Select Cndica que lo primero que hicimos al grabar la macro fue trasladarnos a la celda A1. La orden Ran-e nos permite trasladarnos a una celda Acti&eCell/F#rmulaR1C1 7 6Ramn6 .sto indica que se escribir en la celda en que se encuentra el valor de te#to Ramn. &odo lo que aparece entre comillas siempre ser un valor de te#to. La orden Acti&eCell/F#rmulaR1C1 nos permite escribir un valor en la celda activa. Ran-e'6A06)/Select 3tra vez indicamos que se traslade a la celda /. .sto se debe a que cuando escribimos el nombre de Ramn en A1 presionamos Enter y al dar Enter bajo a la celda A0.

!ara comprender mejor alteraremos el cdigo dentro del editor de 5isual 6asic. Jue crees que pasara aqu con nuestra "acro$ 4ub "acro-)* E E "acro- "acro E "acro grabada el A?FA7F/AA- por 0 "3+ ".+23G 3,B3 E E cceso directo$ ,&0L;r E 0ange)H -H*.4elect ctive,ell.(ormula0-,- I H0amnH 0ange)H6-H*.4elect ctive,ell.(ormula0-,- I H,alle /- de "arzo K/?AH 0ange)H,-H*.4elect ctive,ell.(ormula0-,- I H1-L/L7>L-1H 0ange)H2-H*.4elect ctive,ell.(ormula0-,- I H+ogales 4onoraH 0ange)H.-H*.4elect ctive,ell.(ormula0-,- I H,3+ L.! +3D L.4H .nd 4ub s es acabo de alterar el cdigo y cuando regrese a Excel y ejecute la macro con C#ntr#l * r har lo siguiente$ En A1 escri$ir8 Ramn

En B1 escri$ir8 Calle 01 e Mar9# :0;< En C1 escri$ir8 =1>0>?@>1= En ,1 escri$ir8 N#-ales S#n#ra En E1 escri$ir8 CONALEP NO"ALES s que salgamos del editor dando clic en el Men ArcAi&# y eligiendo la opcin Cerrar 4 &#l&er a Micr#s#Bt Excel . 4i no desea salir por completo de clic en el $#tn Micr#s#Bt Excel que se encuentra activado en la barra de tareas y cuando dese volver al editor de clic en el $#tn Micr#s#Bt Visual Basic que se encuentra en la barra de &areas. hora ya que salimos de Visual Basic y estamos en Excel de +uevo ejecutemos la macro presionando C#ntr#l * r y veamos los resultados de nuestra modificacin. Jue te parece es sencillo o +oM, ,laro necesitamos practicar bastante para dominar esto, as que repasa la Fase 0 cuantas veces sea necesario, otra cosa no trates de generar cdigos muy complejos en tus macros porque te vas a enredar, poco a poco se va lejos. !ractica CC
Denera una Macr# que escriba un nombre en una celda y lo ponga negrita y observa el C i-#. Denera una Macr# que escriba un nombre en una celda y lo ,entre y observa el C i-#. Denera una Macr# que escriba un nombre en una celda y cambie el tama'o de la letra a /A puntos y observa el C i-#.

,digos "s comunes$ (rasla arse a una Cel a 0ange)H -H*.4elect Escri$ir en una Cel a ctivecell.(ormula0-,-IH0amonH Letra Ne-rita 4election.(ont.6old I &rue Letra Cursi&a 4election.(ont.Ctalic I &rue Letra Su$ra4a a 4election.(ont.%nderline I #l%nderline4tyle4ingle Centrar (ext# 8ith 4election .Borizontal lignment I #l,enter .nd 8ith Alinear a la i9Cuier a 8ith 4election .Borizontal lignment I #lLeft .nd 8ith Alinear a la ,erecAa 8ith 4election .Borizontal lignment I #l0ight

.nd 8ith (i+# e Letra'Fuente) 8ith 4election.(ont .+ame I H DaramondH .nd 8ith (ama.# e Letra'(ama.# e Fuente) 8ith 4election.(ont .4ize I -< .nd 8ith C#+iar 4election.,opy Pe-ar ctive4heet.!aste C#rtar 4election.,ut Or enar Ascen ente 4election.4ort Ney-$I0ange)H -H*, 3rder-$I#l scending, Beader$I#lDuess, O 3rder,ustom$I-, "atch,ase$I(alse, 3rientation$I#l&op&o6ottom Or en ,escen ente 4election.4ort Ney-$I0ange)H -H*, 3rder-$I#l2escending, Beader$I#lDuess, O 3rder,ustom$I-, "atch,ase$I(alse, 3rientation$I#l&op&o6ottom Buscar ,ells.(ind)8hat$IHRam#nH, fter$I ctive,ell, LooPCn$I#l(ormulas, LooP t O $I#l!art, 4earch3rder$I#l6y0o9s, 4earch2irection$I#l+e#t, "atch,ase$I O (alse*. ctivate Insertar Fila 4election..ntire0o9.Cnsert Eliminar Fila 4election..ntire0o9.2elete Insertar C#lumna 4election..ntire,olumn.Cnsert Eliminar C#lumna 4election..ntire,olumn.2elete A$rir un Li$r# 8orPbooPs.3pen (ilename$IH,$Q"is documentosQ&i e# saBe =/xlsH "ra$ar un Li$r# ctive8orPbooP.4ave s (ilename$IH,$Q"is documentosQ+iscis/xlsH, (ile(ormat O $I#l+ormal, !ass9ord$IHH, 8rite0es!ass9ord$IHH, 0ead3nly0ecommended$I O (alse, ,reate6acPup$I(alse .stos serian algunos cdigos muy comunes en Excel, pero si usted desea puede generar mas cdigos de otras opciones, es cuestin de que los ocupe. ntes de pasar a la Fase = es necesario que domines generar Macr#s y 3bservar sus cdigos que se encuentran en la Fase 0/ 0ecuerda esto es de mucha practica y para eso es necesario aprender bien las fases nteriores. .

Fase = CREAN,O FORM1LARIOS D PRO"RAMEN,OLOS ntes de .mpezar esta nueva fase te recomiendo que salgas de Excel y vuelvas a entrar, esto es por si estuviste practicando los cdigos, para que no quede una secuencia de "acros. hora te ense'are a dominar lo m#imo de .#cel 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. &odo esto se encuentra dentro de 5isual 6asic. continuacin "uestro como crear un formulario y como programarlo$ -. !resione La &eclas Alt * F113 para entrar al editor de Visual Basic. /. ctiva las siguientes opciones$ 2e clic en el Men Ver y elija la opcin Ex+l#ra #r e Pr#4ect#s 2e clic en el Men &er y elija la opcin Ventana Pr#+ie a es 1. 2el Men Insertar elija la 3pcin 1serF#rm/ .sto inserta el (ormulario que programaremos con controles. .n el Ex+l#ra #r e Pr#4ect# se observara que se inserto el 1serF#rm.

&ambin cuando de clic en el (ormulario 1SERFORM1 se debe de activar el Cua r# e !erramientas, si no se activa de clic en el Men Ver y elija la opcin Cua r# e !erramientas.
7.

.lija del Cua r# e !erramientas el ,ontrol EtiCueta el que tiene la A y rrastre dibujando en el (ormulario 1SERFORM1 la etiqueta. Juedara el nombre Label-, despus de un clic en la etiqueta dibujada y podr modificar el nombre de adentro y pondremos ah N#m$re/ 4i por error da doble clic en la etiqueta y lo manda a la pantalla de programacin de la etiqueta, solo de doble clic en 1serF#rm1 que se encuentra en el Ex+l#ra #r e Pr#4ect#/

.lija del Cua r# e !erramientas el control Cua r# e (ext# el que tiene a$ y arrastre dibujando en el formulario 1SERFORM1 el cuadro de te#to a un lado de la etiqueta que dice N#m$re. .l cuadro de te#to debe de estar vaco y su nombre ser (ext$#x1, el nombre solo aparecer en el control. =. Baga los dos pasos anteriores igualmente poniendo ,ireccin en la La$el0 y (el%B#n# en la La$el= y tambin dib:jeles su &e#tbo#. .sto quedara as despus de haberlo hecho
<.

Si tiene algn problema al dibujar las etiquetas o los cuadros de te#to, solo cmbiele el nombre a la etiqueta o el cuadro de te#to en la Ventana Pr#+ie a es la opcin se llama 'Name)/ .l .rror que marque puede ser N#m$re Am$i-u#3 pero si le cambias el +ombre al control se quitara el error. !uedes ponerle cualquier nombre en lugar de Label-.

S#l# altera est# si te marca err#r3 si NO %Fal# asG/


Los controles como las .tiquetas y ,uadros de &e#tos pueden modificrseles algunas opciones en la 5entana !ropiedades !ara hacer esto es necesario tener conocimiento sobre las propiedades de los controles. +o altere las propiedades si no las conoce.

>. .lija del Cua r# e !erramientas el control B#tn e C#man # y rrastre dibujando en el (ormulario 1SERFORM1 el 6otn, despus de un clic en el nombre del 6otn dibujado y podr modificar el nombre y pondremos ah Insertar/ 4i por error da doble clic en la 6otn y lo manda a la pantalla de programacin de la etiqueta, solo de doble clic en 1serF#rm1 que se encuentra en el Ex+l#ra #r e Pr#4ect#/

s quedara el (ormulario formado por los controles$

?.

hora de doble clic sobre el control (ext$#x1 para programarlo y despus inserte el siguiente cdigo$

!rivate 4ub &e#t6o#-O,hange)* Ran-e'6AH6)/Select Acti&eCell/F#rmulaR1C1 7 (extB#x1 .nd 4ub .sto indica que se valla a AH y escriba lo que hay en el (ext$#x1

N#ta.LLo que esta en azul lo genera .#cel automticamente, usted solo escribir lo que
esta en +egrita. !ara volver al F#rmulari# y programar el siguiente &e#tbo# de doble clic en 1serF#rm1 que se encuentra en el Ex+l#ra #r e Pr#4ect#3 o simplemente de clic en Ver O$Fet# en el mismo Ex+l#ra #r e Pr#4ect#.

@.

hora de doble clic sobre el control (ext$#x0 para programarlo y despus inserte el siguiente cdigo$

!rivate 4ub &e#t6o#/O,hange)* Ran-e'6BH6)/Select Acti&eCell/F#rmulaR1C1 7 (extB#x0 .nd 4ub .sto indica que se valla a BH y escriba lo que hay en el (ext$#x0 !ara volver al F#rmulari# y programar el siguiente &e#tbo# de doble clic en 1serF#rm1 que se encuentra en el Ex+l#ra #r e Pr#4ect#3 o simplemente de clic en Ver O$Fet# en el mismo Ex+l#ra #r e Pr#4ect#. -A. hora de doble clic sobre el control (ext$#x= para programarlo y despus inserte el siguiente cdigo$ !rivate 4ub &e#t6o#1O,hange)* Ran-e'6CH6)/Select Acti&eCell/F#rmulaR1C1 7 (extB#x0 .nd 4ub .sto indica que se valla a CH y escriba lo que hay en el (ext$#x= !ara volver al F#rmulari# y programar el B#tn e C#man # Insertar de doble clic en 1serF#rm1 que se encuentra en el Ex+l#ra #r e Pr#4ect#3 o simplemente de clic en Ver O$Fet# en el mismo Ex+l#ra #r e Pr#4ect#. --. hora de doble clic sobre el control B#tn despus inserte el siguiente cdigo$ e C#man # para programarlo y

!rivate 4ub ,ommand6utton-O,licP)* Rem inserta un ren-ln Selecti#n/EntireR#I/Insert Rem Em+t4 Lim+ia L#s (ext$#x (extB#x1 7 Em+t4 (extB#x0 7 Em+t4 (extB#x= 7 Em+t4 Rem (ext$#x1/SetF#cus En&Ga el curs#r al (ext$#x1 +ara &#l&er a ca+turar l#s at#s (extB#x1/SetF#cus .nd 4ub

N#ta/>.l

comando Rem es empleado para poner comentarios dentro de la programacin, el comando Em+t4 es empleado para vaciar los &e#tbo#.

-/. hora presione el botn EFecutar 1serJF#rm que se encuentra en la barra de herramientas o simplemente la tecla de funcin F2

4e activara el 1serB#rm1 y todo lo que escriba en los &e#tbo# se escribir en .#cel y cuando presione el botn Cnsertar, se insertara un rengln y se vaciaran los &e#tbo# y despus se mostrara el cursor en el (ext$#x1.

MACROS EN EXCEL Parte II


Bola amigos, estamos de nuevo aqu para mostrar la segunda parte de "uGa e Macr#s en Excel que te ser de gran utilidad, ya que se manejaran F#rmulas en los (ormularios, BsCue as e (ext# y El Asistente e Kin #Is. .ntonces empecemos migos. (RABALAN,O CON FORM1LAS .s de suma importancia saber aplicar F#rmulas en Macr#s e Excel, ya que la mayora de las hojas de clculos las involucran, por ejemplo los Cnventarios, las +ominas o cualquier otro tipo de hoja las llevan, es por eso que en la siguiente Fase se muestra como manejar F#rmulas en Macr#s e Excel. Fase I 7. !resione La &eclas Alt * F113 para entrar al editor de Visual Basic. <. ctiva las siguientes opciones$ 2e clic en el Men Ver y elija la opcin Ex+l#ra #r e Pr#4ect#s 2e clic en el Men &er y elija la opcin Ventana Pr#+ie a es =. 2el Men Insertar elija la 3pcin 1serF#rm/ .sto inserta el (ormulario que programaremos con controles. .n el Ex+l#ra #r e Pr#4ect# se observara que se inserto el 1serF#rm. hora crearas un formulario con el siguiente aspecto$

el formulario tendr$ &res etiquetas &res &e#tbo# %n 6otn de ,omando

Los datos que se preguntaran sern +ombre y .dad, los 2as 5ividos se generaran automticamente cuando insertes la edad. continuacin se muestra como se deben de programar estos ,ontroles$ !rogramacin de los ,ontroles$

!rivate 4ub ,ommand6utton-O,licP)* 4election..ntire0o9.Cnsert &e#t6o#- I .mpty &e#t6o#/ I .mpty &e#t6o#1 I .mpty &e#t6o#-.4et(ocus .nd 4ub !rivate 4ub &e#t6o#-O,hange)* 0ange)H @H*.4elect ctive,ell.(ormula0-,- I &e#t6o#.nd 4ub !rivate 4ub &e#t6o#/O,hange)* 0ange)H6@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#/ 0em aqu se crea la (ormula &e#t6o#1 I 5al)&e#t6o#/* R 1=< 0em .l &e#tbo#1 guardara el total de la multiplicacin del &e#tbo#/ por 1=< 0em .l ,omando 5al permite convertir un valor de &e#to a un 5alor +umrico 0em .sto se debe a que los &e#tbo# no son +umricos y debemos de ,onvertirlos .nd 4ub !rivate 4ub &e#t6o#1O,hange)* 0ange)H,@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#1 .nd 4ub .sto va permitir que cuando se ejecute el formulario y se de la edad el resultado de los das vividos aparecer en el (ext$#x= y se escribir tambin en Excel. .l comando Val es un comando de Visual Basic que te permite convertir un valor de te#to a un valor numrico. 0ecuerden el ,omando 0em se utiliza para poner ,omentarios :nicamente y no afecta a la programacin. .ste rchivo de esta Macr# se llama Macr#s e E a y viene incluido aqu. Deneraremos otro ejemplo, ,rea el 4iguiente (ormulario con los siguientes datos$ < .tiquetas < &e#tbo# - 6otn de ,omando

Los datos que se preguntaran sern +ombre, 2as &rabajados, !ago por 2a, 6onos y 4ueldo +eto.

Denera el siguiente cdigo$ !rivate 4ub ,ommand6utton-O,licP)* 4election..ntire0o9.Cnsert &e#t6o#- I .mpty &e#t6o#/ I .mpty &e#t6o#1 I .mpty &e#t6o#-.4et(ocus .nd 4ub !rivate 4ub &e#t6o#-O,hange)* 0ange)H @H*.4elect ctive,ell.(ormula0-,- I &e#t6o#.nd 4ub !rivate 4ub &e#t6o#/O,hange)* 0ange)H6@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#/ .nd 4ub !rivate 4ub &e#t6o#1O,hange)* 0ange)H,@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#1 .nd 4ub !rivate 4ub &e#t6o#7O,hange)* 0ange)H2@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#7 0em aqu se crea la formula &e#t6o#< I 5al)&e#t6o#/* R 5al)&e#t6o#1* ; 5al)&e#t6o#7* 0em .l &e#t6o#< guardara el total .nd 4ub !rivate 4ub &e#t6o#<O,hange)* 0ange)H.@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#< .nd 4ub

,uando se introduzca el 6onos automticamente se generara el 4ueldo +eto. .ste ejemplo viene en el rchivo Macr#s e Suel # Net# B1SAN,O INFORMACIMN CON 1N (EX(BOX 4e puede buscar informacin con un &e#tbo# programndolo de la siguiente forma$

2ibuje una EtiCueta, un (ext$#x y un B#tn e C#man # y agregue el siguiente ,digo$ !rivate 4ub &e#t6o#-O,hange)* 0ange)Ha@H*.4elect ctive,ell.(ormula0-,- I &e#t6o#.nd 4ub !rivate 4ub ,ommand6utton-O,licP)* ,ells.(ind)8hat$I(extB#x1, fter$I ctive,ell, LooPCn$I#l(ormulas, LooP t O $I#l!art, 4earch3rder$I#l6y0o9s, 4earch2irection$I#l+e#t, "atch,ase$I O (alse*. ctivate .nd 4ub 4i te fijas inclu en la programacin del B#tn Buscar AA#ra que buscara lo que en el &e#tbo#- a la hora de !resionarse. .ste proceso viene en el rchivo ,ompleto Macr#0 (RABALAN,O CON EL ASIS(EN(E .l asistente es el personaje de OBBice que se activa para ayudarnos y una de las ventajas es que podemos "anipularlo, por ejemplo se le puede dar animacin, "overse, Bacer !reguntas, .tc. continuacin se muestran algunos cdigos del sistente$

.ste cdigo permite hacer visible el ayudante o sea mostrarlo. 4i deseas ocultarlo solo cambia la opcin (rue por False. Assistant/Visi$le 7 (rue .ste cdigo permite "over el sistente a un nuevo lugar, solo cambia los valores numricos y cambiara de posicin. Assistant/M#&e ?=<3 0=< .ste cdigo permite activar un efecto de animacin, cuando escribas el signo Cgual despus de ssistant. nimation I aparecer un men: con diferentes efectos de animacin Assistant/Animati#n 7 ms#Animati#nListens(#C#m+uter .ste ejemplo permite crear un Nue&# Asistente para poderlo manipular con una pregunta y que tu contestes. La variable t guardara el valor de la respuesta, si el valor es L1 significa que es 4i y por lo tanto borrara el rengln. 8ith ssistant.+e96alloon .&e#t I H2eseas 6orrar este 0egistroH .6utton I mso6utton4etSes+o .Beading I H dvertenciaH t I .4ho9 .nd 8ith Cf t I L1 &hen ssistant. nimation I mso nimation.mpty&rash 4election..ntire0o9.2elete .nd Cf

MACROS EN EXCEL Parte III


Bola amigos, estamos de nuevo aqu para mostrar la tercera parte de "uGa e Macr#s en Excel que te ser de gran utilidad, ya que se manejaran C#nsultas en l#s F#rmulari#s3 acces#s a las Macr#s es e Excel sin necesi a e entrar a Visual Basic 4 al-un#s m%t# #s e tra$aFar mas B8cil. 2e antemano muchas gracias por apoyar este curso de .#cel creo que les ha servido, no haba tenido mucho tiempo para escribir esta tercera parte pero creo que ya estaTT. UUU"ucho nimoUUU. ELABORAN,O 1NA CONS1L(A &odo Re-istr# e inB#rmacin debe de tener su propia C#nsulta3 BaFa 4 M# iBicacin, es por eso que en este nuevo capitulo nos concentramos en ello, primeramente en poder c#nsultar la inB#rmacin que ya se escribi en la !#Fa e Excel, obviamente desde una Macr# combinada con Visual Basic, observemos el siguiente ejemplo$ Fase I >. !resione La &eclas Alt * F113 para entrar al editor de Visual Basic. ?. ctiva las siguientes opciones$ 2e clic en el Men Ver y elija la opcin Ex+l#ra #r e Pr#4ect#s 2e clic en el Men &er y elija la opcin Ventana Pr#+ie a es @. 2el Men Insertar elija la 3pcin 1serF#rm/ .sto inserta el (ormulario que programaremos con controles. .n el Ex+l#ra #r e Pr#4ect# se observara que se inserto el 1serF#rm. hora crearas un formulario con el siguiente aspecto$

el formulario tendr$ &res etiquetas &res &e#tbo# &res 6otones de ,omando

Los datos que se preguntaran sern N#m$re3 ,ireccin 4 (el%B#n#. Los tres botones nos servirn para lo siguiente$ C#nsultar consultara la informacin que hayamos insertado desde el botn insertar. BaFa podr eliminar alg:n 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. continuacin se muestra como se deben de programar estos ,ontroles$ !rogramacin de los ,ontroles$ BO(ON ,E CONS1L(A !rivate 4ub ,ommand6utton-O,licP)* ,ells.(ind)8hat$I(extB#x1, fter$I ctive,ell, LooPCn$I#l(ormulas, LooP t O $I#l!art, 4earch3rder$I#l6y0o9s, 4earch2irection$I#l+e#t, "atch,ase$I O (alse*. ctivate ctive,ell.3ffset)A, -*.4elect &e#t6o#/ I ctive,ell 0em la lnea que contiene el Acti&eCell/OBBset'<3 1)/Select permite moverse una columna a la derecha, por lo tanto despus de la b:squeda de las primeras lneas con Cell/Fin si encuentra el +ombre de la persona se mueve a la siguiente columna y la lnea (extB#x0 7 Acti&eCell !ermite capturar el valor de la celda al (ext$#x0 y as mostrar el dato de la celda en el (extB#x0/ ctive,ell.3ffset)A, -*.4elect &e#t6o#1 I ctive,ell 0em ,ada vez que se escriba la lnea Acti&eCell/OBBset'<3 1)/Select significa que se tiene que moverse una columna a la derecha. 0em 4i el nombre que tratas de consultar no se encuentra podra generar un error porque fallara el ,ell.(ind esto puede ocurrir en el 8ord @>, yo trabajo con el 8ord /AAA o V! y no tengo ese problema. !ero esto se solucionara con una trampa de error. .nd 4ub BO(ON BALA !rivate 4ub ,ommand6utton/O,licP)* 4election..ntire0o9.2elete 0ange)H @H*.4elect &e#t6o#- I .mpty &e#t6o#/ I .mpty &e#t6o#1 I .mpty &e#t6o#-.4et(ocus .nd 4ub

BO(ON INSER(AR !rivate 4ub ,ommand6utton1O,licP)* 0ange)H @H*.4elect 4election..ntire0o9.Cnsert &e#t6o#- I .mpty &e#t6o#/ I .mpty &e#t6o#1 I .mpty &e#t6o#-.4et(ocus .nd 4ub C1A,ROS ,E (EX(O !rivate 4ub &e#t6o#-O,hange)* 0ange)H @H*.(ormula0-,- I &e#t6o#0em esta primer lnea reemplaza a estas dosTT que te parece todava mas corta 0ange)H @H*.4elect ctive,ell.(ormula0-,- I &e#t6o#.nd 4ub !rivate 4ub &e#t6o#/O,hange)* 0ange)H6@H*.(ormula0-,- I &e#t6o#/ .nd 4ub !rivate 4ub &e#t6o#1O,hange)* 0ange)H,@H*.(ormula0-,- I &e#t6o#1 .nd 4ub 4i con el B#tn C#nsulta tienes un error cuando no encuentra a la persona, entonces tendrs que agregar esto a tu cdigo del B#tn C#nsultar BO(ON ,E CONS1L(A !rivate 4ub ,ommand6utton-O,licP)*

On Err#r "#t# n#enc#ntr# 0em esta lnea genera una trampa de error si .#cel encuentra un error se le dice que se vaya a la etiqueta n#enc#ntr# que esta definida mas adelante en el cdigo. +o use la trampa de error si no tiene problemas a la hora de que no encuentra a la persona. 0ecuerde si usted comete cualquier error .#cel se dirigir a la etiqueta n#enc#ntr#.y esquivara cualquier error, hasta uno que usted cometa en la programacin. ,ells.(ind)8hat$I(extB#x1, fter$I ctive,ell, LooPCn$I#l(ormulas, LooP t O $I#l!art, 4earch3rder$I#l6y0o9s, 4earch2irection$I#l+e#t, "atch,ase$I O (alse*. ctivate Acti&eCell/OBBset'<3 1)/Select (extB#x0 7 Acti&eCell Acti&eCell/OBBset'<3 1)/Select (extB#x= 7 Acti&eCell 0em &ambin se puede utilizar este cdigo para leer la informacin de las celdas lo que esta en azul. La diferencia es que se asignan los valores a variables y despus se descargan a los &e#t6o#s. Acti&eCell/OBBset'<3 1)/Select ,irecci#n 7 Acti&ecell Acti&eCell/OBBset'<3 1)/Select (eleB#n# 7 Acti&ecell (extB#x0 7 ,irecci#n (extB#x= 7 (eleB#n# n#enc#ntr#N 0em qu se esquiva el error .nd 4ub Jue te parece es increble como una "acro combinada con 5isual 6asic puede hacer hasta lo imposible

6ueno ya tenemos elaborado un ejercicio de consultas de datos, ahora accesaremos al formulario desde Excel sin necesidad de entrar al E it#r e Visual Basic. !ara realizar este ejercicio debemos permanecer dentro del E it#r e Visual Basic para poder introducir el cdigo en un M# ul#, por lo tanto debers seguir los siguientes pasos$

2e clic en el Men Insertar y elija la opcin M# ul# .scriba dentro del M# ul# el nombre del modulo en este caso Su$ Entra a ,uando usted escriba 4ub .ntrada aparecer de la siguiente manera$ 4ub .ntrada)* Load %ser(orm%ser(orm-.4ho9 .nd 4ub %sted deber escribir las dos lneas que estn en medio que son$ L#a 1serF#rm1 1serF#rm1/SA#I La primer lnea significa que cargue a la memoria el formulario que se llama 1serF#rm1, 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 .#cel sin necesidad de entrar al E it#r e Visual Basic. 4i te fija en el e#plorador de proyecto aparece el M# ul# que creamos.

si queremos volver al formulario solo da doble clic en 1serF#rm1 6ueno ya esta listo ahora salgamos del E it#r e Visual Basic y volvamos a Excel/ 2e clic en el Men ArcAi&# del E it#r e Visual Basic .lija la opcin Cerrar 4 &#l&er a Micr#s#Bt Excel

Sa que estamos en Excel, podemos insertar una imagen o un botn o cualquier grafico, por ejemplo$ 2e clic en el Men Insertar .lija la opcin Ima-en, seguido por Ima-en Pre ise.a a inserte cualquier imagen y dele el tama'o que usted desea. 2e clic derecho sobre la Cmagen .lija la opcin Asi-nar Macr# 2e clic en la Macr# que se llama Entra a, es obvio la :nica que hicimos 2e ,lic en Ace+tar 2e clic fuera de la imagen en cualquier celda y listo si presionas la imagen cargara el formulario.

Pr#Bes#r Ramn Men #9a OcA#a C1RSOS PAR(IC1LARES (ELOFONON =1>0>?@>1= NO"ALES3 SONORA3 MOXICO

You might also like