You are on page 1of 45

1. Qu es una Macro?

Captulo siguiente: 2 - Observando los cdigos de una macro de excel Primeramente debemos de saber que es una Macro y a continuacin se explica el termino: Una Macro son una serie de pasos que se almacenan y se pueden activar con alguna tecla de control y una letra. Por ejemplo todos los d!as empleo "recuentemente 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 *etra' 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: #rasl,date a la celda A1 y escribe tu (ombre. Por ejemplo Ramn y presiona -nter .egr/sate a la celda A1 porque cuando diste -nter bajo de celda o cambio el rumbo. 0a clic en el Men Ver seguido por la Opcin Barra e !erramientas y elija Visual Basic. 1e activara la barra de 2erramientas 3isual 4asic.

0a clic en el botn "uar ar Macro el que tiene la ruedita +5ul. 6indo7s activa el cuadro de dialogo "ra#ar Macro el cual permitir, darle el nombre a la macro y cual ser, el m/todo abreviado para ejecutarla. -l m/todo +breviado se re"iere con que letra se va activar la macro obviamente se activara con la tecla )ontrol y la letra que usted quiera de pre"erencia en min8scula porque si activa las may8sculas la macro se activara presionando la tecla 12i"t 9 )ontrol 9 la letra que usted indico.

0onde dice $om#re e la macro ya aparece el nombre que llevara la macro en este caso Macro1. si desea cambiar el nombre escriba uno nuevo pero yo le recomiendo que as! lo deje. -n la opcin Mto o A#re%ia o aparece que se activara con la tecla Control&C'R() 9 la letra que usted indica de clic en el cuadrito y ponga una letra por ejemplo ponga la letra a &en min8sculas'. *a macro se activara cuando este lista con la tecla Control * a 0e clic en el Botn Aceptar. 6indo7s empe5ara a grabar todos los pasos en la Macro1.y el botn de la ruedita a5ul cambiara de "orma a2ora ser, un cuadrito +5ul se llamara +etener gra#acin. *o utili5aremos cuando terminemos de indicarle los pasos para detener la grabacin. )ambie el #ipo de *etra en el Botn ,uente de la barra de 2erramientas %ormato )ambie el tama$o de la letra en el Botn

'ama-o e ,uente de la barra de 2erramientas %ormato Presione el Botn $egrita de la barra de 2erramientas %ormato )ambie el color de la letra en el Botn Color e ,uente de la barra de 2erramientas %ormato. .ecuerde que todos estos pasos est,n siendo almacenados en la macro que estamos grabando y tambi/n recuerde que estos pasos se est,n e"ectuando en la celda A1. Presione el 4otn +etener "ra#acin de la barra de :erramientas de Visual Basic. -l que tiene el cuadrito a5ul presionado.

*isto -xcel guardo los pasos en la Macro; que se activara presionado la tecla Control *a -scribe otro nombre en la celda C1 y presiona .nter despu/s regresa a la celda C1. Presiona la tecla Control * a. 6indo7s e"ectuara todos los pasos grabados sobre la celda C1 esto quiere decir que el nombre que esta en C1 tendr, las caracter!sticas del que esta en A1. #ipo de letra tama$o negrita y el color que indicaste al grabar la macro. $ota . )ada ve5 que presiones Control * a -xcel ejecutara la macro y e"ectuara los pasos en la celda que te encuentres. Puedes grabar todas las macros que desees. +2ora te recomiendo que domines estos pasos antes de pasar a la siguiente "ase. #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 despu/s de que indicaste los pasos repite este ejercicio las veces que sea necesario para aprend/rtelo bien. Practica < =enera las siguientes Macros: =raba una Macro que se active con Control * # y que esta macro permita abrir un arc2ivo =raba una Macro que se active con Control * c y que esta macro permita insertar un 6ord+rt Muc2os pensaran que esto no es nada pero ya veremos mas adelante cuando me5clemos los cdigos que genera ./cel con los de Visual Basic. -sto ser, pura +inamita.

0. 1#ser%an o los c igos e una macro e e/cel


Captulo anterior: ; - >?u/ es una Macro@ Captulo siguiente: A - )digos m,s comunes 4ien a2ora despu/s de practicar la ,ase 1 con di"erentes ejemplos o Macros pasaremos a la siguiente ,ase que nos permitir, observar los cdigos que 2emos generados con nuestra macros. #e recomiendo que salgas de ./cel y vuelvas a entrar para que trabajes limpio sin ninguna macro y empe5ando de la macro; de nuevo. 1B2.RVA$+1 (12 C1+3"12 +. 4$A MACR1 +. .5C.(

)rearemos una macro y veremos sus cdigos: Para observar los cdigos de una macro debemos de seguir los siguientes pasos: Primeramente trasl,dese a la celda A6 antes de empe5ar la grabacin de la Macro Presione el 4otn "ra#ar Macro de la barra de :erramientas Visual Basic. ./cel muestra el cuadro de 0ialogo =rabar Macro en la opcin Mto o A#re%ia o escriba la letra r por lo tanto la macro se llamara con Control * r Presione el botn Aceptar. ./cel inicia la grabacin del la Macro1 #rasl,dese a la celda A1 y escriba Ramn despu/s presione .nter para aceptar el valor en la celda Pare la grabacin de la macro presionando el botn +etener "ra#acin de la barra de 2erramientas Visual Basic. -xcel a grabado los pasos y a generado un cdigo Observ/moslos: Presione la tecla +lt 9 la tecla de "uncin %;;&Alt * ,11'. -xcel nos traslada al -ditor de 3isual 4asic. 1i este editor no se activa es que -xcel no esta bien instalado o se a borrado. #ambi/n puede acceder desde el Men !erramientas7 Macro 8 . itor e Visual Basic. +ctive los siguientes cuadros o ventanas: 0e clic en el Men Ver y elija la opcin ./plora or e 9ro8ectos 0e clic en el Men %er y elija la opcin Ventana 9ropie a es -stas dos opciones deben de estar siempre activadas ya que de a2! depende todo lo que vallamos a 2acer.

0el cuadro 9ro8ecto de doble clic en M ulos o simplemente presione el signo de * que aparece en la opcin M ulos. 1e activara debajo de M ulos la Opcin Mo ulo1 0e doble clic en Mo ulo1. 1e mostrara en el -ditor de 3isual 4asic el cdigo de la macro que grabamos de la siguiente "orma: 1ub Macro;&' B B Macro; Macro B Macro grabada el CDECFE2CC; por .+MO( M-(0OG+ O):O+ B B +cceso directo: )#.*9r B .ange&H+;H'.1elect +ctive)ell.%ormula.;); I H.amnH .ange&H+2H'.1elect -nd 1ub

?ue es lo que signi"ica esto nos preguntaremos asombrados a continuacin se da una explicacin de lo que 2a 2ec2o ./cel: 2u# y .n 2u# indican el inicio y el "inal del procedimiento de la Macro1 #odo lo que aparece con un apostro"e : indica que no se tomara en cuenta que es solo texto o comentarios y ese texto debe de aparecer en un color ya sea el color verde. Range&;A1;).2elect <ndica que lo primero que 2icimos al grabar la macro "ue trasladarnos a la celda A1. *a orden Range nos permite trasladarnos a una celda Acti%eCell.,ormulaR1C1 < ;Ramn; -sto indica que se escribir, en la celda en que se encuentra el valor de texto Ramn. #odo lo que aparece entre comillas siempre ser, un valor de texto. *a orden Acti%eCell.,ormulaR1C1 nos permite escribir un valor en la celda activa. Range&;A0;).2elect Otra ve5 indicamos que se traslade a la celda +2. -sto se debe a que cuando escribimos el nombre de Ramn en A1 presionamos .nter y al dar .nter bajo a la celda A0. Para comprender mejor alteraremos el cdigo dentro del editor de 3isual 4asic. ?ue crees que pasara aqu! con nuestra Macro: 1ub Macro;&' B B Macro; Macro B Macro grabada el CDECFE2CC; por .+MO( M-(0OG+ O):O+ B B +cceso directo: )#.*9r B .ange&H+;H'.1elect +ctive)ell.%ormula.;); I H.amnH .ange&H4;H'.1elect +ctive)ell.%ormula.;); I H)alle 2; de Mar5o J2DCH .ange&H);H'.1elect +ctive)ell.%ormula.;); I HA;-2-FK-;AH .ange&H0;H'.1elect +ctive)ell.%ormula.;); I H(ogales 1onoraH .ange&H-;H'.1elect +ctive)ell.%ormula.;); I H)O(+*-P (O=+*-1H -nd 1ub +s! es acabo de alterar el cdigo y cuando regrese a ./cel y ejecute la macro con Control * r 2ar, lo siguiente: .n A1 escri#ir= Ramn .n B1 escri#ir= Calle 01 e Mar>o ?0@A .n C1 escri#ir= B1C0CDEC1B .n +1 escri#ir= $ogales 2onora .n .1 escri#ir= C1$A(.9 $1"A(.2 +s! que salgamos del editor dando clic en el Men ArcFi%o y eligiendo la opcin Cerrar 8 %ol%er a MicrosoGt ./cel. 1i no desea salir por completo de clic en el #otn MicrosoGt ./cel que se encuentra activado en la barra de tareas y cuando dese/ volver al editor de clic en el #otn MicrosoGt Visual Basic que se encuentra en la barra de #areas.

+2ora ya que salimos de Visual Basic y estamos en ./cel de (uevo ejecutemos la macro presionando Control * r y veamos los resultados de nuestra modi"icacin. ?ue te parece es sencillo o (o@ )laro necesitamos practicar bastante para dominar esto as! que repasa la ,ase 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. Practica << =enera una Macro que escriba un nombre en una celda y lo ponga negrita y observa el C igo. =enera una Macro que escriba un nombre en una celda y lo )entre y observa el C igo. =enera una Macro que escriba un nombre en una celda y cambie el tama$o de la letra a 2C puntos y observa el C igo.

B. C igos m=s comunes


Captulo anterior: 2 - Observando los cdigos de una macro de excel Captulo siguiente: F - )reando "ormularios y program,ndolos < 'rasla arse a una Cel a .ange&H+;H'.1elect .scri#ir en una Cel a +ctivecell.%ormula.;);IH.amonH (etra $egrita 1election.%ont.4old I #rue (etra Cursi%a 1election.%ont.<talic I #rue (etra 2u#ra8a a 1election.%ont.Underline I xlUnderline1tyle1ingle Centrar 'e/to 6it2 1election .:ori5ontal+lignment I xl)enter -nd 6it2 Alinear a la i>Huier a 6it2 1election

.:ori5ontal+lignment I xl*e"t -nd 6it2 Alinear a la +erecFa 6it2 1election .:ori5ontal+lignment I xl.ig2t -nd 6it2 'ipo e (etra&,uente) 6it2 1election.%ont .(ame I H+=aramondH -nd 6it2 'ama-o e (etra&'ama-o e ,uente) 6it2 1election.%ont .1i5e I ;L -nd 6it2 Copiar 1election.)opy 9egar +ctive12eet.Paste Cortar 1election.)ut 1r enar Ascen ente 1election.1ort Mey;:I.ange&H+;H' Order;:Ixl+scending :eader:Ixl=uess N Order)ustom:I; Matc2)ase:I%alse Orientation:Ixl#op#o4ottom 1r en +escen ente 1election.1ort Mey;:I.ange&H+;H' Order;:Ixl0escending :eader:Ixl=uess N Order)ustom:I; Matc2)ase:I%alse Orientation:Ixl#op#o4ottom Buscar

)ells.%ind&62at:IH Ramon H +"ter:I+ctive)ell *ooO<n:Ixl%ormulas *ooO+t N :IxlPart 1earc2Order:Ixl4y.o7s 1earc20irection:Ixl(ext Matc2)ase:I N %alse'.+ctivate 3nsertar ,ila 1election.-ntire.o7.<nsert .liminar ,ila 1election.-ntire.o7.0elete 3nsertar Columna 1election.-ntire)olumn.<nsert .liminar Columna 1election.-ntire)olumn.0elete A#rir un (i#ro 6orObooOs.Open %ilename:IH):PMis documentosP%i eo saGe B./lsH "ra#ar un (i#ro +ctive6orObooO.1ave+s %ilename:IH):PMis documentosPpiscis./ls H %ile%ormat N :Ixl(ormal Pass7ord:IHH 6rite.esPass7ord:IHH .eadOnly.ecommended:I N %alse )reate4acOup:I%alse -stos serian algunos cdigos muy comunes en ./cel pero si usted desea puede generar mas cdigos de otras opciones es cuestin de que los ocupe. +ntes de pasar a la ,ase B es necesario que domines generar Macros y Observar sus cdigos que se encuentran en la ,ase 0. .ecuerda esto es de muc2a practica y para eso es necesario aprender bien las "ases +nteriores.

D. Crean o Gormularios 8 program=n olos 3


Captulo anterior: A - )digos m,s comunes Captulo siguiente: L - )reando "ormularios y program,ndolos << +ntes de -mpe5ar esta nueva "ase te recomiendo que salgas de ./cel y vuelvas a entrar esto es por si estuviste practicando los cdigos para que no quede una secuencia de Macros. +2ora te ense$are a dominar lo m,ximo de -xcel que es crear "ormularios y programarlos bueno un "ormulario 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 3isual 4asic.

+ continuacin Muestro como crear un "ormulario y como programarlo: Presione *a #eclas Alt * ,117 para entrar al editor de Visual Basic. +ctiva las siguientes opciones: 0e clic en el Men Ver y elija la opcin ./plora or e 9ro8ectos 0e clic en el Men %er y elija la opcin Ventana 9ropie a es 0el Men 3nsertar elija la Opcin 4ser,orm. -sto inserta el %ormulario que programaremos con controles. -n el ./plora or e 9ro8ecto se observara que se inserto el 4ser,orm.

#ambi/n cuando de clic en el %ormulario 42.R,1RM1 se debe de activar el Cua ro e !erramientas si no se activa de clic en el Men Ver y elija la opcin Cua ro e !erramientas. -lija del Cua ro e !erramientas el )ontrol .tiHueta el que tiene la A y +rrastre dibujando en el %ormulario 42.R,1RM1 la etiqueta. ?uedara el nombre *abel; despu/s de un clic en la etiqueta dibujada y podr, modi"icar el nombre de adentro y pondremos a2! $om#re. 1i por error da doble clic en la etiqueta y lo manda a la pantalla de programacin de la etiqueta solo de doble clic en 4ser,orm1 que se encuentra en el ./plora or e 9ro8ecto. -lija del Cua ro e !erramientas el control Cua ro e 'e/to el que tiene a# y arrastre dibujando en el "ormulario 42.R,1RM1 el cuadro de texto a un lado de la etiqueta que dice $om#re. -l cuadro de texto debe de estar vac!o y su nombre ser, 'e/t#o/1 el nombre solo aparecer, en el control. :aga los dos pasos anteriores igualmente poniendo +ireccin en la (a#el0 y 'elGono en la (a#elB y tambi/n dib8jeles su #extbox. -sto quedara as! despu/s de 2aberlo 2ec2o

Si tiene algn problema al dibujar las etiquetas o los cuadros de texto solo c,mbiele el nombre a la etiqueta o el cuadro de texto en la Ventana 9ropie a es la opcin se llama &$ame). -l -rror que marque puede ser $om#re Am#iguo7 pero si le cambias el (ombre al control se quitara el error. Puedes ponerle cualquier nombre en lugar de *abel;.

2olo altera esto si te marca error7 si $1 Ialo as. *os controles como las -tiquetas y )uadros de #extos pueden modi"ic,rseles algunas opciones en la 3entana Propiedades Para 2acer esto es necesario tener conocimiento sobre las propiedades de los controles. (o altere las propiedades si no las conoce.

6. Crean o Gormularios 8 program=n olos 33


Captulo anterior: F - )reando "ormularios y program,ndolos < Captulo siguiente: Q - #rabajando con "rmulas K. -lija del Cua ro e !erramientas el control Botn e Coman o y +rrastre dibujando en el %ormulario 42.R,1RM1 el 4otn despu/s de un clic en el nombre del 4otn dibujado y podr, modi"icar el nombre y pondremos a2! 3nsertar. 1i por error da doble clic en la 4otn y lo manda a la pantalla de programacin de la etiqueta solo de doble clic en 4ser,orm1 que se encuentra en el ./plora or e 9ro8ecto.

+s! quedara el %ormulario "ormado por los controles:

D. +2ora de doble clic sobre el control 'e/t#o/1 para programarlo y despu/s inserte el siguiente cdigo: Private 1ub #ext4ox;N)2ange&' Range&;AJ;).2elect Acti%eCell.,ormulaR1C1 < 'e/tBo/1 -nd 1ub -sto indica que se valla a AJ y escriba lo que 2ay en el 'e/t#o/1 $ota .-*o que esta en a5ul lo genera -xcel autom,ticamente usted solo escribir, lo que esta en (egrita. Para volver al ,ormulario y programar el siguiente #extbox de doble clic en 4ser,orm1 que se encuentra en el ./plora or e 9ro8ecto7 o simplemente de clic en Ver 1#Ieto en el mismo ./plora or e 9ro8ecto. R. +2ora de doble clic sobre el control 'e/t#o/0 para programarlo y despu/s inserte el siguiente cdigo: Private 1ub #ext4ox2N)2ange&' Range&;BJ;).2elect Acti%eCell.,ormulaR1C1 < 'e/tBo/0 -nd 1ub -sto indica que se valla a BJ y escriba lo que 2ay en el 'e/t#o/0 Para volver al ,ormulario y programar el siguiente #extbox de doble clic en 4ser,orm1 que se encuentra en el ./plora or e 9ro8ecto7 o simplemente de clic en Ver 1#Ieto en el mismo ./plora or e 9ro8ecto. ;C. +2ora de doble clic sobre el control 'e/t#o/B para programarlo y despu/s inserte el siguiente cdigo: Private 1ub #ext4oxAN)2ange&' Range&;CJ;).2elect

Acti%eCell.,ormulaR1C1 < 'e/tBo/0 -nd 1ub -sto indica que se valla a CJ y escriba lo que 2ay en el 'e/t#o/B Para volver al ,ormulario y programar el Botn e Coman o Insertar de doble clic en 4ser,orm1 que se encuentra en el ./plora or e 9ro8ecto7 o simplemente de clic en Ver 1#Ieto en el mismo ./plora or e 9ro8ecto. ;;. +2ora de doble clic sobre el control Botn e Coman o para programarlo y despu/s inserte el siguiente cdigo: Private 1ub )ommand4utton;N)licO&' Rem inserta un rengln 2election..ntireRoK.3nsert Rem .mpt8 (impia (os 'e/t#o/ 'e/tBo/1 < .mpt8 'e/tBo/0 < .mpt8 'e/tBo/B < .mpt8 Rem 'e/t#o/1.2et,ocus .n%a el cursor al 'e/t#o/1 para %ol%er a capturar los atos 'e/tBo/1.2et,ocus -nd 1ub $ota.C -l comando Rem es empleado para poner comentarios dentro de la programacin el comando .mpt8 es empleado para vaciar los #extbox. ;2. +2ora presione el botn .Iecutar 4serL,orm que se encuentra en la barra de 2erramientas o simplemente la tecla de "uncin ,6

1e activara el 4serGorm1 y todo lo que escriba en los #extbox se escribir, en -xcel y cuando presione el botn <nsertar se insertara un rengln y se vaciaran los #extbox y despu/s se mostrara el cursor en el 'e/t#o/1. -n este arc2ivo que usted bajo se encuentra una 2oja de -xcel *ibre de 3irus o sea que esta limpio ,bralo sin ning8n problema ya que a2! viene un ejemplo de la Macro ya reali5ada y solo la ejecutara y vera como trabajan las Macros. -spero y est/s pendiente porque vienen mas partes sobre este interesante curso de Macros.

M. 'ra#aIan o con Grmulas

Captulo anterior: L - )reando "ormularios y program,ndolos << Captulo siguiente: K - =enera el siguiente cdigo -s de suma importancia saber aplicar ,ormulas en Macros e ./cel ya que la mayor!a de las 2ojas de c,lculos las involucran por ejemplo los <nventarios las (ominas o cualquier otro tipo de 2oja las llevan es por eso que en la siguiente ,ase se muestra como manejar ,ormulas en Macros e ./cel. ,ase 3 Presione *a #eclas Alt * ,117 para entrar al editor de Visual Basic. +ctiva las siguientes opciones: 0e clic en el Men Ver y elija la opcin ./plora or e 9ro8ectos 0e clic en el Men %er y elija la opcin Ventana 9ropie a es 0el Men 3nsertar elija la Opcin 4ser,orm. -sto inserta el %ormulario que programaremos con controles. -n el ./plora or e 9ro8ecto se observara que se inserto el 4ser,orm. +2ora crearas un "ormulario con el siguiente aspecto:

el "ormulario tendr,: - #res etiquetas - #res #extbox - Un 4otn de )omando *os datos que se preguntaran ser,n (ombre y -dad los 0!as 3ividos se generaran autom,ticamente cuando insertes la edad. + continuacin se muestra como se deben de programar estos )ontroles: Programacin de los )ontroles: Private 1ub )ommand4utton;N)licO&' 1election.-ntire.o7.<nsert #ext4ox; I -mpty #ext4ox2 I -mpty #ext4oxA I -mpty #ext4ox;.1et%ocus -nd 1ub Private 1ub #ext4ox;N)2ange&'

.ange&H+RH'.1elect +ctive)ell.%ormula.;); I #ext4ox; -nd 1ub Private 1ub #ext4ox2N)2ange&' .ange&H4RH'.1elect +ctive)ell.%ormula.;); I #ext4ox2 .em aqu! se crea la %ormula #ext4oxA I 3al&#ext4ox2' S AQL .em -l #extboxA guardara el total de la multiplicacin del #extbox2 por AQL .em -l )omando 3al permite convertir un valor de #exto a un 3alor (um/rico .em -sto se debe a que los #extbox no son (um/ricos y debemos de )onvertirlos -nd 1ub Private 1ub #ext4oxAN)2ange&' .ange&H)RH'.1elect +ctive)ell.%ormula.;); I #ext4oxA -nd 1ub -sto va permitir que cuando se ejecute el "ormulario y se de la edad el resultado de los d!as vividos aparecer, en el 'e/t#o/B y se escribir, tambi/n en ./cel. -l comando Val es un comando de Visual Basic que te permite convertir un valor de texto a un valor num/rico. .ecuerden el )omando .em se utili5a para poner )omentarios 8nicamente y no a"ecta a la programacin. -ste +rc2ivo de esta Macro se llama Macros e . a y viene incluido aqu!. =eneraremos otro ejemplo )rea el 1iguiente %ormulario con los siguientes datos: - L -tiquetas - L #extbox - ; 4otn de )omando *os datos que se preguntaran ser,n (ombre 0!as #rabajados Pago por 0!a 4onos y 1ueldo (eto.

E. "enera el siguiente c igo


Captulo anterior: Q - #rabajando con "rmulas Captulo siguiente: D - #rabajando con el asistente Private 1ub )ommand4utton;N)licO&' 1election.-ntire.o7.<nsert #ext4ox; I -mpty #ext4ox2 I -mpty #ext4oxA I -mpty #ext4ox;.1et%ocus -nd 1ub Private 1ub #ext4ox;N)2ange&' .ange&H+RH'.1elect +ctive)ell.%ormula.;); I #ext4ox; -nd 1ub Private 1ub #ext4ox2N)2ange&' .ange&H4RH'.1elect +ctive)ell.%ormula.;); I #ext4ox2 -nd 1ub Private 1ub #ext4oxAN)2ange&' .ange&H)RH'.1elect

+ctive)ell.%ormula.;); I #ext4oxA -nd 1ub Private 1ub #ext4oxFN)2ange&' .ange&H0RH'.1elect +ctive)ell.%ormula.;); I #ext4oxF .em aqu! se crea la "ormula #ext4oxL I 3al&#ext4ox2' S 3al&#ext4oxA' 9 3al&#ext4oxF' .em -l #ext4oxL guardara el total -nd 1ub Private 1ub #ext4oxLN)2ange&' .ange&H-RH'.1elect +ctive)ell.%ormula.;); I #ext4oxL -nd 1ub )uando se introdu5ca el 4onos autom,ticamente se generara el 1ueldo (eto. -ste ejemplo viene en el +rc2ivo Macros e 2uel o $eto B42A$+1 3$,1RMAC3N$ C1$ 4$ '.5'B15 1e puede buscar in"ormacin con un #extbox program,ndolo de la siguiente "orma:

0ibuje una .tiHueta un 'e/t#o/ y un Botn e Coman o y agregue el siguiente )digo: Private 1ub #ext4ox;N)2ange&' .ange&HaRH'.1elect +ctive)ell.%ormula.;); I #ext4ox; -nd 1ub Private 1ub )ommand4utton;N)licO&'

)ells.%ind&62at:I'e/tBo/1 +"ter:I+ctive)ell *ooO<n:Ixl%ormulas *ooO+t N :IxlPart 1earc2Order:Ixl4y.o7s 1earc20irection:Ixl(ext Matc2)ase:I N %alse'.+ctivate -nd 1ub 1i te "ijas inclu! en la programacin del Botn Buscar AFora que buscara lo que en el #extbox; a la 2ora de Presionarse. -ste proceso viene en el +rc2ivo )ompleto Macro0

@. 'ra#aIan o con el asistente


Captulo anterior: K - =enera el siguiente cdigo Captulo siguiente: R - -laborando una consulta -l asistente es el personaje de 1GGice que se activa para ayudarnos y una de las ventajas es que podemos Manipularlo por ejemplo se le puede dar animacin Moverse :acer Preguntas -tc. + continuacin se muestran algunos cdigos del +sistente:

-ste cdigo permite 2acer visible el ayudante o sea mostrarlo. 1i deseas ocultarlo solo cambia la opcin 'rue por ,alse. Assistant.Visi#le < 'rue -ste cdigo permite Mover el +sistente a un nuevo lugar solo cambia los valores num/ricos y cambiara de posicin. Assistant.Mo%e DBA7 0BA -ste cdigo permite activar un e"ecto de animacin cuando escribas el signo <gual despu/s de +ssistant.+nimation I aparecer, un men8 con di"erentes e"ectos de animacin Assistant.Animation < msoAnimation(istens'oComputer -ste ejemplo permite crear un $ue%o Asistente para poderlo manipular con una pregunta y que tu contestes. *a variable t guardara el valor de la respuesta si el valor es -A signi"ica que es 1i y por lo tanto borrara el rengln.

6it2 +ssistant.(e74alloon .#ext I H0eseas 4orrar este .egistroH .4utton I mso4utton1etTes(o .:eading I H+dvertenciaH t I .12o7 -nd 6it2 <" t I -A #2en +ssistant.+nimation I mso+nimation-mpty#ras2 1election.-ntire.o7.0elete -nd <" -ste ejemplo viene en el arc2ivo Macro0 1i deseas que siga saliendo esta gu!a solo escr!beme pidiendo que sigan saliendo ejemplos.

J. .la#oran o una consulta


Captulo anterior: D - #rabajando con el asistente Captulo siguiente: ;C - Programacin de los )ontroles < #odo Registro e inGormacin debe de tener su propia Consulta7 BaIa 8 Mo iGicacin es por eso que en este nuevo capitulo nos concentramos en ello primeramente en poder consultar la inGormacin que ya se escribi en la !oIa e ./cel obviamente desde una Macro combinada con Visual Basic observemos el siguiente ejemplo: ,ase 3 Presione *a #eclas Alt * ,117 para entrar al editor de Visual Basic. +ctiva las siguientes opciones: 0e clic en el Men Ver y elija la opcin ./plora or e 9ro8ectos 0e clic en el Men %er y elija la opcin Ventana 9ropie a es 0el Men 3nsertar elija la Opcin 4ser,orm. -sto inserta el %ormulario que programaremos con controles. -n el ./plora or e 9ro8ecto se observara que se inserto el 4ser,orm. +2ora crearas un "ormulario con el siguiente aspecto:

el "ormulario tendr,: - #res etiquetas - #res #extbox - #res 4otones de )omando *os datos que se preguntaran ser,n $om#re7 +ireccin 8 'elGono. *os tres botones nos servir,n para lo siguiente: Consultar consultara la in"ormacin que 2ayamos insertado desde el botn insertar. BaIa podr, eliminar alg8n dato que se consulto y no lo queremos. 3nsertar tendr, la "uncin de insertar los registros que vayamos dando de alta es como los ejercicios anteriores. + continuacin se muestra como se deben de programar estos )ontroles:

1A. 9rogramacin e los Controles 3


Captulo anterior: R - -laborando una consulta Captulo siguiente: ;; - Programacin de los )ontroles << B1'1$ +. C1$24('A Private 1ub )ommand4utton;N)licO&' )ells.%ind&62at:I'e/tBo/1 +"ter:I+ctive)ell *ooO<n:Ixl%ormulas *ooO+t N :IxlPart 1earc2Order:Ixl4y.o7s 1earc20irection:Ixl(ext Matc2)ase:I N %alse'.+ctivate +ctive)ell.O""set&C ;'.1elect #ext4ox2 I +ctive)ell .em la l!nea que contiene el Acti%eCell.1GGset&A7 1).2elect permite moverse una columna a la derec2a por lo tanto despu/s de la b8squeda de las primeras l!neas con Cell.,in si encuentra el (ombre de la persona se mueve a la siguiente columna y la l!nea 'e/tBo/0 < Acti%eCell Permite capturar el valor de la celda al 'e/t#o/0 y as! mostrar el dato de la celda en el 'e/tBo/0. +ctive)ell.O""set&C ;'.1elect #ext4oxA I +ctive)ell .em )ada ve5 que se escriba la l!nea Acti%eCell.1GGset&A7 1).2elect signi"ica que se tiene que moverse una columna a la derec2a.

.em 1i el nombre que tratas de consultar no se encuentra podr!a generar un error porque "allar!a el )ell.%ind esto puede ocurrir en el 6ord RK yo trabajo con el 6ord 2CCC o UP y no tengo ese problema. Pero esto se solucionar!a con una trampa de error. -nd 1ub B1'1$ BAOA Private 1ub )ommand4utton2N)licO&' 1election.-ntire.o7.0elete .ange&H+RH'.1elect #ext4ox; I -mpty #ext4ox2 I -mpty #ext4oxA I -mpty #ext4ox;.1et%ocus -nd 1ub B1'1$ 3$2.R'AR Private 1ub )ommand4uttonAN)licO&' .ange&H+RH'.1elect 1election.-ntire.o7.<nsert #ext4ox; I -mpty #ext4ox2 I -mpty #ext4oxA I -mpty #ext4ox;.1et%ocus -nd 1ub C4A+R12 +. '.5'1 Private 1ub #ext4ox;N)2ange&' .ange&H+RH'.%ormula.;); I #ext4ox; .em esta primer l!nea reempla5a a estas dos...... que te parece todav!a mas corta .ange&H+RH'.1elect +ctive)ell.%ormula.;); I #ext4ox;V*eon;W

-nd 1ub Private 1ub #ext4ox2N)2ange&' .ange&H4RH'.%ormula.;); I #ext4ox2 -nd 1ub Private 1ub #ext4oxAN)2ange&' .ange&H)RH'.%ormula.;); I #ext4oxA -nd 1ub 1i con el Botn Consulta tienes un error cuando no encuentra a la persona entonces tendr,s que agregar esto a tu cdigo del Botn Consultar

V*eon;W.ange&H+RH'.%ormula.;);I#ext4ox; .eempla5a estas dos lineas

11. 9rogramacin e los Controles 33


Captulo anterior: ;C - Programacin de los )ontroles < Captulo siguiente: ;2 - #rabajar con *istbox y )ombobox B1'1$ +. C1$24('A Private 1ub )ommand4utton;N)licO&' 1n .rror "oto noencontro .em esta l!nea genera una trampa de error si -xcel encuentra un error se le dice que se vaya a la etiqueta noencontro que esta de"inida mas adelante en el cdigo. (o use la trampa de error si no tiene problemas a la 2ora de que no encuentra a la persona. .ecuerde si usted comete cualquier error -xcel se dirigir, a la etiqueta noencontro.y esquivara cualquier error 2asta uno que usted cometa en la programacin. )ells.%ind&62at:I'e/tBo/1 +"ter:I+ctive)ell *ooO<n:Ixl%ormulas *ooO+t N :IxlPart 1earc2Order:Ixl4y.o7s 1earc20irection:Ixl(ext Matc2)ase:I N %alse'.+ctivate Acti%eCell.1GGset&A7 1).2elect 'e/tBo/0 < Acti%eCell Acti%eCell.1GGset&A7 1).2elect 'e/tBo/B < Acti%eCell

.em #ambi/n se puede utili5ar este cdigo para leer la in"ormacin de las celdas lo que esta en a5ul. *a di"erencia es que se asignan los valores a variables y despu/s se descargan a los #ext4oxs. Acti%eCell.1GGset&A7 1).2elect +ireccion < Acti%ecell Acti%eCell.1GGset&A7 1).2elect 'eleGono < Acti%ecell 'e/tBo/0 < +ireccion 'e/tBo/B < 'eleGono noencontro: .em +qu! se esquiva el error -nd 1ub ?ue te parece es incre!ble como una Macro combinada con 3isual 4asic puede 2acer 2asta lo imposible 4ueno ya tenemos elaborado un ejercicio de consultas de datos a2ora accesaremos al "ormulario desde ./cel sin necesidad de entrar al . itor e Visual Basic. Para reali5ar este ejercicio debemos permanecer dentro del . itor e Visual Basic para poder introducir el cdigo en un Mo ulo por lo tanto deber,s seguir los siguientes pasos: 0e clic en el Men 3nsertar y elija la opcin Mo ulo -scriba dentro del Mo ulo el nombre del modulo en este caso 2u# .ntra a

)uando usted escriba 1ub -ntrada aparecer, de la siguiente manera: 1ub -ntrada&' *oad User%orm; User%orm;.12o7 -nd 1ub Usted deber, escribir las dos l!neas que est,n en medio que son: (oa 4ser,orm1 4ser,orm1.2FoK *a primer l!nea signi"ica que cargue a la memoria el "ormulario que se llama 4ser,orm1 la segunda l!nea signi"ica que lo muestre esto quiere decir que en el

modulo estamos escribiendo el cdigo de una macro que permitir, cargar el "ormulario desde -xcel sin necesidad de entrar al . itor e Visual Basic. 1i te "ija en el explorador de proyecto aparece el Mo ulo que creamos.

si queremos volver al "ormulario solo da doble clic en 4ser,orm1 4ueno ya esta listo a2ora salgamos del . itor e Visual Basic y volvamos a ./cel. 0e clic en el Men ArcFi%o del . itor e Visual Basic -lija la opcin Cerrar 8 %ol%er a MicrosoGt ./cel

Ta que estamos en ./cel podemos insertar una imagen o un botn o cualquier gra"ico por ejemplo: 0e clic en el Men 3nsertar -lija la opcin 3magen seguido por 3magen 9re ise-a a inserte cualquier imagen y dele el tama$o que usted desea. 0e clic derec2o sobre la <magen -lija la opcin Asignar Macro 0e clic en la Macro que se llama .ntra a es obvio la 8nica que 2icimos 0e )lic en Aceptar

0e clic "uera de la imagen en cualquier celda y listo si presionas la imagen cargara el "ormulario.

10. 'ra#aIar con (ist#o/ 8 Com#o#o/


Captulo anterior: ;; - Programacin de los )ontroles << Captulo siguiente: ;A - +s! "unciona

4ueno empe5aremos con como agregar in"ormacin a un Com#o#o/ y un (ist#o/ primeramente deber,s crear el siguiente "ormulario dentro de Visual Basic recuerda desde -xcel se utili5a la tecla A(' * ,11 para entrar a Visual Basic seguido del Men 3nsertar y despu/s 4serGorm bueno creo que ya lo sabes. <nserta Un Com#o#o/ 8 un (ist#o/ y un Botn. +2ora que ya creaste la <nter"a5 vamos a programar el botn veremos como se le puede agregar in"ormacin por medio de cdigo a estos dos controles. 0a doble clic en el Botn y escribe las siguientes l!neas dentro del procedimiento.

Private 1ub )ommand4utton;N)licO&' Com#oBo/1.A Com#oBo/1.A Com#oBo/1.A (istBo/1.A (istBo/1.A (istBo/1.A -nd 1ub 4ueno vamos a anali5ar el signi"icado de estas l!neas: Com#oBo/1.A 3tem ;Ouan Oos ; 3tem ;Ouan Oose; 3tem ;9e ro e la ,uente; 3tem ;2al%a or e la (u>;

3tem ;Ouan Oos; 3tem ;9e ro e la ,uente; 3tem ;2al%a or e la (u>;

*a opcin A 3tem signi"ica que vas a agregar un dato de texto por lo tanto se entiende como vas a agregar a Xuan Xos/ al Com#o#o/1 por lo tanto yo puedo agregar los datos que quiera a un Com#o#o/ o un (ist#o/ con la opcin A 3tem entonces al presionar el botn aparecer,n los datos que se encuentra escritos y podr,s seleccionar cualquiera de ellos recuerda que la in"ormacin la vas a agregar seg8n tus necesidades. +2ora si deseas agregar n8meros a un )ombobox o *ist4ox escribe el siguiente cdigo en un botn: Private 1ub )ommand4utton;N)licO&'

,or 5<1 to 6A (ist#o/1.A $e/t -nd 1ub *a <nstruccin ,orC$e/t es un ciclo contador que te permite contar desde un numero 2asta otro. Por ejemplo le digo que cuente desde el ; 2asta el LC y lo que se encuentre dentro del ciclo ,orC$e/t se ejecutara el n8mero de veces la 5 es una variable num/rica que guarda el valor cada ve5 que el ciclo da una vuelta aumenta un numero por lo tanto 5 va a valer desde ; 2asta LC y la instruccin 2tr es para convertir el valor num/rico de la 5 en valor de #exto ya que la opcin A 3tem guarda solo texto claro esta que tambi/n puede "uncionar sin esta instruccin en algunos casos. Por lo tanto el (ist#o/1 va a guardar los n8mero del ; al LC sin necesidad de irlos poniendo de uno por uno imag!natelo. (ist#o/1.A (ist#o/1.A (ist#o/1.A 3tem ;1; 3tem ;0; 3tem ;B; 3tem str&/)

Ta te quiero ver en el cdigo para que llegues al LC jejejejejejeje. 4ueno esto es para introducirle datos a un (ist#o/ 8 Com#o#o/ pero como puedo usar estos datos para enviarlos para una celda en el siguiente ejemplo te lo explico: 0a doble clic en el (ist#o/ y escribe el siguiente cdigo: Private 1ub *ist4ox;N)licO&' Range&;aJ;).2elect Acti%eCell.,ormulaR1C1 < (istBo/1 -nd 1ub +s! de de ",cil cada ve5 que escojas un dato que se encuentre en un (ist#o/1 lo enviara a la celda aJ escribi/ndolo a2!. 1i lo deseas 2acer lo puedes 2acer en un Com#o#o/ solo cambia (ist#o/1 por Com#o#o/1 y se acabo. +2ora si deseas agregar los datos al (ist#o/ o Com#o#o/ sin ning8n botn que presionar escribe el siguiente cdigo: Private 1ub User%ormN+ctivate&' Com#oBo/1.A Com#oBo/1.A Com#oBo/1.A 3tem ;Ouan Oose; 3tem ;9e ro e la ,uente; 3tem ;2al%a or e la (u>;

(istBo/1.A (istBo/1.A (istBo/1.A -nd 1ub

3tem ;Ouan Oos; 3tem ;9e ro e la ,uente; 3tem ;2al%a or e la (u>

*a )lave esta en el procedimiento 4ser,ormPActi%ate&) esto quiere decir que cuando se active el "ormulario cargara lo que tu le indiques en este caso va a introducir los datos al (ist#o/1 y Com#o#o/1 autom,ticamente que te parece. +2ora si deseas tomar in"ormacin de una celda y enviarla a un Com#o#o/ o (ist#o/ escribe el siguiente cdigo en un 4otn: Private 1ub )ommand4utton;N)licO&' Range&;aJ;).2elect +o QFile Acti%eCell RS .mpt8 Acti%eCell.1GGset&17 A).2elect (istBo/1.A (oop -nd 1ub 3tem Acti%eCell

%!jate bien primeramente muevo el rango a la celda aJ porque a2! esta el inicio de mi in"ormacin despu/s la l!nea +o QFile Acti%ecellRS .mpt8 signi"ica :a5lo mientras la celda no se encuentre vac!a la siguiente l!nea que esActi%eCell.1GGset&17 A).2elect7 signi"ica 4aja un .engln la siguiente l!nea (istBo/1.A 3tem Acti%eCell7 agrega la in"ormacin de la celda al (ist#o/1 y la l!nea (oop es parte del ciclo +o QFile7 siempre cierra el ciclo como el ,orC$e/t. Por lo tanto todos los nombres que est/n delante de aJ ser,n enviados al (ist#o/1 y cuando tope con la celda a16 que se encuentra vac!a la condicin del +o QFile parara la ejecucin de su cdigo. -sto

"unciona caminando renglones 2acia abajo pero si deseas moverte 2acia la derec2a por columnas solo cambia la l!nea Acti%eCell.1GGset& 17 A).2elect por Acti%eCell.1GGset&A7 1).2elect7 quiere decir que se mueva por columna no por rengln. Acti%eCell.1GGset&Rengln7 Columna).2elect 1i cambias el ; por otro numero se mover, el numero de veces que tu le indiques por ejemplo si quiero bajar ;C renglones de un golpe: Acti%eCell.1GGset&1A7 A).2elect 1i quiero moverme 2C columnas a la derec2a Acti%eCell.1GGset&A7 0A).2elect

1B. As Gunciona
Captulo anterior: ;2 - #rabajar con *istbox y )ombobox Captulo siguiente: ;F - .em )digo +2ora veremos como se ejecuta una macro a la 2ora de abrir un libro Primeramente inserta un Mo ulo del Men 3nsertar dentro de Visual Basic y escribe el siguiente cdigo: 1ub +utoNopen&' (oa 4ser,orm1 4ser,orm1.2FoK -nd 1ub *a magia esta en el procedimiento AutoPopen&) que permite ejecutar autom,ticamente lo que se encuentre dentro de el cuando abras un libro que contenga este cdigo en este ejemplo cuando se abre el libro se activa el "ormulario ; que programe. +s! que todo lo que agregues dentro de este procedimiento se ejecutara autom,ticamente cuando abras un libro que te parece. + continuacin veremos como ordenar una in"ormacin por orden al"ab/tica ascendente es un cdigo muy completo y bueno que te permite locali5ar los datos y ordenarlos sin pasarse un rengln en blanco. Observemos el siguiente ejemplo y aprendamos de el: 1i se "ijan en la siguiente pantalla tengo datos en una 2oja que empinan en el rengln A1A y terminan en C1M el siguiente cdigo detectara donde debe detenerse para poder ordenar los datos. -s necesario crear el cdigo para ordenar datos pero aqu! yo te lo muestro:

Programa esto en el botn; Private 1ubComman Button1PClicT&) Rem este c igo locali>a el ultimo registro por me io el rengln Range&;a1A;).2elect +o QFile Acti%eCell RS .mpt8 Acti%eCell.1GGset&17 A).2elect (oop Rem llega Fasta el a1E on e no Fa8 inGormacin 8 se regresa un rengln para ser e/acto con la siguiente lnea. Acti%eCell.1GGset&C17 A).2elect Rem este c igo locali>a la ltima columna el ltimo ato +o QFile Acti%eCell RS .mpt8 Acti%eCell.1GGset&A7 1).2elect (oop Acti%eCell.1GGset&A7 C1).2elect Rem esta lnea guar a en la %aria#le cel aacti%a la cel a e/acta on e esta el ultimo ato e la ultima columna e inGormacin7 en este caso C1M. cel aacti%a < Acti%eCell.A ress

Rem este c igo toma el rango es e A1A on e empie>a la inGormacin7 Fasta on e encontr el ultimo ato C1M7 Hue lo guar a la %aria#le cel aacti%a. 2elecciona e A1A Fasta C1M. Range&;A1A:; * cel aacti%a).2elect

Rem este c igo or ena los atos en or en ascen ente7 el c igo Gue genera o en ./cel7 as Hue si no sa#es generarlo solo copialo e aHu. 2election.2ort Ue81:<Range&;A1A;)7 1r er1:</lAscen ing7 !ea er:</l"uess7 P 1r erCustom:<17 MatcFCase:<,alse7 1rientation:</l'op'oBottom -nd 1ub +s! es como "unciona este cdigo de Macros de -xcel ordenando exactamente desde +;C 2asta donde est,n los datos "inales. 4ueno a2ora para convertir la in"ormacin a Min8scula o May8scula es muy parecido el cdigo solo obs/rvalo: Private 1ubComman Button1PClicT&) .ange&Ha;CH'.1elect 0o 62ile +ctive)ell YZ -mpty +ctive)ell.%ormula.;); I (Case&+ctive)ell' +ctive)ell.O""set&; C'.1elect *oop -nd 1ub +s! es la magia esta en (case que convierte a Min8sculas y 4case a May8sculas empie5a en +;C y 2asta que no encuentra datos deja de convertir a Min8sculas. -l siguiente %ormulario y cdigo muestra la "uer5a de cmo se puede consultar y modi"icar el dato que se encontr. .tiHueta D7 escr!bele el numero R dentro.

)rea la siguiente <nter"a5 F -tiquetas A #extbox y A 4otones )opia el siguiente cdigo: Private 1ub )ommand4utton;N)licO&' Rem si no se escri#e na a en los 'e/t#o/s a la Fora e insertar escri#e $o 'iene

<" #ext4ox; I -mpty #2en .ange&H+RH'.%ormula.;); I H(o #ieneH <" #ext4ox2 I -mpty #2en .ange&H4RH'.%ormula.;); I H(o #ieneH <" #ext4oxA I -mpty #2en .ange&H)RH'.%ormula.;); I H(o #ieneH .ange&H+RH'.1elect 1election.-ntire.o7.<nsert #ext4ox; I -mpty #ext4ox2 I -mpty #ext4oxA I -mpty #ext4ox;.1et%ocus -nd 1ub Private 1ub )ommand4utton2N)licO&' On -rror =o#o noencontro

1D. Rem C igo


Captulo anterior: ;A - +s! "unciona Captulo siguiente: ;L - =r,"icos en -xcel Rem C igo para #uscar7 8a lo conocemos )ells.%ind&62at:I#ext4ox; +"ter:I+ctive)ell *ooO<n:Ixl%ormulas *ooO+t N :IxlPart 1earc2Order:Ixl4y.o7s 1earc20irection:Ixl(ext Matc2)ase:I N %alse'.+ctivate +ctive)ell.O""set&C ;'.1elect #ext4ox2 I +ctive)ell +ctive)ell.O""set&C ;'.1elect #ext4oxA I +ctive)ell Rem la etiHueta D toma el %alor el rengln acti%o 8 permite mo iGicar la inGormacin Hue encontr7 8a Hue mo iGiHues la inGormacin presionas el #otn actuali>ar. *abelF I +ctive)ell..o7 noencontro: -nd 1ub

Private 1ub )ommand4uttonAN)licO&' Rem Vuel%e a in icar el rengln J para escri#ir en los 'e/t#o/s *abelF I HRH .ange&HaRH'.1elect #ext4ox; I -mpty #ext4ox2 I -mpty #ext4oxA I -mpty #ext4ox;.1et%ocus -nd 1ub Private 1ub #ext4ox;N)2ange&' Rem si nos amos cuenta la etiHueta D sir%e para lle%ar el rengln on e intro ucimos los atos o los mo iGicamos7 asi Hue ca a te/t#o/ Hue programemos e#e lle%ar estas lineas. .ange&H+H 9 *abelF'.%ormula.;); I #ext4ox; -nd 1ub Private 1ub #ext4ox2N)2ange&' .ange&H4H 9 *abelF'.%ormula.;); I #ext4ox2 -nd 1ub Private 1ub #ext4oxAN)2ange&' .ange&H)H 9 *abelF'.%ormula.;); I #ext4oxA -nd 1ub 4ueno amigos espero les sea de provec2o los ejemplos mostrados por lo tanto nos vemos en la prxima edicin con mas de Macros en -xcel.

16. "r=Gicos en ./cel


Captulo anterior: ;F - .em )digo Captulo siguiente: ;Q - 0i"erentes tipos de gr,"icas :oy nos toca aprender mas sobre este interesante curso de Macros en el cual trabajaremos con gr,"icos en -xcel veremos como se puede generar una gra"ica desde un cdigo generado y alterado por nosotros mismos.

1i observamos los datos que vamos a gra"icar nos damos cuenta que en la columna A se encuentran los %alores eIes &5) y en la columna B los %alores series &V) estos datos son necesario para e"ectuar una gra"ica que podr!a quedar as!

-sta gra"ica muestra las edades de L personas los nombres son los %alores eIes y la edad los %alores series a2ora veremos como se puede detectar estos datos por medio de una Macro +l gra"icar estos datos se genero el siguiente cdigo: 1ub Macro1&) Range&;A6:B1A;).2elect CFarts.A Acti%eCFart.CFart'8pe < /lColumnClustere Acti%eCFart.2et2ource+ata 2ource:<2Feets&;!oIa1;).Range&;A6:B1A;)7 9lotB8:< P/lColumns Acti%eCFart.(ocation QFere:</l(ocationAs1#Iect7 $ame:<;!oIa1; -nd 1ub *a primer l!nea indica el rango donde est,n los datos %alores eIes 8 %alores series *a segunda l!nea indica que se agrega una gra"ica *a tercera l!nea indica el tipo de gra"ica que se desea *a cuarta l!nea indica como se acomodan los datos en la gra"ica *a quinta l!nea indica donde se muestra la gra"ica si en la misma 2oja o en una sola 2oja. $ota. *os n8meros de ; al L no van en el cdigo solo los puse para poder explicar las l!neas

1M. +iGerentes tipos e gr=Gicas

Captulo anterior: ;L - =r,"icos en -xcel Captulo siguiente: ;K - =r,"ica por columna + continuacin se muestran algunos de los di"erentes tipos de gra"icas (nea B:

Acti%eCFart.CFart'8pe < /lColumnClustere

Acti%eCFart.CFart'8pe < /lBarClustere

Acti%eCFart.CFart'8pe < /l(ineMarTers

Acti%eCFart.CFart'8pe < /l9ie

Acti%eCFart.CFart'8pe < /l5V2catter

Acti%eCFart.CFart'8pe < /lArea2tacTe

Acti%eCFart.CFart'8pe < /l+ougFnut

Acti%eCFart.CFart'8pe < /lRa arMarTers

Acti%eCFart.CFart'8pe < /lC8lin erColClustere

Acti%eCFart.CFart'8pe < /lConeColClustere

Acti%eCFart.CFart'8pe < /l98rami ColClustere 1i tu agregas al "inal del cdigo principal alguna l!nea del tipo de gra"ico que te gusto ese se activara por ejemplo: 1ub Macro1&) Range&;A6:B1A;).2elect CFarts.A Acti%eCFart.CFart'8pe < /lColumnClustere Acti%eCFart.2et2ource+ata 2ource:<2Feets&;!oIa1;).Range&;A6:B1A;)7 9lotB8:< P/lColumns Acti%eCFart.(ocation QFere:</l(ocationAs1#Iect7 $ame:<;!oIa1; Acti%eCFart.CFart'8pe < /l98rami ColClustere . -nd 1ub

-ste cdigo se puede programar en un botn o cualquier otro control de Visual Basic. + continuacin se muestra como se acomodan los datos (nea D:

Acti%eCFart.2et2ource+ata 2ource:<2Feets&;!oIa1;).Range&;A6:B1A;)7 9lotB8:< P /lRoKs -n esta l!nea se muestra la gra"ica por Rengln

Acti%eCFart.2et2ource+ata 2ource:<2Feets&;!oIa1;).Range&;A6:B1A;)7 9lotB8:< P /lColumns -n esta l!nea se muestra la gra"ica por Columna

1E. "r=Gica por columna


Captulo anterior: ;Q - 0i"erentes tipos de gr,"icas Captulo siguiente: ;D - Macros en -xcel y 3isual 4asic -sta es la "orma en que se muestran los datos de lo que 2abla la lnea D. *a lnea 6 2abla de que si la gra"ica queda en la misma 2oja o simplemente toma una 2oja para ella por ejemplo:

Acti%eCFart.(ocation QFere:</l(ocationAs$eK2Feet7 $ame:<;"raGico 1; -sta l!nea indica que la gra"ica tenga su propia 2oja y que su nombre sea "raGico 1. -n este ejemplo ejecuto un cdigo con cada una de las caracter!sticas explicadas en las 6 lneas. Range&;A6:B1A;).2elect CFarts.A Acti%eCFart.CFart'8pe < /lColumnClustere Acti%eCFart.2et2ource+ata 2ource:<2Feets&;!oIa1;).Range&;A6:B1A;)7 9lotB8:< P/lColumns Acti%eCFart.(ocation QFere:</l(ocationAs1#Iect7 $ame:<;!oIa1; Acti%eCFart.CFart'8pe < /l98rami ColClustere Acti%eCFart.2et2ource+ata 2ource:<2Feets&;!oIa1;).Range&;A6:B1A;)7 9lotB8:< /lColumns Acti%eCFart.(ocation QFere:</l(ocationAs$eK2Feet7 $ame:<;"raGico 1; B. D. 6. 'ipo e "raGico Comose acomo an los atos Como se muestra la graGica7 en este caso en una sola FoIa

-labora el siguiente "ormulario con el siguiente cdigo para observar los di"erentes tipos de gr,"icos y la "orma en que se acomodan los datos:

+i#uIa os (ist#o/ 8 un Botn 8 pega el c igo entro el Gormulario. Private 1ub )ommand4utton;N)licO&' Rem este c igo genera la "raGica en la FoIa1 .ange&H+L:4;CH'.1elect )2arts.+dd +ctive)2art.)2art#ype I xl)olumn)lustered +ctive)2art.1et1ource0ata 1ource:I12eets&H:oja;H'..ange&H+L:4;CH' Plot4y:I N xl)olumns +ctive)2art.*ocation 62ere:Ixl*ocation+sObject (ame:IH:oja;H Rem agrega los iGerentes tipos e graGica al (ist#o/1 *ist4ox;.+dd<tem Hxl)olumn)lusteredH *ist4ox;.+dd<tem Hxl4ar)lusteredH *ist4ox;.+dd<tem Hxl*ineMarOersH *ist4ox;.+dd<tem HxlPieH *ist4ox;.+dd<tem HxlUT1catterH *ist4ox;.+dd<tem Hxl+rea1tacOedH *ist4ox;.+dd<tem Hxl0oug2nutH *ist4ox;.+dd<tem Hxl.adarMarOersH *ist4ox;.+dd<tem Hxl)ylinder)ol)lusteredH *ist4ox;.+dd<tem Hxl)one)ol)lusteredH *ist4ox;.+dd<tem HxlPyramid)ol)lusteredH

Rem agrega las iGerentes Gormas e acomo ar los atos al (ist#o/0 *ist4ox2.+dd<tem H.englonH *ist4ox2.+dd<tem H)olumnaH -nd 1ub Private 1ub *ist4ox;N)licO&' Rem este c igo a el tipo e graGica al ar clic en el (ist#o/1 <" *ist4ox; I Hxl)olumn)lusteredH #2en +ctive)2art.)2art#ype I xl)olumn)lustered <" *ist4ox; I Hxl4ar)lusteredH #2en +ctive)2art.)2art#ype I xl4ar)lustered <" *ist4ox; I Hxl*ineMarOersH #2en +ctive)2art.)2art#ype I xl*ineMarOers <" *ist4ox; I HxlPieH #2en +ctive)2art.)2art#ype I xlPie <" *ist4ox; I HxlUT1catterH #2en +ctive)2art.)2art#ype I xlUT1catter <" *ist4ox; I Hxl+rea1tacOedH #2en +ctive)2art.)2art#ype I xl+rea1tacOed <" *ist4ox; I Hxl0oug2nutH #2en +ctive)2art.)2art#ype I xl0oug2nut <" *ist4ox; I Hxl.adarMarOersH #2en +ctive)2art.)2art#ype I xl.adarMarOers <" *ist4ox; I Hxl)ylinder)ol)lusteredH #2en +ctive)2art.)2art#ype I xl)ylinder)ol)lustered <" *ist4ox; I Hxl)one)ol)lusteredH #2en +ctive)2art.)2art#ype I xl)one)ol)lustered <" *ist4ox; I HxlPyramid)ol)lusteredH #2en +ctive)2art.)2art#ype I xlPyramid)ol)lustered -nd 1ub Private 1ub *ist4ox2N)licO&' <" *ist4ox2 I H.englonH #2en +ctive)2art.1et1ource0ata 1ource:I12eets&H:oja;H'..ange&H+L:4;CH' Plot4y:I N xl.o7s -nd <" <" *ist4ox2 I H)olumnaH #2en +ctive)2art.1et1ource0ata 1ource:I12eets&H:oja;H'..ange&H+L:4;CH' Plot4y:I N xl)olumns

-nd <" -nd 1ub

+ntes de ejecutar esta Macro llenas los datos anteriores en la 2oja; de ./cel

1@. Macros en ./cel 8 Visual Basic


Captulo anterior: ;K - =r,"ica por columna Captulo siguiente: ;R - Programar el botn consulta -stamos listos para ver mas sobre este interesante curso en este caso veremos como se pueden arc2ivar los datos de una 2oja en un arc2ivo aparte. +prenderemos a trabajar con arcFi%os secunciales en Visual Basic. *os arcFi%os secunciales son aquellos que al registrar sus datos llevan una secuencia por ejemplo si registro L nombres llevaran un orden del ; al L en cambio existen tambi/n los arcFi%os aleatorios pero ellos no respetan la secuencia por ejemplo los L nombres podr!an quedar en cualquier posicin del ;CC en adelante del ACC en adelante del ;C en adelante de donde quieras ponerlos tu indicas en donde quieres que queden los L nombres pueden quedar 2asta separados y no respetar una secuencia. -l problema de los arcFi%os secunciales es que si introduces algunos s!mbolos en la captura pueden alterar el arc2ivo y no "uncionar correctamente por eso se recomienda "iltrar los datos con alg8n cdigo o simplemente no capturar s!mbolos.

-n esta 2oja podemos observar L nombres la intencin ser, arc2ivarlos aparte y 2acerlos desparecer de la 2oja para despu/s volverlos aparecer en la 2oja. + esto se le llamara .egistro de datos y )onsulta de datos.

<remos a Visual Basic con Alt*,11 y <nsertaremos un 4ser,orm7 en el cual dibujaremos dos botones uno con el nombre de Registro y Otro con el (ombre de Consulta. +2ora a programar el botn .egistro para poder arc2ivar los nombres. Private 1ub )ommand4utton;N)licO&' .em se translada a la celda aD .ange&HaDH'.1elect .em si no 2ay ning8n dato en aD que no arc2ive de nuevo <" +ctive)ell I -mpty #2en =o#o salte .em abre un arc2ivo en la unidad c con el nombre de datos.txt .em en "orma de a$adir #emporal &Output' en el ,rea de almacenamiento J; Open Hc:Pdatos.txtH %or Output +s ; .em activa una etiqueta para poder regresar regresa: .em escribe el dato de la celda activa en el arc2ivo 6rite J; +ctive)ell .em borra el dato de la celda +ctive)ell I -mpty .em baja un rengln para el siguiente nombre +ctive)ell.O""set&; C'.1elect .em si la celda esta vac!a que no regrese ya <" +ctive)ell I -mpty #2en =o#o salte .em regresa a escribir el siguiente nombre en el arc2ivo =o#o regresa: salte:

.em se acabo .em cierra el arc2ivo )lose J; -nd 1ub *os datos quedaran arc2ivados en la unidad y ser,n devueltos cuando presiones el botn consulta. ?ue a continuacin se muestra:

1J. 9rogramar el #otn consulta


Captulo anterior: ;D - Macros en -xcel y 3isual 4asic Captulo siguiente: 2C - -jemplo +2ora a programar el botn consulta Private 1ub )ommand4utton2N)licO&' .em se translada a la celda aD .ange&HaDH'.1elect .em abre un arc2ivo en la unidad c con el nombre de datos.txt .em en "orma de *eer &input' en el ,rea de almacenamiento J; Open Hc:Pdatos.txtH %or <nput +s ; .em esto signi"ica 2a5lo mientras no sea "in del arc2ivo .em esto quiere decir que no deje de leer los datos .em 2asta que no se llegue al ultimo de ellos 0o 62ile (ot -O%&;' .em lee un dato <nput J; nombre .em lo escribe en la celda +ctive)ell.%ormula.;); I nombre .em baja un rengln para el siguiente nombre +ctive)ell.O""set&; C'.1elect .em activa el ciclo 0o 62ile-que regrese 2asta .em que se cumpla la condicin

*oop .em cierra el arc2ivo )lose J; -nd 1ub ?ue te parece arc2ivar los datos aparte sin que nadie pueda observarlos esta es la magia de los arc2ivos secu/nciales. -ste ejemplo viene indexado en un arc2ivo con el nombre de Macros V3. -l siguiente cdigo arc2iva el nombre la direccin y el tel/"ono en el arc2ivo crea un "ormulario igual con dos botones. Private 1ub )ommand4utton;N)licO&' .em se traslada a la celda aD .ange&HaDH'.1elect .em si no 2ay ning8n dato en aD que no arc2ive de nuevo <" +ctive)ell I -mpty #2en =o#o salte .em abre un arc2ivo en la unidad c con el nombre de datos.txt .em en "orma de a$adir #emporal&output' en el ,rea de almacenamiento J; Open Hc:Pdatos.txtH %or Output +s ; .em activa una etiqueta para poder regresar regresa: .em captura el nombre en una variable nombre I +ctive)ell .em borra el dato de la celda +ctive)ell I -mpty .em se mueve una columna a la derec2a +ctive)ell.O""set&C ;'.1elect .em captura la direccion en una variable direccion I +ctive)ell .em borra el dato de la celda +ctive)ell I -mpty

.em se mueve una columna a la derec2a +ctive)ell.O""set&C ;'.1elect .em captura el tele"ono en una variable tele"ono I +ctive)ell .em borra el dato de la celda +ctive)ell I -mpty .em escribe los datos nombre direccion y tele"ono en el arc2ivo 6rite J; nombre direccion tele"ono .em baja un rengln para el siguiente nombre +ctive)ell.O""set&; C'.1elect .em retrocede dos columnas +ctive)ell.O""set&C -2'.1elect .em si la celda esta vac!a que no regrese ya <" +ctive)ell I -mpty #2en =o#o salte .em regresa a escribir el siguiente nombre en el arc2ivo =o#o regresa: salte: .em se acabo .em cierra el arc2ivo )lose J; -nd 1ub Private 1ub )ommand4utton2N)licO&' .em se translada a la celda aD .ange&HaDH'.1elect .em abre un arc2ivo en la unidad c con el nombre de datos.txt .em en "orma de *eer &input' en el ,rea de almacenamiento J; Open Hc:Pdatos.txtH %or <nput +s ;

.em esto signi"ica 2a5lo mientras no sea "in del arc2ivo .em esto quiere decir que no deje de leer los datos .em 2asta que no se llegue al ultimo de ellos 0o 62ile (ot -O%&;' .em lee los datos <nput J; nombre direccion tele"ono .em escribe en la celda el nombre +ctive)ell.%ormula.;); I nombre .em se mueve una columna a la derec2a +ctive)ell.O""set&C ;'.1elect .em escribe en la celda la direccion +ctive)ell.%ormula.;); I direccion .em se mueve una columna a la derec2a +ctive)ell.O""set&C ;'.1elect .em escribe en la celda el tele"ono +ctive)ell.%ormula.;); I tele"ono .em baja un rengln para el siguiente nombre +ctive)ell.O""set&; C'.1elect .em retrocede dos columnas +ctive)ell.O""set&C -2'.1elect .em activa el ciclo 0o 62ile-que regrese 2asta .em que se cumpla la condicin *oop .em cierra el arc2ivo )lose J; -nd 1ub

0A. .Iemplo

Captulo anterior: ;R - Programar el botn consulta #ambi/n se puede consultar sin necesidad de leer los datos en la 2oja esto quiere decir leyendo directo del arc2ivo y trayendo los datos al "ormulario en el siguiente ejemplo se programa el botn consulta en "ormulario.

0ibuja el siguiente "ormulario los dos primeros botones es el mismo cdigo anterior pero el tercer botn incluye el siguiente cdigo: Private 1ub )ommand4uttonAN)licO&' Open Hc:Pdatos.txtH %or <nput +s ; 0o 62ile (ot -O%&;' <nput J; nombre direccion tele"ono <" nombre I #ext4ox; #2en #ext4ox2 I direccion #ext4oxA I tele"ono -nd <" *oop )lose J; -nd 1ub 1olo corra el "ormulario y escriba el nombre que desea consultar y presione el tercer botn. Usted podr, consultar cualquiera de los nombres que se encuentren dentro del arc2ivo sin necesidad de que existan en la 2oja claro esta que primero es necesario presionar el botn registro para arc2ivarlos pero despu/s se pueden manipular. 4ueno espero que sea de su agrado esta parte y que practiquen muc2o los arc2ivos secuenciales.

You might also like