Está en la página 1de 18

TRUCOS DE EXCEL (www.

excelavanza

1 Para rellenar una Base de Datos 30


2 Para separar un sector circular en un grfico 31
3 Para incluir una nueva serie de datos en un grfico 32
4 Para seleccionar una tabla completa 33
5 Para poder ver las frmulas de una hoja 34
6 Auto_Open() y Auto_Close() 35
7 Personal.xls 36
8 Saludo al arrancar 37
9 Nombrar Hoja desde una celda 38
10 Proteccin de una hoja 39
11 Propiedad EnableSelection 40
12 EnableSelection = xlUnlockedCells 41
13 Opciones de Ordenacin 42
14 Criterios utilizados para filtrar una base de datos 43
15 Varias lneas en una celda 44
16 Mover celdas entre hojas 45
17 Insertar filas o columnas rpidamente 46
18 Copiar en Excel XP arrastrando con Ctrl 47
19 Edicin, Rellenar, Series 48
20 Algunas teclas de navegacin 49
21 Clculo automtico en la barra de estado 50
22 Algunas abreviaturas de teclado 51
23 Al pulsar Intro se desplaza el cursor hacia abajo, pero se puede c 52
24 F11 53
25 Proteger celdas 54
26 Ocultar la formula en una celda 55
27 Copiar una hoja 56
28 Insertar Comentarios 57
29 Texto con diversos formatos en una misma celda 58
TRUCOS DE EXCEL (www.excelavanzado.com)

Trabajar simultneamente en varias hojas 59


Escribir en varias celdas simultneamente 60
Ver todas las frmulas de una hoja 61
Borrar 62
La fuente por defecto en Excel es la Arial 10 pero se puede cambia 63
Plantillas *.xlt 64
Puede trabajar con Estilos 65
Libros que se abren al iniciar Excel 66
La funcin =CELDA 67
Exportar un mdulo 68
Importar un mdulo 69
La clusula Private 70
Inspeccin rpida de variables 71
Modificar el valor de una variable en tiempo de ejecucin 72
Ventana Inmediato 73
Debug.Print 74
Propiedad ListFillRange del ComboBox 75
Propiedad LinKedCell del ComboBox 76
Propiedad ListIndex del ComboBox 77
La funcin =TEXTO 78
Curiosidades de alguna funciones con valor propio 79
Cambiar el nombre de un Mludo 80
Nombre de usuario: UserName 81
Extensiones de los nombres de macro 82
Exit Sub, Exit Function 83
Macro que pregunta si se desea salir de la aplicacin 84
Llamada a un procedimiento 85
Proteger con contrasea las macros 86
Convertir una funcin en un Complemento

SELECCIONE EL TRUCO QUE QUIERA VISUALIZAR

Gracias a jbj99 y a KL que en Exceluciones pulieron y mejoraron el fichero


Hacer referencia a un RANGO
Para localizar la ltima celda de una lista
Abrir un libro existente:
Borrar un registro de una tabla que contenga un dato concreto
Creacin de una Frmula personalizada
Macro que cierra Excel
Macro que elimina las barras de desplazamiento
Macro que protege el libro y la hoja
La funcin =EXTRAE y la funcin =ENCONTRAR
La funcin =RESIDUO permite calcular la parte Fraccionario
Macro que borra los ceros de un rango
Macro que reemplaza una palabra por otra
Calculo del NIF
Funcin que calcula la fila que ocupa cierto valor en una tabla
Para poner el nombre del fichero en una celda
Para poner el nombre de la hoja en una celda
Funcin que muestra la frmula de una celda
Determinacin de si un nmero es primo o no es primo
Activar o Desactivar el empleo de la funcin IMPORTARDATOSDINAMICOS
Factorial
Inicializar una matriz
Evitar los movimientos de pantalla mientras se ejecuta una macro
Formula referida siempre a un mismo rango
While...Wend
Contar cuantas veces se repite un mismo caracter en un texto
Manejo de Rangos
Ocultar Hojas
Determinar la fila hasta la que llega un rango
0
1
2
3
4
5
6
7
8
9
:
;
<
=
n TRUCO TIPO
1 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
de la fila pulsamos <INTRO> el cursor se posicionar en el primer dato de la siguiente fila. Datos

2 Para separar un sector circular en un grfico


se pulsa con el ratn sobre l y luego se separa. Tambin se puede cambiar el color de un sector Grficos
pulsando sobre l con el botn derecho del ratn y eligiendo 'Formato de punto de datos...'.

3 Para incluir una nueva serie de datos en un grfico Grficos


se copia el rango de datos nuevo y se pega sobre el grfico.
4 Para seleccionar una tabla completa
basta con posicionarse en cualquier celda de la tabla y pulsar [CTRL]+*. (Si usa el asterisco del Teclado
teclado general no olvide que se consigue pulsando tambin la tecla [MAYUSCULAS]).
5 Para poder ver las frmulas de una hoja
puede hacer lo siguiente: Herramientas, Opciones, pestaa Ver, y en Opciones de Ventana marcar
Frmulas. Teclado
Pero tambin existe un mtodo de Teclado Abreviado que consiste en pulsar [ALT]+ y si se vuelven a
pulsar estas dos teclas se muestra la hoja como habitualmente la vemos.
6 Auto_Open() y Auto_Close()
Existe una macro de autoarranque que se ejecuta cuando se abre el libro. Se llama auto_open().

Y existe otra que se ejecuta justo antes de cerrar el libro que se llama auto_close().
Sub Auto_Open()
Dim hora As Double
Dim saludo As String
hora = (Now - Int(Now)) * 24
Select Case hora
Case 6 To 14
saludo = "Buenos das"
Case 14 To 21
saludo = "Buenas tardes"
Case Else Macros
saludo = "Buenas noches"
End Select
MsgBox saludo & " Amo"
End Sub
Equivalente a auto_open existe otra macro Workbook_Open, pero sta ha de ser guardada no en un
mdulo normal, sino en ThisWorkbook. Pruebe lo siguiente:
El siguiente procedimiento permite abrir automticamente el libro Balance.xls al abrir el libro
Informe.xls. El procedimiento ha de estar en ThisWorkbook del libro Informe.xls.
Sub Workbook_Open()
'Apertura de libro Balance
Workbooks.Open Filename:="C:/Contabilidad/Balance.xls"
'Activacin del libro Informe
Windows("Informe.xls").Activate
End Sub
7 Personal.xls
Podemos crear una macro para que este disponible en todas las hojas de clculo. Esto se hace con el
libro PERSONAL.XLS
Personal.xls es un Libro que se carga cada vez que se inicia Excel, pero no esta visible ya que tiene el
atributo de Escondido (Hidden), por lo que si necesitamos modificarlo lo debemos hacer a travs del
comando "Mostrar" del men "Ventana". En caso que no exista lo podemos crear con un libro de
trabajo nuevo, salvarlo con este nombre y dejarlo en la carpeta "InicioXL" (XLStart), que se encuentra Personalizar
en la carpeta "Office" del directorio donde esta instalado MSOffice. Cada vez que dejamos de trabajar
con este archivo, lo debemos salvar y luego activar el comando "Ocultar" del men "Ventana", para
que no se vea cuando iniciamos la aplicacin.

www.excelavanzado.com 5/18
Personalizar

n TRUCO TIPO
La ruta de mi fichero es:
C:\Documents and Settings\Adolfo\Datos de programa\Microsoft\Excel\XLSTART\
[PERSONAL.XLS]Hoja1
8 Saludo al arrancar
Crear un libro Personal.xls como se ha indicado anteriormente con la macro de autoarranque
siguiente:
Sub Auto_open() Macros
MsgBox ("Que tengas un buen da")
End Sub
Esta macro creada en el libro Personal.xls hace que al iniciar Excel nos salga un mensaje
saludndonos.
9 Nombrar Hoja desde una celda
Esta macro permite asignar el nombre que pongamos en la celda A1 como nombre de la Hoja actual.
Macros
Sub NombreHoja()
ActiveSheet.Name = Range("A1").Value
End Sub
10 Proteccin de una hoja
Las celdas por defecto vienen bloqueadas. Si deseamos desbloquear algunas de ellas debemos hacer
lo siguiente: Formato, Celda, pestaa Proteger, quitar la casilla de verificacin que esta puesta por
defecto en 'Bloqueada'. Si marcamos 'Oculta' no se ver el contenido de la celda en la barra de
frmulas. Esto se hace cuando no se desea que alguien vea la frmula de una celda. Despus se Personalizar
debe proteger la hoja con: Herramientas, Proteger, Proteger hoja. Se le pueden permitir ms o menos
acciones al usuario. Si no le permitimos seleccionar las celdas bloqueadas y desbloqueadas no podr
posicionarse con el cursor sobre ellas. Si nicamente le dejamos seleccionar las desbloqueadas nos
encontraremos con algo parecido a un formulario.

11 Propiedad EnableSelection
Para reforzar el bloqueo del paso anterior podemos hacer lo siguiente:
Ir al Editor de Visual Basic. En el Explorador de proyectos ir a la hoja que queramos proteger. En la
Ventana de propiedades buscar la propiedad EnableSelection y ponerle el valor 1. Cerrar el editor,
volver a Excel y grabar la plantilla.
Personalizar
Con la doble opcin (proteccin de hoja y la propiedad EnableSelection) ser imposible seleccionar
una celda, y por lo tanto copiar o modificar cualquier valor. Este procedimiento no funciona en Excel
2000 y en las versiones anteriores, porque la propiedad EnableSelection no conserva el valor
modificado al cerrar la plantilla. Aunque lo cierto es que pocos usuarios conocen la citada propiedad.

12 EnableSelection = xlUnlockedCells
Para paliar el inconveniente citado anteriormente para las versiones de Excel 2000 y anteriores se
puede hacer lo siguiente:
Ir al Editor de Visual Basic. En el Explorador de proyectos ir a la hoja que queramos proteger. En la
Ventana de propiedades buscar la propiedad EnableSelection y ponerle el valor 1. Cerrar el editor,
volver a Excel y grabar la plantilla.
Con la doble opcin (proteccin de hoja y la propiedad EnableSelection) ser imposible seleccionar
una celda, y por lo tanto copiar o modificar cualquier valor. Este procedimiento no funciona en Excel Personalizar
2000 y en las versiones anteriores, porque la propiedad EnableSelection no conserva el valor
modificado al cerrar la plantilla.
Ese procedimiento se puede realizar tambin mediante una macro:
Private Sub Workbook_Open()
Worksheets("Hoja1").EnableSelection = xlUnlockedCells
End Sub
El valor por defecto es xlNoRestrictions
13 Opciones de Ordenacin
Al ordenar un rango de datos podemos elegir en Opciones que la ordenacin sea Normal (alfabtica) o
Base de
segn una de las Listas Personalizadas de Excel. Datos
Puede distinguir maysculas de minsculas.
Puede ordenar en vertical (que es lo normal) o en horizontal.
14 Criterios utilizados para filtrar una base de datos

www.excelavanzado.com 6/18
n
14 TRUCO TIPO
Un criterio est formado al menos por dos celdas. La primera es un nombre de campo y la segunda
que estar debajo es el criterio propiamente dicho.
Salario
>=30.000
Cuando usamos varios criterios estos se relacionan entre si mediante concatenadores lgicos Y u O. Base de
Por ejemplo, supongamos que deseamos filtrar de una base de datos los registros correspondientes a Datos
trabajadores que cumplan que su salario esta comprendido entre 30.000 y 40.000 euros, o bien su
edad es de 30 aos y se llaman Maria. En ese caso el criterio esta formado por mltiples celdas, de
forma que los criterios que estan en la misma fila se han de cumplir ambos (operador Y), y si estn en
fila distinta se han de cumplir unos u otros (operador O).

15 Varias lneas en una celda


Para escribir varias lneas en la misma celda puedes escribir lo que quieras y para abrir un espacio Personalizar
hacia abajo en la misma celda pulsar Alt+Enter.
16 Mover celdas entre hojas
Seleccione el rango a mover. Llvelo hasta la pestaa de la hoja de destino, presione ALT y mantenga Personalizar
presionado hasta que deje el rango en la parte de la hoja de destino que desee.
17 Insertar filas o columnas rpidamente
En una hoja de Excel que ya tengas rellena, prueba a hacer esto:
Vete al principio de lo que tengas escrito
Pon el ratn sobre el control de relleno (es el puntito negro que tiene el cursor abajo a la derecha).
Sabes que ests encima del control de relleno, porque la cruz blanca que es normalmente el ratn se Personalizar
cambia a color negro
Ahora pulsa la tecla de maysculas (no la de bloq. mays) y sin soltarla pulsa el botn izquierdo del
ratn y arrstralo hacia abajo o hacia la derecha, vers que se insertan filas o columnas.

18 Copiar en Excel XP arrastrando con Ctrl


Se puede copiar una celda arrastrando con Ctrl desde alguno de los 4 lados del borde de la celda Personalizar
activa.
Si no se emplea el Ctrl la celda no se copia, se mueve.
19 Edicin, Rellenar, Series
Poner el primer nmero y arrastrar el controlador de relleno con la tecla Ctrl pulsada. Esto nos dar Personalizar
una serie con incrementos unitarios.
20 Algunas teclas de navegacin
Ctrl + Intro Ir a A1
Fin - Flecha abajo ltima celda de un rango.
Ctrl + Flecha abajo ltima celda de un rango.
Ctrl + Fin Celda inferior derecha al rea activa
Alt + AvPg
Shift + Barra de desplazamiento vertical u Pgina a la derecha Teclado
horizontal Permite desplazamientos ms rpidos
Ctrl + AvPg Avanza entre las hojas de un libro
Para ir al extremo superior de un bloque de datos, haga doble clic en el extremo superior de la celda
seleccionada. Con los dems bloques puede ir a los dems extremos del bloque. Y si lo hace mientras
presiona la tecla Shift podr seleccionar rangos.
21 Clculo automtico en la barra de estado
Al seleccionar un rango de nmeros vemos su suma en la barra de estado (abajo). Pulsando sobre
ella con el botn derecho del ratn podemos cambiar la suma por un promedio, el mximo, el mnimo
o contar los elementos seleccionados en el rango.

Personalizar

www.excelavanzado.com 7/18
21

n TRUCO TIPO

Personalizar

22 Algunas abreviaturas de teclado


Ctrl + C Copiar
Ctrl + V Pegar Teclado
Ctrl + X Cortar
Ctrl + Z Deshacer
23 Al pulsar Intro se desplaza el cursor hacia abajo, pero se puede cambiar Teclado
Puede cambiarlo en Herramientas, Opciones, Modificar, Mover seleccin despus de ENTRAR.
24 F11
Pulsando F11 sobre una serie de datos se construye un grfico completo y de forma automtica. Grficos

25 Proteger celdas
Con Formato, Celda, Protege, quitar la casilla de verificacin en Bloqueada se consigue que en estas
celdas se pueda escribir despus de ejecutar Herramientas, Proteger, Proteger hoja. Personalizar
Con TAB se puede saltar de una a otra celda de las desbloqueadas. Y con Maysculas + TAB se salta
hacia atrs.
26 Ocultar la formula en una celda
Con Formato, Celda, Proteger, Oculta se marcan las celdas cuyas frmulas o contenido visto en la Personalizar
lnea de edicin se desee ocultar. Despus se ha de proteger la hoja, con Herramientas, Proteger,
Proteger hoja.
27 Copiar una hoja
Para copiar una hoja completa dispone de dos sistemas:
El primero y ms fcil es sealar con el ratn la pestaa de la hoja a copiar, pulsar Ctrl y sin soltar
arrastrar la pestaa con el ratn. Al soltar se habr duplicado completamente la hoja. Si la hoja a
copiar se llamaba 'Hoja 1', la nueva hoja se llamar 'Hoja 1 (2)' Personalizar
Es segundo mtodo consiste en situar el ratn en el cuadradito que queda como interseccin del
indicador de filas y columnas. Esto selecciona la hoja completamente. Seguidamente se copia al
portapapeles, por ejemplo con Ctrl + C. Se inserta una hoja nueva y pulsando sobre ella en el citado
cuadradito se pega el contenido del portapapeles, por ejemplo con Ctrl + V.
28 Insertar Comentarios
Se pueden insertar comentarios en las celdas. Para ello, pulse con el botn derecho del ratn y elija
'Insertar Comentario'. Puede verlos completamente, solo la indicacin de que la celta tiene un Personalizar
comentario, o no verlos en absoluto segn elija una opcin u otra en Herramientas, Opciones, Ver,
Comentarios.
29 Texto con diversos formatos en una misma celda
Se pueden dar distintos formatos a los caracteres o palabras de una misma celda.
Por ejemplo: puede poner en una celda la siguiente expresin: Volumen (m3)
Personalizar

www.excelavanzado.com 8/18
29

n TRUCO TIPO
Vase el distinto color de la fuente y el 3 como superndice. Personalizar
Volumen (m3)
Esto se consigue sealando en la barra de frmulas el carcter o caracteres que se quieren cambiar y
aplicndoles el formato deseado.
30 Trabajar simultneamente en varias hojas
Antes de escribir texto, formulas, dar formato, etc.. en varias hojas simultneamente ha de sealarlas
primero.
Si son un conjunto de hojas correlativas, seale la primera haciendo clic con el ratn sobre la pestaa
que indica el nombre de la primera y haga Maysculas + clic en la ltima. Personalizar
Si las hojas no son consecutivas selecciones la primera con un clic y las restantes con un Ctrl + clic en
cada una.
Cuando haya terminado de introducir la informacin y formatos comunes haga clic en cualquier
pestaa y as se desactivar el modo de trabajo conjunto.
31 Escribir en varias celdas simultneamente
Seale las celdas donde quiere escribir una misma expresin. Incluso si son de rangos separados. Personalizar
Escriba dicha expresin. Y valide su introduccin con Ctrl + Intro.
32 Ver todas las frmulas de una hoja
Se consigue pulsando Alt + (esto es, la tecla Alt y simultneamente la tecla de 1 que est a la Personalizar
izquierda del nmero 1). Para volver a la situacin anterior volver a pulsar.
Tambin se puede conseguir mediante: Herramientas, Opciones, Ver, Frmulas.
33 Borrar
Con el comando Edicin, Borrar se puede elegir entre Todo, Formatos, Contenido (Supr) o
Comentarios.
Personalizar
Para borrar un rango primero seleccione el rango y luego presione Shift mientras arrastra con el ratn
el indicador de relleno hacia el extremo superior izquierdo del rango. Si no presiona Shift conseguir
borrar el contenido pero no los formatos.
34 La fuente por defecto en Excel es la Arial 10 pero se puede cambiar
Se puede cambiar para todos los libros nuevos mediante: Herramientas, Opciones, General y elegir la
Fuente Estndar y el tamao.
Pero tambin se puede cambiar la fuente slo en el libro activo de la siguiente forma. Activar el libro en Personalizar
el que se quiere cambiar la fuente por defecto. Ejecute Formato, Estilo y dentro del formato de estilo
Normal elegir Modificar, Fuente y proceder a cambiar la fuente. Finalmente Aceptar.

35 Plantillas *.xlt
Las plantillas permiten predefinir formatos, estilos, textos, frmulas, barras de herramientas
personalizadas e incluso macros, que se utilizarn en todos los nuevos libros abiertos (si la plantilla se
llama libro.xlt) u hojas nuevas insertadas (si la plantilla se llama hoja.xlt). Tambin pueden existir otras
plantillas para diferentes usos, por ejemplo, para predefinir una factura, cierto informe mensual, un
balance, etc.
La plantilla de libro predeterminada (libro.xlt) y la plantilla de hoja predeterminada (hoja.xlt) se han de
grabar como plantilla en el directorio INICIAR que para la versin XP suele estar en: Personalizar
C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIAR
o bien en:
C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\XLSTART
Tanto las plantillas que tenga en la carpeta de inicio predeterminada de Excel como las que haya
definido en la carpeta de plantillas (C:\Documents and Settings\nombreusuario\Datos de
programa\Microsoft\Plantillas) las tendr disponibles cuando haga Archivo, Nuevo y salga el Panel de
Tareas y en el elija Plantillas Generales.
36 Puede trabajar con Estilos
En Formato, Estilo puede modificar el estilo normal o crear nuevos estilos, pero slo estarn
disponibles en el Libro Activo.
Si se desea que los estilos estn disponibles de forma permanente sigua los siguientes pasos: Abra el
libro cuyos Estilos quiere guardar permanentemente. Abra un libro nuevo y combine los Estilos en
ste. Ejecute Archivo, Guardar como, elija como tipo Plantilla (*.xlt). Escriba como nombre de fichero
Libro.xlt o Hoja.xlt y gurdelo en la carpeta de inicio de Excel (C:\Documents and
Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIAR). De esta forma cada vez que Personalizar
abra un libro u hoja nuevos se dispondr de estos Estilos.

www.excelavanzado.com 9/18
Personalizar

n TRUCO TIPO
Puede convertir el estilo de una celda en un tipo de estilo personalizado. Sitese en la celda patrn y
elija Formato, Estilo y cambie el nombre por uno nuevo de su eleccin.
Puede transferir los estilos de un libro a otro mediante Formato, Estilo, Combinar. Para ello abra los
dos ficheros (o ms) y ejecute los pasos sealados desde el fichero hacia el que quiere llevar los
nuevos estilos.
37 Libros que se abren al iniciar Excel
Los libros que coloque en la carpeta de inicio de Excel:
C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIAR
o bien en Personalizar
C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\XLSTART
Se abrirn al iniciar Excel.
Tambin puede definir una carpeta de inicio de Excel en Herramientas, Opciones, General, "Al inicio,
abrir todos los libros en:"
38 La funcin =CELDA
La funcin CELDA es la tpica funcin que sirve para varias cosas segn que argumentos se utilicen.

Si se usa con "nombrearchivo"


Err:502 Funcin
proporciona el nombre y ruta del archivo (siempre que est grabado). En la ayuda hay un error y en
lugar de poner "nombrearchivo" pone "archivo".
Otro argumento interesante es "contenido".
=CELDA("contenido";A3) Proporciona el contenido de la celda A3.
39 Exportar un mdulo
1. Pase al editor de visual basic y active el mdulo a exportar.
2. Seleccione Archivo/ Exportar archivo. Aparece un cuadro de dilogo.
3. En cuadro de edicin Nombre de Archivo, teclee el nombre para el archivo donde se guardar el Macros
mdulo, por ejemplo "General.Bas", observe que .BAS es la extensin de estos archivos.

4. Pulse sobre el botn Guardar.


40 Importar un mdulo
1. Active el editor Visual Basic.
2. Seleccione Archivo/ Importar Archivo. Aparece un cuadro de dilogo. Macros
3. Seleccione en la lista Buscar en: la carpeta donde tiene ubicado el archivo a importar.
4. Una vez localizada la carpeta, seleccione el archivo a importar (General.Bas en el ejemplo) y pulse
sobre Abrir.
41 La clusula Private
Puede anteponer la clusula private a todos los procedimientos y funciones que sean llamados slo
desde el mismo mdulo, es una forma de ahorrar memoria y hacer que el programa corra un poco ms
Macros
rpido. Si necesita llamar un procedimiento o funcin desde otro mdulo, nunca debe precederlo por la
clusula private, recuerde que esta clusula restringe el mbito de utilizacin de un procedimiento a su
propio mdulo.
42 Inspeccin rpida de variables
Cuando ejecuta un programa paso a paso, si sita el puntero de ratn sobre una variable, se muestra Macros
el valor de la misma.
43 Modificar el valor de una variable en tiempo de ejecucin
A veces resulta interesante cambiar el valor de alguna variable cuando se est ejecutando el
programa, para ver que ocurre si coge determinados valores, para terminar un bucle, etc. Macros
Para ello agregue a la ventana de inspeccin la variable que desee cambiar, cambie su valor sobre la
propia ventana de inspeccin y contine la ejecucin del programa.
44 Ventana Inmediato
Puedes inspeccionar variables desde esta ventana anteponiendo la palabra print antes de la variable, Macros
o el signo ?.
45 Debug.Print
Esta expresin permite efectuar la depuracin del programa de forma ms cmoda. Se introduce en
un programa antecediendo a una variable que se desea comprobar en la ventana Inmediato. De esta
forma conseguiremos ver todos los valores que toma la variable cada vez que el programa pasa por
este comando. Se ven en la Ventana Inmediato [Ctr+G].

Macros
www.excelavanzado.com 10/18
45

n TRUCO TIPO
Ejemplo:
Sub Dos_a_la_diez()
Dim i As Integer
Dim t As Integer Macros
t=1
For i = 1 To 10
t=t*2
Debug.Print "Dos a la " & i & " = " & t
Next
MsgBox t
End Sub
Despus de efectuada la depuracin se quita la lnea que contiene el comando Debug.Print.
46 Propiedad ListFillRange del ComboBox
Con esta propiedad deberemos definir los elementos que debe mostrar la lista, debe especificarse el Macros
rango que contiene los elementos a mostrar, el rango debe ser una columna (o dos , o tres, etc.).

47 Propiedad LinKedCell del ComboBox


En esta propiedad debe especificar en que celda debe copiarse el elemento seleccionado de la lista.

Cuidado con esta propiedad, tenga en cuenta que los elementos de la lista son tratados como datos Macros
de tipo String aunque contenga nmeros o fechas, por lo que en estos casos, a veces ser necesario
aplicar funciones de conversin de datos antes que el dato se copie en la hoja. Por ejemplo, si alguna
vez construye una lista con nmeros ver que el dato seleccionado se alinea a la derecha, si son
fechas, no se muestra con el formato correspondiente.
48 Propiedad ListIndex del ComboBox
Mediante esta propiedad podremos saber que elemento de la lista es el seleccionado por su nmero
de tipo String aunque contenga nmeros o fechas, por lo que en estos casos, a veces ser necesario
aplicar 1, etc. Si no hay ningn elemento seleccionado valdr -1. Tenga en cuenta que esta propiedad Macros
slo est disponible en tiempo de ejecucin, es decir la podremos leer mientras est funcionando el
programa, no se puede establecer en modo diseo, observe que no aparece en la ventana
propiedades del cuadro combinado.
49 La funcin =TEXTO
Esta funcin permite convertir un valor numrico en un texto. Su funcin contraria es =VALOR.
Al escribir un nmero en una celda queda alineado a la derecha, si se escribe como texto
(anteponindole una comilla simple) quedar alineado a la izquierda. Ejemplo: '54
La funcin TEXTO tiene dos argumentos que segn la ayuda son: =TEXTO(valor;formato)
valor: es el nmero que queremos convertir a texto Funcin
formato: es el formato que queremos darle. Es un argumento optativo
Pero la ayuda no se corresponde con la realidad de la funcin, ya que en la prctica esta funcin tiene
los argumentos cambiados de orden.
Pruebe =TEXTO(;"43")
Pero si prueba =TEXTO("43") obtendr un error
50 Curiosidades de alguna funciones con valor propio
Algunos nombres de funcin tienen valor propio si se escriben un una celda y sin argumentos. O al
menos eso es lo que he podido comprobar en la versin XP.
Ponga en una celda cualquiera +PRECIO y al pulsar intro ver que aparece un valor. A mi me da
-1965686714.
Las funciones que he visto que tienen valor propio son las siguientes:
=PRECIO Err:508
=AMORTIZ.LIN Err:508 Funcin
=CUPON.DIAS Err:508
=DURACION Err:508
=VNA.NO.PER Err:508
=DIAS.LAB Err:508
y muchas ms. Por lo que veo, son las que aparece al ampliar las funciones al instalar las
complementarias, con
Herramientas, Complementos, Herramientas para Anlisis.

www.excelavanzado.com 11/18
n TRUCO TIPO
51 Cambiar el nombre de un Mludo
Al insertar mdulos en el Editor de Visual Basic, se utilizan los nombres: Mdulo 1, Mdulo 2, etc. Macros
Podemos cambiar el nombre el un mdulo en sus propiedades (F4). La nica propiedad de un Mdulo
es 'name'.
52 Nombre de usuario: UserName
Vamos a crear una funcin que proporcione el nombre de usuario. Primero utilizando la Grabadora de
Macros. Haga lo siguiente. Active la Grabadora y luego seleccione Herramientas, Opciones, pestaa
General. Realice un cambio en el nombre de usuario. Cerrar la ventana de Opciones pulsando en
Aceptar. Y detener la Grabadora. La macro obtenida ser la siguiente:
Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 06/08/2004 por Adolfo
'
'
With Application
.UserName = "Adolfo Aparicio" Macros
.StandardFont = "Arial"
.StandardFontSize = "10"
.DefaultFilePath = "C:\Documents and Settings\Adolfo\Mis documentos"
.EnableSound = False
.RollZoom = False
End With
End Sub
Ahora vamos a crear la funcin =Usuario siguiendo el procedimiento inverso.
Funcition Usuario()
Usuario = Application.UserName
End Function
Puede probarla. La encontrar en la categora de Funciones Definidas por el usuario.
53 Extensiones de los nombres de macro
- Mdulos de clase. Extensin .cls. Macros
- Formularios. Extensin .frm.
- Mdulos estandar. Extensin .bas.
54 Exit Sub, Exit Function Macros
Se usan eventualmente para salir de un procedimiento o funcin.
55 Macro que pregunta si se desea salir de la aplicacin
Sub SalirAplic()
If MsgBox("Quiere salir de la aplicacin", vbQuestion + vbYesNo, "Ultima pregunta") = vbYes Then
Macros
Application.Quit
End If
End Sub
56 Llamada a un procedimiento
[Call] NombreProc [(lista de argumentos)]
La palabra clave Call es opcional para llamar a un procedimiento, salvo que existan argumentos, en
cuyo caso es obligatoria. Los argumentos deben ir entre parntesis y pueden ser valores o variables.

Sub Suma(a As Byte, b As Byte)


MsgBox "La suma es " & a + b
End Sub
Sub sumar() Macros
Call Suma(3, 4)
End Sub
Para llamar a un procedimiento de otro mdulo
NombreDelMdulo.NombreDelProcedimiento
Ejemplo: ThisWorkbook.SalirAplic
Para llamar a un procedimiento de otro libro

www.excelavanzado.com 12/18
n TRUCO TIPO
Application.Run "NombreDelLibro!NombreDelMdulo.NombreDelProcedimiento"
Ejemplo: Application.Run "Informe.xls!ThisWorkbook.SalirAplic.xls"
Al ejecutar este comando, el libro Informe.xls debe estar abierto.
57 Proteger con contrasea las macros
Alt + F11 Macros
Herramientas => Propiedades de VBAProject => Proteccin => Bloquear proyecto para visualizacin
=> Contrasea
58 Convertir una funcin en un Complemento
Podemos hacer que una funcin creada por el usuario este disponible en todos los Libros. Para ello,
hemos de convertir el Libro que contiene la funcin en un Complemento.
Los Complementos disponibles se ven haciendo: Herramientas => Complementos.
Excel carga los complementos guardados en el directorio donde tengis instalado MsOffice y luego en
una carpeta que vara con la versin que tengas instalada. Para XP puede ser:
C:\Documents and Settings\Adolfo\Datos de programa\Microsoft\AddIns\ Macros
Para convertir el libro que contiene nuestra Funcin en un Complemento, bastara ir al Men
Archivo/Guardar como y elegir el formato Complemento de Microsoft Excel (*.xla). Si lo guardis en el
directorio que tiene tu versin asignado estar siempre disponible.
Un aspecto a tener en cuenta es que los Complementos no son editables, es decir no podrs modificar
o aadir mas Funciones. Por eso es recomendable guardar primero el Libro en formato *.xls y luego
como *.xla.
59 Hacer referencia a un RANGO
Sintaxis para hacer referencia a un Rango:
Si el rango est en la misma Hoja:
Rango
Si est en otra Hoja del mismo Libro:
'Nombre de Hoja'!Rango
Si est en una Hoja de otro Libro, y el Libro se encuentra en la misma carpeta que el actual:
'[Nombre de Libro.xls]Nombre de Hoja'!Rango
Si est en una Hoja de otro Libro, y el Libro se encuentra en diferente carpeta que el actual: Edicin
'c:\Carpeta\SubCarpeta\[Nombre de Libro.xls]Nombre de Hoja'!Rango
Si el rango est en otro ordenador conectado al nuestro por una Intranet:
'\\Servidor\Carpeta\[Nombre de Libro.xls]Nombre de Hoja'!Rango
Si el rango est en otro ordenador conectado al nuestro por Intrernet:
'http://www.servidor.com/Carpeta/[Libro.xls]Hoja'!Rango
Los apstrofes (') son necesarios si existen espacios.
Ejemplo: Prueba a poner esto en una celda de una hoja de Excel cualquiera:
=BUSCARV(200;'http://www.fcjs.urjc.es/finan/[busquedas.xls]Hoja1'!tab1;2)
Si todo va bien, y tienes acceso a Internet vers como respuesta la letra B.
60 Para localizar la ltima celda de una lista
Sub Final()
While ActiveCell.Value <> "" Macros
ActiveCell.Offset(1, 0).Select
Wend
End Sub
61 Abrir un libro existente:
Sub AbrirLibro()
Workbooks.Open ("C:\Mis documentos\Ejemplo.xls")
End Sub
Activar un libro ya abierto:
Sub ACtivarLibro() Macros
Workbooks("Ejemplo.xls").Activate
End Sub
Crear un libro nuevo:
Sub NuevoLibro()
Workbooks.Add
End Sub
62 Borrar un registro de una tabla que contenga un dato concreto

Macros
www.excelavanzado.com 13/18
n
62 TRUCO TIPO
Sub BorrarFilas()
While ActiveCell.Value <> ""
If ActiveCell.Value <> "Cadiz" Then
ActiveCell.Offset(1, 0).Range("A1").Select Macros
Else
Selection.EntireRow.Delete
End If
Wend
End Sub
63 Creacin de una Frmula personalizada
Clculo del trmino amortizativo de un prstamo tipo francs (de pagos constantes). Similar a la
frmula =PAGO pero en este caso usando tipo nominal y con fraccionamiento.
Function Termino(Principal@, Aos As Byte, tipo_nominal!, fraccionamiento As Byte)
Dim im! 'Tipo efectivo del subperiodo
im = tipo_nominal / fraccionamiento / 100
Termino = Principal * im / (1 - (1 + im) ^ (-Aos * fraccionamiento)) Macros
End Function
Pongamos un ejemplo para un principal de 100.000 , 10 aos, tipo nominal anual del 6%, con
fraccionamiento mensual. En este caso, al ser el fraccionamiento mensual el trmino obtenido es la
mensualidad.
Sub ejemplo()
End Sub
64 Macro que cierra Excel
Se puede asociar a un botn o a un icono.
Sub Auto_Close() Macros
Application.Quit
End Sub
65 Macro que elimina las barras de desplazamiento
Sub Desbarra()
With ActiveWindow
.DisplayHorizontalScrollBar = False Macros
.DisplayVerticalScrollBar = False
End With
End Sub
66 Macro que protege el libro y la hoja
Sub Blindaje()
ActiveWorkbook.Protect Password:="1234" Macros
Sheets("Hoja1").Protect Password:="1234"
End Sub
67 La funcin =EXTRAE y la funcin =ENCONTRAR
Si en B6 pones el nombre de una persona, por ejemplo: "Andrs Suarez Oliveira" la siguiente funcin
obtiene las tres iniciales (ASO). Funcin
=IZQUIERDA(B6;1)&+EXTRAE(B6;ENCONTRAR(" ";B6)+1;1)&EXTRAE(B6;+ENCONTRAR("
";B6;ENCONTRAR(" ";B6)+1)+1;1)
68 La funcin =RESIDUO permite calcular la parte Fraccionario
En Excel disponemos de =ENTERO que calcula la parte entera, pero no disponemos de FRAC que
calcularia la parte fraccionaria. Para calcular la parte Fraccionaria deberamos usar uno de estos dos
Funcin
mtodos:
=A1-ENTERO(A1)
=RESIDUO(A1;1)
69 Macro que borra los ceros de un rango
Sub BorrarCeros()
For Each Celda In Range("C11:G24")
If Celda.Value = 0 Then Celda.ClearContents Macros
Next
End Sub
Si slo se quieren ocultar los ceros se ha de poner formato de celda personalizado de #.###

www.excelavanzado.com 14/18
n TRUCO TIPO
70 Macro que reemplaza una palabra por otra
Sub RemplazarPalabra()
Dim Palabra As String
Dim Hoja As Long
Palabra = Trim(InputBox("Introduzca la palabra a buscar: "))
For Hoja = 1 To Sheets.Count
Sheets(Hoja).Activate Macros
Cells.Replace What:=Palabra, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next Hoja
End Sub
En este caso reemplazamos por "", lo que supone borrar la palabra buscada.
71 Calculo del NIF
Esta funcin calcula el NIF (Nmero de Identificacin Fiscal) utilizado en Espaa.
Function nif(dni As Long) As String Macros
nif = Mid("TRWAGMYFPDXBNJZSQVHLCKE", (dni Mod 23) + 1, 1)
End Function
72 Funcin que calcula la fila que ocupa cierto valor en una tabla
Est pensado para que la matriz se ponga comenzando en la celda A1, sin encabezado y sin que se
repitan los elementos.
Function DimeFila(Rango As Range, Valor_a_buscar) As Integer
For Each c In Rango Macros
If c.Value = Valor_a_buscar Then
DimeFila = c.Row
End If
Next
End Function
73 Para poner el nombre del fichero en una celda
=EXTRAE(CELDA("NOMBREARCHIVO";A1);ENCONTRAR("[";
CELDA("NOMBREARCHIVO";A1))+1;+(ENCONTRAR("]"; Funcin
CELDA("NOMBREARCHIVO";A1)))-ENCONTRAR("[";
CELDA("NOMBREARCHIVO";A1))-1)
Requiere grabar el fichero. Las 4 lneas anteriores son una misma frmula.
74 Para poner el nombre de la hoja en una celda
=EXTRAE(CELDA("nombrearchivo");ENCONTRAR("]";CELDA("nombrearchivo"))+1;255) Funcin
Requiere grabar el fichero.
75 Funcin que muestra la frmula de una celda
Devuelve la frmula que contiene una celda en lenguaje local
Function DisplayCellFormula(InputCell As Range) As String Macros
DisplayCellFormula = InputCell.FormulaLocal
End Function
Si se quita la palabra 'Local' devuelve la frmula en ingls.
76 Determinacin de si un nmero es primo o no es primo
Sub primo()
Dim primo As Boolean
Dim n As Long
Dim d As Long
n = Val(InputBox("Introduce un nmero natural", "Entrada de Datos"))
d=2
primo = True
Do While primo And d < n
If n Mod d = 0 Then Macros
primo = False
End If
d=d+1
Loop

www.excelavanzado.com 15/18
Macros

n TRUCO TIPO
If primo Then
MsgBox (n & " es primo")
Else
MsgBox (n & " no es primo")
End If
End Sub
77 Activar o Desactivar el empleo de la funcin IMPORTARDATOSDINAMICOS
Al intentar operar con formulas que hacen referencia a celdas que provienen de una tabla dinmica
con la versin XP de Excel nos encontramos con que automticamente nos pone la funcin:

IMPORTARDATOSDINAMICOS, y nosotros preferiramos que esto funcionara como antes.


Esto se debe a que desde Office XP la funcin IMPORTARDATOSDINAMICOS se activa por defecto
cuando nos referimos a celdas que forman parte de una tabla dinmica.
Pero podemos desactivarla.
Para ello primero tendremos que llevar hasta alguna de las barras de herramientas un "botn",
Tablas
llamado "General GetPivotData". Dinmicas
Para llevar este botn hasta una barra de herramientas sigue estos pasos.
Selecciona: Ver, Barra de Herramientas, Personalizar.
Ve a la pestaa "Comandos". Ahora selecciona la Categora "Datos" y en la ventana derecha
(Comandos) busca el botn "General Get Pivot Data" (est cerca del final, aproximadamente el octavo
empezando por el final). Lleva este botn a la barra de herramientas de Excel que prefieras (esto se
hace arrastrando el icono y soltndolo en alguna de las barras de herramientas).

Ahora, todo lo que tendremos que hacer es pinchar este botn para activar / desactivar la funcin
IMPORTARDATOSDINAMICOS, que viene activada por defecto.
78 Factorial
Function facto(n)
Dim i As Integer
facto = 1
i=0 Macros
Do
i=i+1
facto = facto * i
Loop While i <> n
End Function
79 Inicializar una matriz
Se inicializa con ERASE
'En este caso se ponen todos los valores a Empty
Sub test()
Dim c(1 To 20, 1 To 10) As Variant
For i = 1 To 20
For j = 1 To 10
c(i, j) = RND
Next j
Next i
MsgBox c(1,1)
Erase c
MsgBox c(1,1) Macros
End Sub
'En este caso se pone la variable c a su estado inicial
'Borrandose los valores, las dimensiones y recuperandose
'la memoria usada.
Sub test1()
Dim c As Variant
c = ActiveSheet.Range("A1:J20").Value
MsgBox c(1, 1)
Erase c

www.excelavanzado.com 16/18
n TRUCO TIPO
'Esto dara error ya que no hay ninguna matriz
MsgBox c(1, 1)
End Sub
80 Evitar los movimientos de pantalla mientras se ejecuta una macro
Para evitar que durante la ejecucin de una macro se vean todos los movimientos y cambios del
cursor, para evitar las "chirivitas" que se ven al ejecutar una macro:
Al principio de la macro escribe Macros
Application.ScreenUpdating = False
y al final
Application.ScreenUpdating = True
81 Formula referida siempre a un mismo rango
=SUMA(INDIRECTO("A1:B2")) Funcin
Esta expresin permite sumar siempre el rango indicado aunque dicho rango se mueva a otra zona de
la hoja.
82 While...Wend
Esta estructura permite ejecutar las instrucciones contenidas mientras la condicin sea verdadera.

La siguiente macro posiciona el cursor en la ltima celda llena de la columna A de la Hoja1.


Sub final1()
i=1
While Worksheets("Hoja1").Cells(i, 1).Value <> ""
Worksheets("Hoja1").Cells(i, 1).Select
i=i+1
Wend Macros
End Sub
Otra variante:
Sub final2()
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Wend
ActiveCell.Offset(-1, 0).Select
End Sub
La segunda macro requiere posicionar inicialmente el cursor en la primera celda llena.
83 Contar cuantas veces se repite un mismo caracter en un texto
=+LARGO(F3)-LARGO(SUSTITUIR(F3;"-";"")) Funcin
Esta frmula cuenta cuantos guiones (-) existen en un texto que esta en la celda F3.
84 Manejo de Rangos
Para sealar una tabla se hace con CurrentRegion. Un ejemplo:
Dim R As Range Macros
Dim filas As Long
Set R = Range("A1").CurrentRegion
filas = R.Rows.Count
85 Ocultar Hojas
Podemos ocultar o mostrar Hojas de un libro. En el ejemplo siguiente, la Hoja2 esta inicialmente
oculta, y para poder trabajar con ella la macro la mustra, y al finalizar la vuelve a ocultar.

Sub oculta() Macros


Sheets("Hoja2").Visible = True
ActiveWorkbook.Sheets("Hoja2").Activate
'... ...
Sheets("Hoja2").Visible = False
End Sub
86 Determinar la fila hasta la que llega un rango
Podemos determinar facilmente la fila hasta la que llega un rango. Supongamos el rango B5:B100, del
que sabemos en que fila acaba (la 100), pero no sabemos en que fila comienza. Ejecutando la macro
la variable n tomar el valor 5, que es la fila de comienzo del rango. Macros
Dim n As Long

www.excelavanzado.com 17/18
86

Macros
n TRUCO TIPO
Range("B100").End(xlUp).Select
n = Selection.Row
www.excelavanzado.com

www.excelavanzado.com 18/18

También podría gustarte