Está en la página 1de 20

Trucos en Excel

Comentarios a Adolfo Aparicio


(quita las maysculas de la direccin de correo)

" ) +

Para rellenar una Base de Datos podemos pasar de un dato a otro de la misma fila con <TAB> y si despus de introducir el ltimo dato Base de !atos de la fila pulsamos <INTRO> el cursor se posicionar en el primer dato de la siguiente fila Para separar un sector circular en un grfico (rficos se pulsa con el rat#n so$re l y luego se separa Tam$in se puede cam$iar el color de un sector pulsando so$re l con el $ot#n derec%o del rat#n y eligiendo &'ormato de punto de datos & Para incluir una nueva serie de datos en un grfico (rficos se copia el rango de datos nue*o y se pega so$re el grfico Para seleccionar una tabla completa $asta con posicionarse en cual,uier celda de la ta$la y pulsar -.TR/012 34i usa el asterisco del teclado Teclado general no ol*ide ,ue se consigue pulsando tam$in la tecla -5A674.7/A408 Para poder ver las frmulas de una hoja puede %acer lo siguiente: ;erramientas< Opciones< pesta=a >er< y en Opciones de >entana marcar Teclado '#rmulas ?ero tam$in e@iste un mtodo de Teclado A$re*iado ,ue consiste en pulsar -A/T01A y si se *uel*en a pulsar estas dos teclas se muestra la %oBa como %a$itualmente la *emos Auto_Open() Auto_!lose() 5acros D@iste una macro de autoarran,ue ,ue se eBecuta cuando se a$re el li$ro 4e llama autoEopen38 6 e@iste otra ,ue se eBecuta Busto antes de cerrar el li$ro ,ue se llama autoEclose38 4u$ AutoEOpen38 !im %ora As !ou$le !im saludo As 4tring %ora F 3NoG H Int3NoG88 2 "+ 4elect .ase %ora .ase C To 1+ saludo F IBuenos dJasI .ase 1+ To "1 saludo F IBuenas tardesI

.ase Dlse saludo F IBuenas noc%esI Dnd 4elect 5sgBo@ saludo K I AmoI Dnd 4u$ D,ui*alente a autoEopen e@iste otra macro "or#boo#_Open< pero sta %a de ser guardada no en un m#dulo normal< sino en T%isLorM$ooM ?rue$e lo siguiente: Dl siguiente procedimiento permite a$rir automticamente el li$ro Balance @ls al a$rir el li$ro Informe @ls Dl procedimiento %a de estar en T%isLorM$ooM del li$ro Informe @ls 4u$ LorM$ooMEOpen38 &Apertura de li$ro Balance LorM$ooMs Open 'ilename:FI.:N.onta$ilidadNBalance @lsI &Acti*aci#n del li$ro Informe LindoGs3IInforme @lsI8 Acti*ate Dnd 4u$ Personal$%ls ?odemos crear una macro para ,ue este disponi$le en todas las %oBas de clculo Dsto se %ace con el li$ro ?DR4ONA/ P/4 ?ersonal @ls es un /i$ro ,ue se carga cada *eQ ,ue se inicia D@cel< pero no esta *isi$le ya ,ue tiene el atri$uto de Dscondido 3;idden8< por lo ,ue si necesitamos modificarlo lo de$emos %acer a tra*s del comando I5ostrarI del men I>entanaI Dn caso ,ue no e@ista lo podemos crear con un li$ro de O tra$aBo nue*o< sal*arlo con este nom$re y deBarlo en la carpeta IInicioP/I 3P/4tart8< ,ue se encuentra ?ersonaliQaci#n en la carpeta IOfficeI del directorio donde esta instalado 54Office .ada *eQ ,ue deBamos de tra$aBar con este arc%i*o< lo de$emos sal*ar y luego acti*ar el comando IOcultarI del men I>entanaI< para ,ue no se *ea cuando iniciamos la aplicaci#n /a ruta de mi fic%ero es: .:R!ocuments and 4ettingsRAdolfoR!atos de programaR5icrosoftRD@celRP/4TARTR -?DR4ONA/ P/40;oBa1 S &aludo al arrancar 5acros .rear un li$ro ?ersonal @ls como se %a indicado anteriormente con la macro de autoarran,ue siguiente: 4u$ AutoEopen38 5sgBo@ 3ITue tengas un $uen dJaI8 Dnd 4u$

Dsta macro creada en el li$ro ?ersonal @ls %ace ,ue al iniciar D@cel nos salga un mensaBe saludndonos 'ombrar (oja desde una celda Dsta macro permite asignar el nom$re ,ue pongamos en la celda A1 como nom$re de la ;oBa actual 5acros 4u$ Nom$re;oBa38 Acti*e4%eet Name F Range3IA1I8 >alue Dnd 4u$ Proteccin de una hoja /as celdas por defecto *ienen $lo,ueadas 4i deseamos des$lo,uear algunas de ellas de$emos %acer lo siguiente: 'ormato< .elda< pesta=a ?roteger< ,uitar la casilla de *erificaci#n ,ue esta puesta por defecto en &Blo,ueada& 4i marcamos &Oculta& no se *er el contenido de la celda en la $arra de f#rmulas Dsto 1V se %ace cuando no se desea ,ue alguien *ea la f#rmula de una celda !espus se de$e proteger la %oBa ?ersonaliQaci#n con: ;erramientas< ?roteger< ?roteger %oBa 4e le pueden permitir ms o menos acciones al usuario 4i no le permitimos seleccionar las celdas $lo,ueadas y des$lo,ueadas no podr posicionarse con el cursor so$re ellas 4i nicamente le deBamos seleccionar las des$lo,ueadas nos encontraremos con algo parecido a un formulario Propiedad )nable&election ?ara reforQar el $lo,ueo del paso anterior podemos %acer lo siguiente: Ir al Dditor de >isual Basic Dn el D@plorador de proyectos ir a la %oBa ,ue ,ueramos proteger Dn la >entana de propiedades $uscar la propiedad Dna$le4election y ponerle el *alor 1 .errar el editor< 11 *ol*er a D@cel y gra$ar la plantilla ?ersonaliQaci#n .on la do$le opci#n 3protecci#n de %oBa y la propiedad Dna$le4election8 ser imposi$le seleccionar una celda< y por lo tanto copiar o modificar cual,uier *alor Dste procedimiento no funciona en D@cel "VVV y en las *ersiones anteriores< por,ue la propiedad Dna$le4election no conser*a el *alor modificado al cerrar la plantilla Aun,ue lo cierto es ,ue pocos usuarios conocen la citada propiedad 1" )nable&election * %l+nloc#ed!ells ?ersonaliQaci#n ?ara paliar el incon*eniente citado anteriormente para las *ersiones de D@cel "VVV y anteriores se puede %acer lo siguiente: Ir al Dditor de >isual Basic Dn el D@plorador de proyectos ir a la %oBa ,ue ,ueramos proteger Dn la >entana de propiedades $uscar la propiedad Dna$le4election y ponerle el *alor 1 .errar el editor< *ol*er a D@cel y gra$ar la plantilla .on la do$le opci#n 3protecci#n de %oBa y la propiedad Dna$le4election8 ser imposi$le seleccionar una celda< y por lo tanto copiar o modificar cual,uier *alor Dste procedimiento no funciona en D@cel "VVV y en las *ersiones anteriores< por,ue la propiedad Dna$le4election no conser*a el *alor modificado al cerrar la plantilla Dse procedimiento se puede realiQar tam$in mediante una macro: ?ri*ate 4u$ LorM$ooMEOpen38 U

LorMs%eets3I;oBa1I8 Dna$le4election F @l7nlocMed.ells Dnd 4u$ Dl *alor por defecto es xlNoRestrictions Opciones de Ordenacin Al ordenar un rango de datos podemos elegir en Opciones ,ue la ordenaci#n sea Normal 3alfa$tica8 o 1) segn una de las /istas ?ersonaliQadas de D@cel Base de !atos
?uede distinguir maysculas de minsculas ?uede ordenar en *ertical 3,ue es lo normal8 o en %oriQontal

!riterios utili,ados para filtrar una base de datos 7n criterio est formado al menos por dos celdas /a primera es un nom$re de campo y la segunda ,ue estar de$aBo es el criterio propiamente dic%o
4alario >F)V VVV

.uando usamos *arios criterios estos se relacionan entre si mediante concatenadores l#gicos 6 u O ?or eBemplo< supongamos ,ue deseamos filtrar de una $ase de datos los registros correspondientes a tra$aBadores ,ue cumplan ,ue su salario esta comprendido entre )V VVV y +V VVV euros< o $ien su edad es de )V a=os y se llaman 5aria Dn ese caso el criterio esta formado por mltiples celdas< de forma ,ue los criterios ,ue estan en la misma fila se %an de cumplir am$os 3operador 68< y si estn en fila distinta se %an de cumplir unos u otros 3operador O8 1+
A 1 2 3 4 5 6 7 ! 10 11 12 13 14 B $ Base de Datos Nombre Edad Ana 30 Jon 25 Jose 2! Julia 34 #uis 34 "aria 30 D Salario 21.746 37.00 3!.667 40.3!0 47.1 6 2 .741 E F ( ) Base de Datos Filtrada Nombre Edad Salario Jon 25 37.00 Jose 2! 3!.667 "aria 30 2 .741 * J +

Base de !atos

$riterios Salario Edad Salario Nombre %&30000 '40000 30 "aria


)o,a1

-arias l.neas en una celda 19 ?ara escri$ir *arias lJneas en la misma celda puedes escri$ir lo ,ue ,uieras y para a$rir un espacio %acia a$aBo en la misma ?ersonaliQaci#n
celda pulsar Alt1Dnter

/over celdas entre hojas 1C 4eleccione el rango a mo*er /l*elo %asta la pesta=a de la %oBa de destino< presione A/T y mantenga presionado %asta ,ue ?ersonaliQaci#n
deBe el rango en la parte de la %oBa de destino ,ue desee

1O

1S

1U

"V

0nsertar filas o columnas rpidamente Dn una %oBa de D@cel ,ue ya tengas rellena< prue$a a %acer esto: >ete al principio de lo ,ue tengas escrito ?on el rat#n so$re el control de relleno 3es el puntito negro ,ue tiene el cursor a$aBo a la derec%a8 ?ersonaliQaci#n 4a$es ,ue ests encima del control de relleno< por,ue la cruQ $lanca ,ue es normalmente el rat#n se cam$ia a color negro A%ora pulsa la tecla de maysculas 3no la de $lo, mays8 y sin soltarla pulsa el $ot#n iQ,uierdo del rat#n y arrstralo %acia a$aBo o %acia la derec%a< *ers ,ue se insertan filas o columnas !opiar en )%cel 1P arrastrando con !trl 4e puede copiar una celda arrastrando con .trl desde alguno de los + lados del $orde de la celda acti*a ?ersonaliQaci#n 4i no se emplea el .trl la celda no se copia< se mue*e )dicin2 3ellenar2 &eries ?oner el primer nmero y arrastrar el controlador de relleno con la tecla .trl pulsada Dsto nos dar una ?ersonaliQaci#n serie con incrementos unitarios Algunas teclas de navegacin .trl 1 Intro Ir a A1 'in H 'lec%a a$aBo Wltima celda de un rango .trl 1 'lec%a a$aBo Wltima celda de un rango .trl 1 'in .elda inferior derec%a al rea acti*a Alt 1 A*?g ?gina a la derec%a Teclado 4%ift 1 Barra de desplaQamiento *ertical u ?ermite desplaQamientos ms rpidos %oriQontal .trl 1 A*?g A*anQa entre las %oBas de un li$ro
?ara ir al e@tremo superior de un $lo,ue de datos< %aga do$le clic en el e@tremo superior de la celda seleccionada .on los dems $lo,ues puede ir a los dems e@tremos del $lo,ue 6 si lo %ace mientras presiona la tecla 4%ift podr seleccionar rangos

Algunas abreviaturas de teclado .trl 1 . "1 .trl 1 > .trl 1 P .trl 1 X .opiar ?egar .ortar !es%acer Teclado

""

Al pulsar 0ntro se despla,a el cursor hacia abajo2 pero se puede cambiar


?uede cam$iarlo en ;erramientas< Opciones< 5odificar< 5o*er selecci#n despus de DNTRAR

Teclado

!lculo automtico en la barra de estado Al seleccionar un rango de nmeros *emos su suma en la $arra de estado 3a$aBo8 ?ulsando so$re ella con el $ot#n derec%o del rat#n podemos cam$iar la suma por un promedio< el m@imo< el mJnimo o contar los elementos seleccionados en el rango

")

?ersonaliQaci#n

<YHH-if Y *ml0HH><YHH-endif0HH> 455


?ulsando '11 so$re una serie de datos se construye un grfico completo y de forma automtica

"+

(rficos

Proteger celdas .on 'ormato< .elda< ?rotege< ,uitar la casilla de *erificaci#n en Blo,ueada se consigue ,ue en estas "9 celdas se pueda escri$ir despus de eBecutar ;erramientas< ?roteger< ?roteger %oBa ?ersonaliQaci#n .on TAB se puede saltar de una a otra celda de las des$lo,ueadas 6 con 5aysculas 1 TAB se salta %acia atrs "C Ocultar la formula en una celda ?ersonaliQaci#n
.on 'ormato< .elda< ?roteger< Oculta se marcan las celdas cuyas f#rmulas o contenido *isto en la lJnea de edici#n se desee

ocultar !espus se %a de proteger la %oBa< con ;erramientas< ?roteger< ?roteger %oBa

!opiar una hoja ?ara copiar una %oBa completa dispone de dos sistemas: Dl primero y ms fcil es se=alar con el rat#n la pesta=a de la %oBa a copiar< pulsar .trl y sin soltar arrastrar la pesta=a con el rat#n Al soltar se %a$r duplicado completamente la %oBa 4i la %oBa a copiar "O ?ersonaliQaci#n se llama$a &;oBa 1&< la nue*a %oBa se llamar &;oBa 1 3"8&
Ds segundo mtodo consiste en situar el rat#n en el cuadradito ,ue ,ueda como intersecci#n del indicador de filas y columnas Dsto selecciona la %oBa completamente 4eguidamente se copia al portapapeles< por eBemplo con .trl 1 . 4e inserta una %oBa nue*a y pulsando so$re ella en el citado cuadradito se pega el contenido del portapapeles< por eBemplo con .trl 1 >

0nsertar !omentarios "S 4e pueden insertar comentarios en las celdas ?ara ello< pulse con el $ot#n derec%o del rat#n y eliBa &Insertar .omentario& 6e%to con diversos formatos en una misma celda 4e pueden dar distintos formatos a los caracteres o pala$ras de una misma celda ?or eBemplo: puede poner en una celda la siguiente e@presi#n: >olumen 3m)8 >ase el distinto color de la fuente y el ) como superJndice "U
-olu.en /.30 ?uede *erlos completamente< solo la indicaci#n de ,ue la celta tiene un comentario< o no *erlos en a$soluto segn eliBa una opci#n u otra en ;erramientas< Opciones< >er< .omentarios

?ersonaliQaci#n

?ersonaliQaci#n

Dsto se consigue se=alando en la $arra de f#rmulas el carcter o caracteres ,ue se ,uieren cam$iar y aplicndoles el formato deseado 6rabajar simultneamente en varias hojas Antes de escri$ir te@to< formulas< dar formato< etc en *arias %oBas simultneamente %a de se=alarlas primero 4i son un conBunto de %oBas correlati*as< se=ale la primera %aciendo clic con el rat#n so$re la pesta=a )V ,ue indica el nom$re de la primera y %aga 5aysculas 1 clic en la ltima ?ersonaliQaci#n 4i las %oBas no son consecuti*as selecciones la primera con un clic y las restantes con un .trl 1 clic en cada una
.uando %aya terminado de introducir la informaci#n y formatos comunes %aga clic en cual,uier pesta=a y asJ se desacti*ar el modo de tra$aBo conBunto

)scribir en varias celdas simultneamente )1 4e=ale las celdas donde ,uiere escri$ir una misma e@presi#n Incluso si son de rangos separados Dscri$a dic%a e@presi#n 6 ?ersonaliQaci#n
*alide su introducci#n con .trl 1 Intro

)" -er todas las frmulas de una hoja 4e consigue pulsando Alt 1 A 3esto es< la tecla Alt y simultneamente la tecla de 1A ,ue est a la

?ersonaliQaci#n

iQ,uierda del nmero 18 ?ara *ol*er a la situaci#n anterior *ol*er a pulsar Tam$in se puede conseguir mediante: ;erramientas< Opciones< >er< '#rmulas Borrar .on el comando Ddici#n< Borrar se puede elegir entre Todo< 'ormatos< .ontenido 34upr8 o )) .omentarios ?ersonaliQaci#n ?ara $orrar un rango primero seleccione el rango y luego presione 4%ift mientras arrastra con el rat#n el indicador de relleno %acia el e@tremo superior iQ,uierdo del rango 4i no presiona 4%ift conseguir $orrar el contenido pero no los formatos 7a fuente por defecto en )%cel es la Arial 58 pero se puede cambiar 4e puede cam$iar para todos los li$ros nue*os mediante: ;erramientas< Opciones< (eneral y elegir la )+ 'uente Dstndar y el tama=o ?ersonaliQaci#n ?ero tam$in se puede cam$iar la fuente s#lo en el li$ro acti*o de la siguiente forma Acti*ar el li$ro en el ,ue se ,uiere cam$iar la fuente por defecto DBecute 'ormato< Dstilo y dentro del formato de estilo Normal elegir 5odificar< 'uente y proceder a cam$iar la fuente 'inalmente Aceptar Plantillas 9$%lt /as plantillas permiten predefinir formatos< estilos< te@tos< f#rmulas< $arras de %erramientas personaliQadas e incluso macros< ,ue se utiliQarn en todos los nue*os li$ros a$iertos 3si la plantilla se llama li$ro @lt8 u %oBas nue*as insertadas 3si la plantilla se llama %oBa @lt8 Tam$in pueden e@istir otras plantillas para diferentes usos< por eBemplo< para predefinir una factura< cierto informe mensual< un $alance< etc /a plantilla de li$ro predeterminada 3li$ro @lt8 y la plantilla de %oBa predeterminada 3%oBa @lt8 se %an de )9 gra$ar como plantilla en el directorio INI.IAR ,ue para la *ersi#n P? suele estar en: ?ersonaliQaci#n
.:R!ocuments and 4ettingsRnom$reusuarioR!atos de programaR5icrosoftRD@celRINI.IAR

o $ien en:
.:R!ocuments and 4ettingsRnom$reusuarioR!atos de programaR5icrosoftRD@celRP/4TART

Tanto las plantillas ,ue tenga en la carpeta de inicio predeterminada de D@cel como las ,ue %aya definido en la carpeta de plantillas 3.:R!ocuments and 4ettingsRnom$reusuarioR!atos de programaR5icrosoftR?lantillas8 las tendr disponi$les cuando %aga Arc%i*o< Nue*o y salga el ?anel de Tareas y en el eliBa ?lantillas (enerales )C Puede trabajar con )stilos ?ersonaliQaci#n Dn 'ormato< Dstilo puede modificar el estilo normal o crear nue*os estilos< pero s#lo estarn disponi$les en el /i$ro Acti*o 4i se desea ,ue los estilos estn disponi$les de forma permanente sigua los siguientes pasos: A$ra el li$ro cuyos Dstilos ,uiere guardar permanentemente A$ra un li$ro nue*o y com$ine los Dstilos en ste DBecute Arc%i*o< (uardar como< eliBa como tipo ?lantilla 32 @lt8 Dscri$a como nom$re de fic%ero /i$ro @lt o ;oBa @lt y gurdelo en la carpeta de inicio de D@cel 3.:R!ocuments and 4ettingsRnom$reusuarioR!atos de programaR5icrosoftRD@celRINI.IAR8 !e esta forma cada *eQ ,ue a$ra un li$ro u

%oBa nue*os se dispondr de estos Dstilos ?uede con*ertir el estilo de una celda en un tipo de estilo personaliQado 4itese en la celda patr#n y eliBa 'ormato< Dstilo y cam$ie el nom$re por uno nue*o de su elecci#n ?uede transferir los estilos de un li$ro a otro mediante 'ormato< Dstilo< .om$inar ?ara ello a$ra los dos fic%eros 3o ms8 y eBecute los pasos se=alados desde el fic%ero %acia el ,ue ,uiere lle*ar los nue*os estilos 7ibros :ue se abren al iniciar )%cel /os li$ros ,ue colo,ue en la carpeta de inicio de D@cel:
.:R!ocuments and 4ettingsRnom$reusuarioR!atos de programaR5icrosoftRD@celRINI.IAR

)O o $ien en

.:R!ocuments and 4ettingsRnom$reusuarioR!atos de programaR5icrosoftRD@celRP/4TART

?ersonaliQaci#n

4e a$rirn al iniciar D@cel Tam$in puede definir una carpeta de inicio de D@cel en ;erramientas< Opciones< (eneral< IAl inicio< a$rir todos los li$ros en:I 7a funcin *!)7DA /a funci#n .D/!A es la tJpica funci#n ,ue sir*e para *arias cosas segn ,ue argumentos se utilicen 4i se usa con Inom$rearc%i*oI )S F.D/!A3Inom$rearc%i*oI8 'unci#n proporciona el nom$re y ruta del arc%i*o 3siempre ,ue est gra$ado8 Dn la ayuda %ay un error y en lugar de poner Inom$rearc%i*oI pone Iarc%i*oI Otro argumento interesante es IcontenidoI F.D/!A3IcontenidoIZA)8 ?roporciona el contenido de la celda A) )%portar un mdulo
1 ?ase al editor de *isual $asic y acti*e el m#dulo a e@portar

)U " 4eleccione Archivo; )%portar archivo Aparece un cuadro de dilogo

) Dn cuadro de edici#n 'ombre de Archivo< teclee el nom$re para el arc%i*o donde se guardar el m#dulo< por eBemplo I(eneral BasI< o$ser*e ,ue BA4 es la e@tensi#n de estos arc%i*os + ?ulse so$re el $ot#n <uardar

5acros

0mportar un mdulo +V
1 Acti*e el editor >isual Basic " 4eleccione Archivo; 0mportar Archivo Aparece un cuadro de dilogo ) 4eleccione en la lista Buscar en= la carpeta donde tiene u$icado el arc%i*o a importar + 7na *eQ localiQada la carpeta< seleccione el arc%i*o a importar 3(eneral Bas en el eBemplo8 y pulse so$re Abrir

5acros

7a clusula Private +1
?uede anteponer la clusula pri*ate a todos los procedimientos y funciones ,ue sean llamados s#lo desde el mismo m#dulo< es una forma de a%orrar memoria y %acer ,ue el programa corra un poco ms rpido 4i necesita llamar un procedimiento o funci#n desde otro m#dulo< nunca de$e precederlo por la clusula pri*ate< recuerde ,ue esta clusula restringe el m$ito de utiliQaci#n de un procedimiento a su propio m#dulo

5acros

+"

0nspeccin rpida de variables .uando eBecuta un programa paso a paso< si sita el puntero de rat#n so$re una *aria$le< se muestra el *alor de la misma /odificar el valor de una variable en tiempo de ejecucin
A *eces resulta interesante cam$iar el *alor de alguna *aria$le cuando se est eBecutando el programa< ?ara ello agregue a la *entana de inspecci#n la *aria$le ,ue desee cam$iar< cam$ie su *alor so$re la propia *entana de inspecci#n y contine la eBecuci#n del programa

5acros

+) para *er ,ue ocurre si coge determinados *alores< para terminar un $ucle< etc

5acros

-entana 0nmediato ++ ?uedes inspeccionar *aria$les desde esta *entana anteponiendo la pala$ra print antes de la *aria$le< o 5acros el signo > Debug$Print Dsta e@presi#n permite efectuar la depuraci#n del programa de forma ms c#moda 4e introduce en un programa antecediendo a una *aria$le ,ue se desea compro$ar en la *entana Inmediato !e esta forma conseguiremos *er todos los *alores ,ue toma la *aria$le cada *eQ ,ue el programa pasa por este comando 4e *en en la -entana 0nmediato -.tr1(0 DBemplo: 4u$ !osEaElaEdieQ38 +9 !im i As Integer 5acros !im t As Integer tF1 'or i F 1 To 1V tFt2" !e$ug ?rint I!os a la I K i K I F I K t Ne@t 5sgBo@ t Dnd 4u$ !espus de efectuada la depuraci#n se ,uita la lJnea ,ue contiene el comando !e$ug ?rint Propiedad 7ist4ill3ange del !omboBo% +C .on esta propiedad de$eremos definir los elementos ,ue de$e mostrar la lista< de$e especificarse el 5acros rango ,ue contiene los elementos a mostrar< el rango de$e ser una columna 3o dos < o tres< etc 8 +O Propiedad 7in?ed!ell del !omboBo% 5acros Dn esta propiedad de$e especificar en ,ue celda de$e copiarse el elemento seleccionado de la lista .uidado con esta propiedad< tenga en cuenta ,ue los elementos de la lista son tratados como datos de tipo 4tring aun,ue contenga nmeros o fec%as< por lo ,ue en estos casos< a *eces ser necesario aplicar funciones de con*ersi#n de datos antes ,ue el dato se copie en la %oBa ?or eBemplo< si alguna *eQ

construye una lista con nmeros *er ,ue el dato seleccionado se alinea a la derec%a< si son fec%as< no se muestra con el formato correspondiente Propiedad 7ist0nde% del !omboBo% 5ediante esta propiedad podremos sa$er ,ue elemento de la lista es el seleccionado por su nmero de orden Ds decir< si est seleccionado el primero< /istInde@ *aldr V< si est seleccionado el segundo +S *aldr 5acros 1< etc 4i no %ay ningn elemento seleccionado *aldr H1 Tenga en cuenta ,ue esta propiedad s#lo est disponi$le en tiempo de eBecuci#n< es decir la podremos leer mientras est funcionando el programa< no se puede esta$lecer en modo dise=o< o$ser*e ,ue no aparece en la *entana propiedades del cuadro com$inado 7a funcin *6)16O Dsta funci#n permite con*ertir un *alor numrico en un te@to 4u funci#n contraria es *-A7O3 Al escri$ir un nmero en una celda ,ueda alineado a la derec%a< si se escri$e como te@to 3anteponindole una comilla simple8 ,uedar alineado a la iQ,uierda DBemplo: &9+ /a funci#n TDPTO tiene dos argumentos ,ue segn la ayuda son: F6)16O3valorZformato8 +U *alor: es el nmero ,ue ,ueremos con*ertir a te@to 'unci#n formato: es el formato ,ue ,ueremos darle Ds un argumento optati*o ?ero la ayuda no se corresponde con la realidad de la funci#n< ya ,ue en la prctica esta funci#n tiene los argumentos cam$iados de orden ?rue$e FTDPTO3ZI+)I8 ?ero si prue$a FTDPTO3I+)I8 o$tendr un error !uriosidades de alguna funciones con valor propio Algunos nom$res de funci#n tienen *alor propio si se escri$en un una celda y sin argumentos O al menos eso es lo ,ue %e podido compro$ar en la *ersi#n P? ?onga en una celda cual,uiera 1?RD.IO y al pulsar intro *er ,ue aparece un *alor A mi me da H1UC9CSCO1+ /as funciones ,ue %e *isto ,ue tienen *alor propio son las siguientes: 9V &A"32T*5.#*6 147737!140
&12E$*3 41 656!6714

'unci#n

&$7136.D*A8 417 02!673 &D72A$*36 415254!13 0 &-6A.63.1E2 426 7460!! &D*A8.#AB 270 1416

y muc%as ms ?or lo ,ue *eo< son las ,ue aparece al ampliar las funciones al instalar las complementarias< con (erramientas< !omplementos< (erramientas para Anlisis 91 !ambiar el nombre de un /ludo

5acros

Al insertar m#dulos en el Dditor de >isual Basic< se utiliQan los nom$res: 5#dulo 1< 5#dulo "< etc ?odemos cam$iar el nom$re el un m#dulo en sus propiedades 3'+8 /a nica propiedad de un 5#dulo es &name& 'ombre de usuario= +ser'ame >amos a crear una funci#n ,ue proporcione el nom$re de usuario ?rimero utiliQando la (ra$adora de 5acros ;aga lo siguiente Acti*e la (ra$adora y luego seleccione ;erramientas< Opciones< pesta=a (eneral Realice un cam$io en el nom$re de usuario .errar la *entana de Opciones pulsando en Aceptar 6 detener la (ra$adora /a macro o$tenida ser la siguiente: 4u$ 5acro138 & & 5acro1 5acro & 5acro gra$ada el VCNVSN"VV+ por Adolfo & & Lit% Application 7serName F IAdolfo AparicioI 9" 4tandard'ont F IArialI 4tandard'ont4iQe F I1VI !efault'ile?at% F I.:R!ocuments and 4ettingsRAdolfoR5is documentosI Dna$le4ound F 'alse RollXoom F 'alse Dnd Lit% Dnd 4u$ A%ora *amos a crear la funci#n F7suario siguiendo el procedimiento in*erso 'uncition 7suario38 7suario F Application 7serName Dnd 'unction ?uede pro$arla /a encontrar en la categorJa de 'unciones !efinidas por el usuario )%tensiones de los nombres de macro 9) H /dulos de clase D@tensi#n $cls H 4ormularios D@tensi#n $frm H /dulos estandar D@tensi#n $bas 9+ )%it &ub2 )%it 4unction 5acros

5acros 5acros

4e usan e*entualmente para salir de un procedimiento o funci#n /acro :ue pregunta si se desea salir de la aplicacin 4u$ 4alirAplic38 If 5sgBo@3I[Tuiere salir de la aplicaci#nI< *$Tuestion 1 *$6esNo< I7ltima preguntaI8 F *$6es 99 T%en Application Tuit Dnd If Dnd 4u$ 7lamada a un procedimiento -.all0 Nom$re?roc -3lista de argumentos80 /a pala$ra cla*e .all es opcional para llamar a un procedimiento< sal*o ,ue e@istan argumentos< en cuyo caso es o$ligatoria /os argumentos de$en ir entre parntesis y pueden ser *alores o *aria$les 4u$ 4uma3a As Byte< $ As Byte8 5sgBo@ I/a suma es I K a 1 $ Dnd 4u$ 4u$ sumar38 .all 4uma3)< +8 Dnd 4u$ 9C Para llamar a un procedimiento de otro mdulo Nom$re!el5#dulo$Nom$re!el?rocedimiento Ejemplo: T%isLorM$ooM$4alirAplic Para llamar a un procedimiento de otro libro Application Run INom$re!el/i$roYNom$re!el5#dulo Nom$re!el?rocedimientoI Ejemplo: Application Run IInforme @lsYT%isLorM$ooM 4alirAplic @lsI Al eBecutar este comando< el li$ro Informe @ls de$e estar a$ierto Proteger con contrase@a las macros 9O Alt 1 '11
;erramientas F> ?ropiedades de >BA?roBect F> ?rotecci#n F> Blo,uear proyecto para *isualiQaci#n F> .ontrase=a

5acros

5acros

5acros 5acros

9S !onvertir una funcin en un !omplemento

?odemos %acer ,ue una funci#n creada por el usuario este disponi$le en todos los /i$ros ?ara ello< %emos de con*ertir el /i$ro ,ue contiene la funci#n en un .omplemento /os .omplementos disponi$les se *en %aciendo: ;erramientas F> .omplementos D@cel carga los complementos guardados en el directorio donde tengis instalado 5sOffice y luego en una carpeta ,ue *arJa con la *ersi#n ,ue tengas instalada ?ara P? puede ser: .:R!ocuments and 4ettingsRAdolfoR!atos de programaR5icrosoftRAddInsR ?ara con*ertir el li$ro ,ue contiene nuestra 'unci#n en un .omplemento< $astara ir al 5en Arc%i*oN(uardar como y elegir el formato .omplemento de 5icrosoft D@cel 32 @la8 4i lo guardis en el directorio ,ue tiene tu *ersi#n asignado estar siempre disponi$le 7n aspecto a tener en cuenta es ,ue los .omplementos no son edita$les< es decir no podrs modificar o a=adir mas 'unciones ?or eso es recomenda$le guardar primero el /i$ro en formato 2 @ls y luego como 2 @la (acer referencia a un 3A'<O 4inta@is para %acer referencia a un Rango: 4i el rango est en la misma ;oBa: 3ango 4i est en otra ;oBa del mismo /i$ro: A'ombre de (ojaAB3ango 4i est en una ;oBa de otro /i$ro< y el /i$ro se encuentra en la misma carpeta ,ue el actual: AC'ombre de 7ibro$%lsD'ombre de (ojaAB3ango 4i est en una ;oBa de otro /i$ro< y el /i$ro se encuentra en diferente carpeta ,ue el actual: 9U Ac=E!arpetaE&ub!arpetaEC'ombre de 7ibro$%lsD'ombre de (ojaAB3ango 4i el rango est en otro ordenador conectado al nuestro por una Intranet: AEE&ervidorE!arpetaEC'ombre de 7ibro$%lsD'ombre de (ojaAB3ango 4i el rango est en otro ordenador conectado al nuestro por Intrernet: Ahttp=;;FFF$servidor$com;!arpeta;C7ibro$%lsD(ojaAB3ango /os ap#strofes 3A8 son necesarios si e@isten espacios )jemplo: ?rue$a a poner esto en una celda de una %oBa de D@cel cual,uiera: FB74.AR>3"VVZ&%ttp:NNGGG fcBs urBc esNfinanN-$us,uedas @ls0;oBa1&Yta$1Z"8 4i todo *a $ien< y tienes acceso a Internet *ers como respuesta la letra B CV Para locali,ar la Gltima celda de una lista 4u$ 'inal38 L%ile Acti*e.ell >alue <> II 5acros

Ddici#n

Acti*e.ell Offset31< V8 4elect Lend Dnd 4u$ Abrir un libro e%istente= 4u$ A$rir/i$ro38 LorM$ooMs Open 3I.:R5is documentosRDBemplo @lsI8 Dnd 4u$ Activar un libro a abierto= 4u$ A.ti*ar/i$ro38 LorM$ooMs3IDBemplo @lsI8 Acti*ate C1 Dnd 4u$ !rear un libro nuevo= 4u$ Nue*o/i$ro38 LorM$ooMs Add Dnd 4u$ Borrar un registro de una tabla :ue contenga un dato concreto 4u$ Borrar'ilas38 L%ile Acti*e.ell >alue <> II If Acti*e.ell >alue <> I.adiQI T%en Acti*e.ell Offset31< V8 Range3IA1I8 4elect C" Dlse 4election DntireRoG !elete Dnd If Lend Dnd 4u$ C) !reacin de una 4rmula personali,ada .lculo del trmino amortiQati*o de un prstamo tipo francs 3de pagos constantes8 4imilar a la f#rmula F?A(O pero en este caso usando tipo nominal y con fraccionamiento 'unction Termino3?rincipal\< A=os As Byte< tipoEnominalY< fraccionamiento As Byte8 !im imY &Tipo efecti*o del su$periodo im F tipoEnominal N fraccionamiento N 1VV Termino F ?rincipal 2 im N 31 H 31 1 im8 ] 3HA=os 2 fraccionamiento88

5acros

5acros

5acros

Dnd 'unction ?ongamos un eBemplo para un principal de 1VV VVV ^< 1V a=os< tipo nominal anual del C_< con fraccionamiento mensual Dn este caso< al ser el fraccionamiento mensual el trmino o$tenido es la mensualidad 4u$ eBemplo38 Dnd 4u$ /acro :ue cierra )%cel 4e puede asociar a un $ot#n o a un icono C+ 4u$ AutoE.lose38 Application Tuit Dnd 4u$ /acro :ue elimina las barras de despla,amiento 4u$ !es$arra38 Lit% Acti*eLindoG C9 !isplay;oriQontal4crollBar F 'alse !isplay>ertical4crollBar F 'alse Dnd Lit% Dnd 4u$ /acro :ue protege el libro la hoja CC

5acros

5acros

4u$ BlindaBe38 5acros Acti*eLorM$ooM ?rotect ?assGord:FI1")+I 4%eets3I;oBa1I8 ?rotect ?assGord:FI1")+I Dnd 4u$ 7a funcin *)163A) la funcin *)'!O'63A3 4i en BC pones el nom$re de una persona< por eBemplo: IAndrs 4uareQ Oli*eiraI la siguiente funci#n CO o$tiene las tres iniciales 3A4O8 'unci#n FIXT7IDR!A3BCZ18K1DPTRAD3BCZDN.ONTRAR3I IZBC811Z18KDPTRAD3BCZ1DN.ONTRAR3I IZBCZDN.ONTRAR3I IZBC811811Z18 CS 7a funcin *3)&0D+O permite calcular la parte 4raccionario 'unci#n Dn D@cel disponemos de FDNTDRO ,ue calcula la parte entera< pero no disponemos de 'RA. ,ue calcularia la parte fraccionaria ?ara calcular la parte 'raccionaria de$erJamos usar uno de estos dos mtodos:

FA1HDNTDRO3A18 FRD4I!7O3A1Z18 /acro :ue borra los ceros de un rango 4u$ Borrar.eros38 'or Dac% .elda In Range3I.11:("+I8 If .elda >alue F V T%en .elda .lear.ontents Ne@t Dnd 4u$ 4i s#lo se ,uieren ocultar los ceros se %a de poner formato de celda personaliQado de ` ``` /acro :ue reempla,a una palabra por otra 4u$ RemplaQar?ala$ra38 !im ?ala$ra As 4tring !im ;oBa As /ong ?ala$ra F Trim3InputBo@3IIntroduQca la pala$ra a $uscar: I88 'or ;oBa F 1 To 4%eets .ount 4%eets3;oBa8 Acti*ate .ells Replace L%at:F?ala$ra< Replacement:FII< /ooMAt:F@l?art< E 4earc%Order:F@lByRoGs< 5atc%.ase:F'alse< 4earc%'ormat:F'alse< E Replace'ormat:F'alse Ne@t ;oBa Dnd 4u$ Dn este caso reemplaQamos por II< lo ,ue supone $orrar la pala$ra $uscada !alculo del '04 Dsta funci#n calcula el NI' 3Nmero de Identificaci#n 'iscal8 utiliQado en Dspa=a 'unction nif3dni As /ong8 As 4tring nif F 5id3ITRLA(56'?!PBNaX4T>;/.bDI< 3dni 5od ")8 1 1< 18 Dnd 'unction 4uncin :ue calcula la fila :ue ocupa cierto valor en una tabla Dst pensado para ,ue la matriQ se ponga comenQando en la celda A1< sin enca$eQado y sin ,ue se repitan los elementos 'unction !ime'ila3Rango As Range< >alorEaE$uscar8 As Integer 'or Dac% c In Rango If c >alue F >alorEaE$uscar T%en !ime'ila F c RoG Dnd If

CU

5acros

OV

5acros

O1

5acros

O"

5acros

Ne@t Dnd 'unction Para poner el nombre del fichero en una celda FDPTRAD3.D/!A3INO5BRDAR.;I>OIZA18ZDN.ONTRAR3I-IZ .D/!A3INO5BRDAR.;I>OIZA18811Z13DN.ONTRAR3I0IZ O) .D/!A3INO5BRDAR.;I>OIZA1888HDN.ONTRAR3I-IZ .D/!A3INO5BRDAR.;I>OIZA188H18 Re,uiere gra$ar el fic%ero /as + lJneas anteriores son una misma f#rmula Para poner el nombre de la hoja en una O+ celdaFDPTRAD3.D/!A3Inom$rearc%i*oI8ZDN.ONTRAR3I0IZ.D/!A3Inom$rearc%i*oI8811Z"998 Re,uiere gra$ar el fic%ero 4uncin :ue muestra la frmula de una celda !e*uel*e la f#rmula ,ue contiene una celda en lenguaBe local O9 'unction !isplay.ell'ormula3Input.ell As Range8 As 4tring !isplay.ell'ormula F Input.ell 'ormula/ocal Dnd 'unction 4i se ,uita la pala$ra &/ocal& de*uel*e la f#rmula en ingls OC Determinacin de si un nGmero es primo o no es primo 4u$ primo38 !im primo As Boolean !im n As /ong !im d As /ong n F >al3InputBo@3IIntroduce un nmero naturalI< IDntrada de !atosI88 dF" primo F True !o L%ile primo And d < n If n 5od d F V T%en primo F 'alse Dnd If dFd11 /oop If primo T%en

'unci#n

'unci#n

5acros

5acros

5sgBo@ 3n K I es primoI8 Dlse 5sgBo@ 3n K I no es primoI8 Dnd If Dnd 4u$ Activar o Desactivar el empleo de la funcin 0/PO36A3DA6O&D0'A/0!O& Al intentar operar con formulas ,ue %acen referencia a celdas ,ue pro*ienen de una ta$la dinmica con la *ersi#n P? de D@cel nos encontramos con ,ue automticamente nos pone la funci#n: I5?ORTAR!ATO4!INA5I.O4< y nosotros preferirJamos ,ue esto funcionara como antes Dsto se de$e a ,ue desde Office P? la funci#n I5?ORTAR!ATO4!INA5I.O4 se acti*a por defecto cuando nos referimos a celdas ,ue forman parte de una ta$la dinmica ?ero podemos desacti*arla ?ara ello primero tendremos ,ue lle*ar %asta alguna de las $arras de %erramientas un I$ot#nI< llamado IGeneral GetPivotDataI ?ara lle*ar este $ot#n %asta una $arra de %erramientas sigue estos pasos 4elecciona: >er< Barra de ;erramientas< ?ersonaliQar >e a la pesta=a I.omandosI A%ora selecciona la .ategorJa I!atosI y en la *entana derec%a 3.omandos8 $usca el $ot#n I(eneral (et ?i*ot !ataI 3est cerca del final< apro@imadamente el octa*o empeQando por el final8 /le*a este $ot#n a la $arra de %erramientas de D@cel ,ue prefieras 3esto se %ace arrastrando el icono y soltndolo en alguna de las $arras de %erramientas8 A%ora< todo lo ,ue tendremos ,ue %acer es pinc%ar este $ot#n para acti*ar N desacti*ar la funci#n I5?ORTAR!ATO4!INA5I.O4< ,ue *iene acti*ada por defecto OS 4actorial 'unction facto3n8 !im i As Integer facto F 1 iFV !o iFi11 facto F facto 2 i

OO

Ta$las !inmicas

5acros

/oop L%ile i <> n Dnd 'unction 0niciali,ar una matri, 4e inicialiQa con )3A&) &Dn este caso se ponen todos los *alores a Dmpty 4u$ test38 !im c31 To "V< 1 To 1V8 As >ariant 'or i F 1 To "V 'or B F 1 To 1V c3i< B8 F RN! Ne@t B Ne@t i 5sgBo@ c31<18 Drase c 5sgBo@ c31<18 OU Dnd 4u$ &Dn este caso se pone la *aria$le c a su estado inicial &Borrandose los *alores< las dimensiones y recuperandose &la memoria usada 4u$ test138 !im c As >ariant c F Acti*e4%eet Range3IA1:a"VI8 >alue 5sgBo@ c31< 18 Drase c &Dsto dara error ya ,ue no %ay ninguna matriQ 5sgBo@ c31< 18 Dnd 4u$

5acros

?gina de Inicio ;ome

D@cel

'inancieras

5acros

Adolfo Aparicio c "VV+H"VV9

También podría gustarte