trucos de excel

16
1 Para rellenar una Base de Datos 30 2 Para separar un sector circular en un gráfico 31 3 Para incluir una nueva serie de datos en un gráfico 32 4 Para seleccionar una tabla completa 33 5 Para poder ver las fórmulas de una hoja 34 6 Auto_Open() y Auto_Close() 35 7 Personal.xls 36 8 Saludo al arrancar 37 9 38 10 Protección de una hoja 39 11 Propiedad EnableSelection 40 12 EnableSelection = xlUnlockedCells 41 13 Opciones de Ordenación 42 14 Criterios utilizados para filtrar una base de datos 43 15 Varias líneas en una celda 44 16 Mover celdas entre hojas 45 17 Insertar filas o columnas rápidamente 46 18 Copiar en Excel XP arrastrando con Ctrl 47 19 Edición, Rellenar, Series 48 20 49 21 Cálculo automático en la barra de estado 50 22 Algunas abreviaturas de teclado 51 23 Al pulsar Intro se desplaza el cursor hacia abajo, pero s 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 Nombrar Hoja desde una celda Algunas teclas de navegación 1 P ara rellenar una B ase de D atos podem os pasarde un dato a otro de la m ism a fila con <TA dato de la fila pulsam os <IN TR O > elcursorse posicionará

Transcript of trucos de excel

Page 1: trucos de excel

TRUCOS DE EXCEL

1 Para rellenar una Base de Datos 302 Para separar un sector circular en un gráfico 313 Para incluir una nueva serie de datos en un gráfico 324 Para seleccionar una tabla completa 335 Para poder ver las fórmulas de una hoja 346 Auto_Open() y Auto_Close() 357 Personal.xls 368 Saludo al arrancar 379 38

10 Protección de una hoja 3911 Propiedad EnableSelection 4012 EnableSelection = xlUnlockedCells 4113 Opciones de Ordenación 4214 Criterios utilizados para filtrar una base de datos 4315 Varias líneas en una celda 4416 Mover celdas entre hojas 4517 Insertar filas o columnas rápidamente 4618 Copiar en Excel XP arrastrando con Ctrl 4719 Edición, Rellenar, Series 4820 4921 Cálculo automático en la barra de estado 5022 Algunas abreviaturas de teclado 5123 Al pulsar Intro se desplaza el cursor hacia abajo, pero se puede c 5224 F11 5325 Proteger celdas 5426 Ocultar la formula en una celda 5527 Copiar una hoja 5628 Insertar Comentarios 5729 Texto con diversos formatos en una misma celda 58

Nombrar  Hoja desde una celda

Algunas teclas de navegación   

1 Para rellenar una Base de Datospodemos pasar de un dato a otro de la misma fila con <TAB> y si después de introducir el último dato de la fila pulsamos <INTRO> el cursor se posicionará en el primer dato de la siguiente fila.

Page 2: trucos de excel

TRUCOS DE EXCEL

Trabajar simultáneamente en varias hojas 59

Escribir en varias celdas simultáneamente 60

Ver todas las fórmulas de una hoja 61

Borrar 62

La fuente por defecto en Excel es la Arial 10 pero se puede cambia 6364

Puede trabajar con Estilos 65

Libros que se abren al iniciar Excel 66

La función =CELDA 67

Exportar un módulo 68

Importar un módulo 69

La cláusula Private 70

Inspección rápida de variables 71

Modificar el valor de una variable en tiempo de ejecución 72

Ventana Inmediato 73

Debug.Print 74

Propiedad ListFillRange del ComboBox 75

Propiedad LinKedCell del ComboBox 76

Propiedad ListIndex del ComboBox 77

La función =TEXTO 78

Curiosidades de alguna funciones con valor propio 79

Cambiar el nombre de un Móludo 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 aplicación 84

Llamada a un procedimiento 85

Proteger con contraseña las macros 86

Convertir una función en un Complemento

SELECCIONE EL TRUCO QUE QUIERA VISUALIZAR

http://soluexcel.blogspot.com

Plantillas   *.xlt

1 Para rellenar una Base de Datospodemos pasar de un dato a otro de la misma fila con <TAB> y si después de introducir el último dato de la fila pulsamos <INTRO> el cursor se posicionará en el primer dato de la siguiente fila.

Page 3: trucos de excel

TRUCOS DE EXCEL

Hacer referencia a un RANGOPara localizar la última celda de una listaAbrir un libro existente:Borrar un registro de una tabla que contenga un dato concretoCreación de una Fórmula personalizadaMacro que cierra ExcelMacro que elimina las barras de desplazamientoMacro que protege el libro y la hojaLa función =EXTRAE y la función =ENCONTRAR

Macro que borra los ceros de un rangoMacro que reemplaza una palabra por otraCalculo del NIFFunción que calcula la fila que ocupa cierto valor en una tablaPara poner el nombre del fichero en una celdaPara poner el nombre de la hoja en una celdaFunción que muestra la fórmula de una celdaDeterminación de si un número es primo o no es primo

FactorialInicializar una matrizEvitar los movimientos de pantalla mientras se ejecuta una macroFormula referida siempre a un mismo rangoWhile...WendContar cuantas veces se repite un mismo caracter en un textoManejo de RangosOcultar HojasDeterminar la fila hasta la que llega un rango

La función =RESIDUO  permite calcular la parte Fraccionario

Activar o Desactivar el empleo de la función  IMPORTARDATOSDINAMICOS

1 Para rellenar una Base de Datospodemos pasar de un dato a otro de la misma fila con <TAB> y si después de introducir el último dato de la fila pulsamos <INTRO> el cursor se posicionará en el primer dato de la siguiente fila.

Page 4: trucos de excel

0123456789:;<=

Page 5: trucos de excel

www.excelavanzado.com 5/17

nº TRUCO TIPO1 Para rellenar una Base de Datos

2 Para separar un sector circular en un gráfico

Gráficos

3 Para incluir una nueva serie de datos en un gráfico Gráficosse copia el rango de datos nuevo y se pega sobre el gráfico.

4 Para seleccionar una tabla completaTeclado

5 Para poder ver las fórmulas de una hoja

Teclado

6 Auto_Open() y Auto_Close()

Macros

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().

End Sub

Sub Workbook_Open()

End Sub7 Personal.xls

Personalizar

La ruta de mi fichero es:

Base de Datos

podemos pasar de un dato a otro de la misma fila con <TAB> y si después de introducir el último dato de la fila pulsamos <INTRO> el cursor se posicionará en el primer dato de la siguiente fila.

se pulsa con el ratón sobre él y luego se separa. También se puede cambiar el color de un sector pulsando sobre él con el botón derecho del ratón y eligiendo 'Formato de punto de datos...'.

basta con posicionarse en cualquier celda de la tabla y pulsar [CTRL]+*. (Si usa el asterisco del teclado general no olvide que se consigue pulsando también la tecla [MAYUSCULAS]).

puede hacer lo siguiente: Herramientas, Opciones, pestaña Ver, y en Opciones de Ventana marcar Fórmulas.

Pero también existe un método 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.

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 días"        Case 14 To 21            saludo = "Buenas tardes"        Case Else            saludo = "Buenas noches"        End Select    MsgBox saludo & " Amo"

Equivalente a auto_open existe otra macro Workbook_Open, pero ésta ha de ser guardada no en un módulo normal, sino en ThisWorkbook. Pruebe lo siguiente:

El siguiente procedimiento permite abrir automáticamente el libro Balance.xls al abrir el libro Informe.xls. El procedimiento ha de estar en ThisWorkbook del libro Informe.xls.

    'Apertura de libro Balance    Workbooks.Open Filename:="C:/Contabilidad/Balance.xls"    'Activación del libro Informe    Windows("Informe.xls").Activate

Podemos crear una macro para que este disponible en todas las hojas de cálculo. 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 través 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 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 aplicación.

Page 6: trucos de excel

www.excelavanzado.com 6/17

nº TRUCO TIPO

7

Personalizar

8 Saludo al arrancar

Macros

End Sub

9

Macros

Esta macro permite asignar el nombre que pongamos en la celda A1 como nombre de la Hoja actual.

End Sub10 Protección de una hoja

Personalizar

11 Propiedad EnableSelection

Personalizar

Para reforzar el bloqueo del paso anterior podemos hacer lo siguiente:

12 EnableSelection = xlUnlockedCells

Personalizar

Ese procedimiento se puede realizar también mediante una macro:Private Sub Workbook_Open()

End Sub

13 Opciones de Ordenación

Puede distinguir mayúsculas de minúsculas.Puede ordenar en vertical (que es lo normal) o en horizontal.

14 Criterios utilizados para filtrar una base de datos

C:\Documents and Settings\Adolfo\Datos de programa\Microsoft\Excel\XLSTART\[PERSONAL.XLS]Hoja1

Crear un libro Personal.xls como se ha indicado anteriormente con la macro de autoarranque siguiente:

Sub Auto_open()   MsgBox ("Que tengas un buen día")

Esta macro creada en el libro Personal.xls hace que al iniciar Excel nos salga un mensaje saludándonos.

Nombrar  Hoja desde una celda

Sub NombreHoja()   ActiveSheet.Name = Range("A1").Value

Las celdas por defecto vienen bloqueadas. Si deseamos desbloquear algunas de ellas debemos hacer lo siguiente: Formato, Celda, pestaña Proteger, quitar la casilla de verificación que esta puesta por defecto en 'Bloqueada'. Si marcamos 'Oculta' no se verá el contenido de la celda en la barra de fórmulas. Esto se hace cuando no se desea que alguien vea la fórmula de una celda. Después se debe proteger la hoja con: Herramientas, Proteger, Proteger hoja. Se le pueden permitir más 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.

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 opción (protección 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.

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 opción (protección 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.

  Worksheets("Hoja1").EnableSelection = xlUnlockedCells

El valor por defecto es xlNoRestrictions

Base de Datos

Al ordenar un rango de datos podemos elegir en Opciones que la ordenación sea Normal (alfabética) o según una de las Listas Personalizadas de Excel.

Base de Datos

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.

Page 7: trucos de excel

www.excelavanzado.com 7/17

nº TRUCO TIPO

14

Salario>=30.000

15 Varias líneas en una celdaPersonalizar

16 Mover celdas entre hojasPersonalizar

17 Insertar filas o columnas rápidamente

Personalizar

En una hoja de Excel que ya tengas rellena, prueba a hacer esto:Vete al principio de lo que tengas escrito

18 Copiar en Excel XP arrastrando con Ctrl

Personalizar

Si no se emplea el Ctrl la celda no se copia, se mueve.19 Edición, Rellenar, Series

Personalizar

20

Teclado

Ctrl + Intro Ir a A1Fin - Flecha abajo Última celda de un rango.Ctrl + Flecha abajo Última celda de un rango.Ctrl + Fin Celda inferior derecha al área activaAlt + AvPg Página a la derecha

Permite desplazamientos más rápidosCtrl + AvPg Avanza entre las hojas de un libro

21 Cálculo automático en la barra de estado

Personalizar

Base de Datos

Cuando usamos varios criterios estos se relacionan entre si mediante concatenadores lógicos Y u O. Por ejemplo, supongamos que deseamos filtrar de una base de datos los registros correspondientes a trabajadores que cumplan que su salario esta comprendido entre 30.000 y 40.000 euros, o bien su edad es de 30 años y se llaman Maria. En ese caso el criterio esta formado por múltiples celdas, de forma que los criterios que estan en la misma fila se han de cumplir ambos (operador Y), y si están en fila distinta se han de cumplir unos u otros (operador O).

Para escribir varias líneas en la misma celda puedes escribir lo que quieras y para abrir un espacio hacia abajo en la misma celda pulsar Alt+Enter.

Seleccione el rango a mover. Llévelo hasta la pestaña de la hoja de destino, presione ALT y mantenga presionado hasta que deje el rango en la parte de la hoja de destino que desee.

Pon el ratón sobre el control de relleno (es el puntito negro que tiene el cursor abajo a la derecha). Sabes que estás encima del control de relleno, porque la cruz blanca que es normalmente el ratón se cambia a color negro

Ahora pulsa la tecla de mayúsculas (no la de bloq. mayús) y sin soltarla pulsa el botón izquierdo del ratón y arrástralo hacia abajo o hacia la derecha, verás que se insertan filas o columnas.

Se puede copiar una celda arrastrando con Ctrl desde alguno de los 4 lados del borde de la celda activa.

Poner el primer número y arrastrar el controlador de relleno con la tecla Ctrl pulsada. Esto nos dará una serie con incrementos unitarios.

Algunas teclas de navegación   

Shift + Barra de desplazamiento vertical u horizontal

Para ir al extremo superior de un bloque de datos, haga doble clic en el extremo superior de la celda seleccionada. Con los demás bloques puede ir a los demás extremos del bloque. Y si lo hace mientras presiona la tecla Shift podrá seleccionar rangos.

Al seleccionar un rango de números vemos su suma en la barra de estado (abajo). Pulsando sobre ella con el botón derecho del ratón podemos cambiar la suma por un promedio, el máximo, el mínimo o contar los elementos seleccionados en el rango.

Page 8: trucos de excel

www.excelavanzado.com 8/17

nº TRUCO TIPO

21

Personalizar

22 Algunas abreviaturas de teclado

Teclado

23 Al pulsar Intro se desplaza el cursor hacia abajo, pero se puede cambiar TecladoPuede cambiarlo en Herramientas, Opciones, Modificar, Mover selección después de ENTRAR.

24 F11GráficosPulsando F11 sobre una serie de datos se construye un gráfico completo y de forma automática.

25 Proteger celdas

Personalizar

26 Ocultar la formula en una celda

Personalizar

27 Copiar una hoja

Personalizar

Para copiar una hoja completa dispone de dos sistemas:

28 Insertar Comentarios

Personalizar

29 Texto con diversos formatos en una misma celda

Personalizar

Se pueden dar distintos formatos a los caracteres o palabras de una misma celda.

Véase el distinto color de la fuente y el 3 como superíndice.

 Ctrl + C  Copiar Ctrl + V  Pegar Ctrl + X  Cortar Ctrl + Z  Deshacer

Con Formato, Celda, Protege, quitar la casilla de verificación en Bloqueada se consigue que en estas celdas se pueda escribir después de ejecutar Herramientas, Proteger, Proteger hoja.

Con TAB se puede saltar de una a otra celda de las desbloqueadas. Y con Mayúsculas + TAB se salta hacia atrás.

Con Formato, Celda, Proteger, Oculta se marcan las celdas cuyas fórmulas o contenido visto en la línea de edición se desee ocultar. Después se ha de proteger la hoja, con Herramientas, Proteger, Proteger hoja.

El primero y más fácil es señalar con el ratón la pestaña de la hoja a copiar, pulsar Ctrl y sin soltar arrastrar la pestaña con el ratón. 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)'

Es segundo método consiste en situar el ratón en el cuadradito que queda como intersección 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.

Se pueden insertar comentarios en las celdas. Para ello, pulse con el botón derecho del ratón y elija 'Insertar Comentario'. Puede verlos completamente, solo la indicación de que la celta tiene un comentario, o no verlos en absoluto según elija una opción u otra en Herramientas, Opciones, Ver, Comentarios.

Por ejemplo: puede poner en una celda la siguiente expresión:   Volumen (m3)

Page 9: trucos de excel

www.excelavanzado.com 9/17

nº TRUCO TIPO

29

Personalizar

30 Trabajar simultáneamente en varias hojas

Personalizar

31 Escribir en varias celdas simultáneamentePersonalizar

32 Ver todas las fórmulas de una hoja

Personalizar

También se puede conseguir mediante: Herramientas, Opciones, Ver, Fórmulas.33 Borrar

Personalizar

34 La fuente por defecto en Excel es la Arial 10 pero se puede cambiar

Personalizar

35

Personalizar

C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIARo bien en:C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\XLSTART

36 Puede trabajar con Estilos

Personalizar

Volumen (m3)

Esto se consigue señalando en la barra de fórmulas el carácter o caracteres que se quieren cambiar y aplicándoles el formato deseado.

Antes de escribir texto, formulas, dar formato, etc.. en varias hojas simultáneamente ha de señalarlas primero.

Si son un conjunto de hojas correlativas, señale la primera haciendo clic con el ratón sobre la pestaña que indica el nombre de la primera y haga Mayúsculas + clic en la última.

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 información y formatos comunes haga clic en cualquier pestaña y así se desactivará el modo de trabajo conjunto.

Señale las celdas donde quiere escribir una misma expresión. Incluso si son de rangos separados. Escriba dicha expresión. Y valide su introducción con Ctrl + Intro.

Se consigue pulsando Alt + º  (esto es, la tecla Alt y simultáneamente la tecla de 1º que está a la izquierda del número 1). Para volver a la situación anterior volver a pulsar.

Con el comando Edición, Borrar se puede elegir entre Todo, Formatos, Contenido (Supr) o Comentarios.

Para borrar un rango primero seleccione el rango y luego presione Shift mientras arrastra con el ratón el indicador de relleno hacia el extremo superior izquierdo del rango. Si no presiona Shift conseguirá borrar el contenido pero no los formatos.

Se puede cambiar para todos los libros nuevos mediante: Herramientas, Opciones, General y elegir la Fuente Estándar y el tamaño.

Pero también se puede cambiar la fuente sólo en el libro activo de la siguiente forma. Activar el libro en 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.

Plantillas   *.xltLas plantillas permiten predefinir formatos, estilos, textos, fórmulas,  barras de herramientas personalizadas e incluso macros, que se utilizarán en todos los nuevos libros abiertos (si la plantilla se llama libro.xlt) u hojas nuevas insertadas (si la plantilla se llama hoja.xlt). También 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 versión XP suele estar en:

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.

En Formato, Estilo puede modificar el estilo normal o crear nuevos estilos, pero sólo estarán disponibles en el Libro Activo.

Si se desea que los estilos estén 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 guárdelo en la carpeta de inicio de Excel (C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIAR). De esta forma cada vez que abra un libro u hoja nuevos se dispondrá de estos Estilos.

Puede convertir el estilo de una celda en un tipo de estilo personalizado. Sitúese en la celda patrón y elija Formato, Estilo y cambie el nombre por uno nuevo de su elección.

Page 10: trucos de excel

www.excelavanzado.com 10/17

nº TRUCO TIPO

36

Personalizar

37 Libros que se abren al iniciar Excel

Personalizar

Los libros que coloque en la carpeta de inicio de Excel:C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIARo bien enC:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\XLSTARTSe abrirán al iniciar Excel.

38 La función =CELDA

Función

La función CELDA es la típica función que sirve para varias cosas según que argumentos se utilicen.

Si se usa con "nombrearchivo"Err:502

Otro argumento interesante es "contenido".

39 Exportar un módulo

Macros

1. Pase al editor de visual basic y active el módulo a exportar.

40 Importar un módulo

Macros

1. Active el editor Visual Basic.

41 La cláusula Private

Macros

42 Inspección rápida de variablesMacros

43 Modificar el valor de una variable en tiempo de ejecución

Macros

44 Ventana InmediatoMacros

45 Debug.Print

Macros

Ejemplo:

Puede transferir los estilos de un libro a otro mediante Formato, Estilo, Combinar. Para ello abra los dos ficheros (o más) y ejecute los pasos señalados desde el fichero hacia el que quiere llevar los nuevos estilos.

También puede definir una carpeta de inicio de Excel en Herramientas, Opciones, General, "Al inicio, abrir todos los libros en:"

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".

=CELDA("contenido";A3)      Proporciona el contenido de la celda A3.

2. Seleccione Archivo/ Exportar archivo. Aparece un cuadro de diálogo.3. En cuadro de edición Nombre de Archivo, teclee el nombre para el archivo donde se guardará el módulo, por ejemplo "General.Bas", observe que .BAS es la extensión de estos archivos.

4. Pulse sobre el botón Guardar.

2.  Seleccione  Archivo/ Importar Archivo. Aparece un cuadro de diálogo.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.

Puede anteponer la cláusula private a todos los procedimientos y funciones que sean llamados sólo desde el mismo módulo, es una forma de ahorrar memoria y hacer que el programa corra un poco más rápido. Si necesita llamar un procedimiento o función desde otro módulo, nunca debe precederlo por la cláusula private, recuerde que esta cláusula restringe el ámbito de utilización de un procedimiento a su propio módulo.

Cuando ejecuta un programa paso a paso, si sitúa el puntero de ratón sobre una variable, se muestra el valor de la misma.

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.

Para ello agregue a la ventana de inspección la variable que desee cambiar, cambie su valor sobre la propia ventana de inspección y continúe la ejecución del programa.

Puedes inspeccionar variables desde esta ventana anteponiendo la palabra print antes de la variable, o el signo ?.

Esta expresión permite efectuar la depuración del programa de forma más cómoda. 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].

Sub Dos_a_la_diez()   Dim i As Integer

Page 11: trucos de excel

www.excelavanzado.com 11/17

nº TRUCO TIPO

45

Macros

End SubDespués de efectuada la depuración se quita la línea que contiene el comando Debug.Print.

46 Propiedad ListFillRange del ComboBox

Macros

47 Propiedad LinKedCell del ComboBox

Macros

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

48 Propiedad ListIndex del ComboBox

Macros

49 La función =TEXTO

Funciónvalor: es el número que queremos convertir a textoformato: es el formato que queremos darle. Es un argumento optativo

Pruebe =TEXTO(;"43")Pero si prueba =TEXTO("43") obtendrá un error

50 Curiosidades de alguna funciones con valor propio

Función

Las funciones que he visto que tienen valor propio son las siguientes:=PRECIO Err:508=AMORTIZ.LIN Err:508=CUPON.DIAS Err:508=DURACION Err:508=VNA.NO.PER Err:508=DIAS.LAB Err:508

51 Cambiar el nombre de un Móludo

Macros

   Dim t As Integer   t = 1   For i = 1 To 10      t = t * 2      Debug.Print "Dos a la " & i & " = " & t   Next   MsgBox t

Con esta propiedad deberemos definir los elementos que debe mostrar la lista, debe especificarse el rango que contiene los elementos a mostrar, el rango debe ser una columna (o dos , o tres, etc.).

Cuidado con esta propiedad, tenga en cuenta que los elementos de la lista son tratados como datos de tipo String aunque contenga números o fechas, por lo que en estos casos, a veces será necesario aplicar funciones de conversión de datos antes que el dato se copie en la hoja. Por ejemplo, si alguna vez construye una lista con números verá que el dato seleccionado se alinea a la derecha, si son fechas, no se muestra con el formato correspondiente.

Mediante esta propiedad podremos saber que elemento de la lista es el seleccionado por su número de tipo String aunque contenga números o fechas, por lo que en estos casos, a veces será necesario aplicar 1, etc. Si no hay ningún elemento seleccionado valdrá -1. Tenga en cuenta que esta propiedad sólo está disponible en tiempo de ejecución, es decir la podremos leer mientras esté funcionando el programa, no se puede establecer en modo diseño, observe que no aparece en la ventana propiedades del cuadro combinado.

Esta función permite convertir un valor numérico en un texto. Su función contraria es =VALOR.Al escribir un número en una celda queda alineado a la derecha, si se escribe como texto (anteponiéndole una comilla simple) quedará alineado a la izquierda. Ejemplo: '54

La función TEXTO tiene dos argumentos que según la ayuda son: =TEXTO(valor;formato)

Pero la ayuda no se corresponde con la realidad de la función, ya que en la práctica esta función tiene los argumentos cambiados de orden.

Algunos nombres de función tienen valor propio si se escriben un una celda y sin argumentos. O al menos eso es lo que he podido comprobar en la versión XP.

Ponga en una celda cualquiera +PRECIO y al pulsar intro verá que aparece un valor. A mi me da -1965686714.

y muchas más. Por lo que veo, son las que aparece al ampliar las funciones al instalar las complementarias, con

Herramientas, Complementos, Herramientas para Análisis.

Al insertar módulos en el Editor de Visual Basic, se utilizan los nombres: Módulo 1, Módulo 2, etc. Podemos cambiar el nombre el un módulo en sus propiedades (F4). La única propiedad de un Módulo es 'name'.

Page 12: trucos de excel

www.excelavanzado.com 12/17

nº TRUCO TIPO52 Nombre de usuario: UserName

Macros

'' Macro1 Macro' Macro grabada el 06/08/2004 por Adolfo''

End SubAhora vamos a crear la función =Usuario siguiendo el procedimiento inverso.

End FunctionPuede probarla. La encontrará en la categoría de Funciones Definidas por el usuario.

53 Extensiones de los nombres de macro

Macros

54 Exit Sub, Exit Function MacrosSe usan eventualmente para salir de un procedimiento o función.

55 Macro que pregunta si se desea salir de la aplicación

Macros

End Sub56 Llamada a un procedimiento

Macros

End Sub

End SubPara llamar a un procedimiento de otro módulo

Para llamar a un procedimiento de otro libro

Al ejecutar este comando, el libro Informe.xls debe estar abierto.57 Proteger con contraseña las macros

MacrosAlt + F11

Vamos a crear una función que proporcione el nombre de usuario. Primero utilizando la Grabadora de Macros. Haga lo siguiente. Active la Grabadora y luego seleccione Herramientas, Opciones, pestaña 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()

    With Application        .UserName = "Adolfo Aparicio"        .StandardFont = "Arial"        .StandardFontSize = "10"        .DefaultFilePath = "C:\Documents and Settings\Adolfo\Mis documentos"        .EnableSound = False        .RollZoom = False    End With

Funcition Usuario()    Usuario = Application.UserName

- Módulos de clase. Extensión .cls.- Formularios. Extensión .frm.- Módulos estandar. Extensión .bas.

Sub SalirAplic()    If MsgBox("¿Quiere salir de la aplicación", vbQuestion + vbYesNo, "Ultima pregunta") = vbYes Then

        Application.Quit    End If

[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 paréntesis y pueden ser valores o variables.

Sub Suma(a As Byte, b As Byte)    MsgBox "La suma es " & a + b

Sub sumar()    Call Suma(3, 4)

NombreDelMódulo.NombreDelProcedimientoEjemplo: ThisWorkbook.SalirAplic

Application.Run "NombreDelLibro!NombreDelMódulo.NombreDelProcedimiento"Ejemplo: Application.Run "Informe.xls!ThisWorkbook.SalirAplic.xls"

Page 13: trucos de excel

www.excelavanzado.com 13/17

nº TRUCO TIPO57

Macros

58 Convertir una función en un Complemento

Macros

Los Complementos disponibles se ven haciendo: Herramientas => Complementos.

C:\Documents and Settings\Adolfo\Datos de programa\Microsoft\AddIns\

59 Hacer referencia a un RANGO

Edición

Sintaxis para hacer referencia a un Rango:Si el rango está en la misma Hoja:RangoSi está en otra Hoja del mismo Libro:

Si está en una Hoja de otro Libro, y el Libro se encuentra en la misma carpeta que el actual:

Si está en una Hoja de otro Libro, y el Libro se encuentra en diferente carpeta que el actual:

Si el rango está en otro ordenador conectado al nuestro por una Intranet:

Si el rango está en otro ordenador conectado al nuestro por Intrernet:

=BUSCARV(200;'http://www.fcjs.urjc.es/finan/[busquedas.xls]Hoja1'!tab1;2)Si todo va bien, y tienes acceso a Internet verás como respuesta la letra B.

60 Para localizar la última celda de una lista

Macros

End Sub61 Abrir un libro existente:

Macros

End Sub Activar un libro ya abierto:

End Sub Crear un libro nuevo:

End Sub 62 Borrar un registro de una tabla que contenga un dato concreto

Macros

Herramientas => Propiedades de VBAProject => Protección => Bloquear proyecto para visualización => Contraseña

Podemos hacer que una función creada por el usuario este disponible en todos los Libros. Para ello, hemos de convertir el Libro que contiene la función en un Complemento.

Excel carga los complementos guardados en el directorio donde tengáis instalado MsOffice y luego en una carpeta que varía con la versión que tengas instalada. Para XP puede ser:

Para convertir el libro que contiene nuestra Función en un Complemento, bastara ir al Menú Archivo/Guardar como y elegir el formato Complemento de Microsoft Excel (*.xla). Si lo guardáis en el directorio que tiene tu versión asignado estará siempre disponible.

Un aspecto a tener en cuenta es que los Complementos no son editables, es decir no podrás modificar o añadir mas Funciones. Por eso es recomendable guardar primero el Libro en formato *.xls y luego como *.xla.

'Nombre de Hoja'!Rango

'[Nombre de Libro.xls]Nombre de Hoja'!Rango

'c:\Carpeta\SubCarpeta\[Nombre de Libro.xls]Nombre de Hoja'!Rango

'\\Servidor\Carpeta\[Nombre de Libro.xls]Nombre de Hoja'!Rango

'http://www.servidor.com/Carpeta/[Libro.xls]Hoja'!RangoLos apóstrofes (') son  necesarios si existen espacios.Ejemplo: Prueba a poner esto en una celda de una hoja de Excel cualquiera:

Sub Final()    While ActiveCell.Value <> ""        ActiveCell.Offset(1, 0).Select    Wend

Sub AbrirLibro()    Workbooks.Open ("C:\Mis documentos\Ejemplo.xls")

Sub ACtivarLibro()    Workbooks("Ejemplo.xls").Activate

Sub NuevoLibro()    Workbooks.Add

Sub BorrarFilas()    While ActiveCell.Value <> ""        If ActiveCell.Value <> "Cadiz" Then            ActiveCell.Offset(1, 0).Range("A1").Select        Else            Selection.EntireRow.Delete

Page 14: trucos de excel

www.excelavanzado.com 14/17

nº TRUCO TIPO

62

Macros

End Sub63 Creación de una Fórmula personalizada

Macros

End Function

End Sub64 Macro que cierra Excel

MacrosSe puede asociar a un botón o a un icono.

End Sub65 Macro que elimina las barras de desplazamiento

Macros

End Sub66 Macro que protege el libro y la hoja

Macros

End Sub67

Función

68

Función

=A1-ENTERO(A1)=RESIDUO(A1;1)

69 Macro que borra los ceros de un rango

Macros

End SubSi sólo se quieren ocultar los ceros se ha de poner formato de celda personalizado de #.###

70 Macro que reemplaza una palabra por otra

Macros

        End If    Wend

Cálculo del término amortizativo de un préstamo tipo francés (de pagos constantes). Similar a la fórmula =PAGO pero en este caso usando tipo nominal y con fraccionamiento.

Function Termino(Principal@, Años As Byte, tipo_nominal!, fraccionamiento As Byte)    Dim im! 'Tipo efectivo del subperiodo    im = tipo_nominal / fraccionamiento / 100    Termino = Principal * im / (1 - (1 + im) ^ (-Años * fraccionamiento))

Pongamos un ejemplo para un principal de 100.000 €, 10 años, tipo nominal anual del 6%, con fraccionamiento mensual. En este caso, al ser el fraccionamiento mensual el término obtenido es la mensualidad.

Sub ejemplo()

Sub Auto_Close()    Application.Quit

Sub Desbarra()    With ActiveWindow        .DisplayHorizontalScrollBar = False        .DisplayVerticalScrollBar = False    End With

Sub Blindaje()    ActiveWorkbook.Protect Password:="1234"    Sheets("Hoja1").Protect Password:="1234"

La función =EXTRAE y la función =ENCONTRARSi en B6 pones el nombre de una persona, por ejemplo: "Andrés Suarez Oliveira" la siguiente función obtiene las tres iniciales (ASO).

=IZQUIERDA(B6;1)&+EXTRAE(B6;ENCONTRAR(" ";B6)+1;1)&EXTRAE(B6;+ENCONTRAR(" ";B6;ENCONTRAR(" ";B6)+1)+1;1)

La función =RESIDUO  permite calcular la parte FraccionarioEn Excel disponemos de =ENTERO que calcula la parte entera, pero no disponemos de FRAC que calcularia la parte fraccionaria. Para calcular la parte Fraccionaria deberíamos usar uno de estos dos métodos:

Sub BorrarCeros()    For Each Celda In Range("C11:G24")        If Celda.Value = 0 Then Celda.ClearContents    Next

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

Page 15: trucos de excel

www.excelavanzado.com 15/17

nº TRUCO TIPO

70

Macros

End SubEn este caso reemplazamos por "", lo que supone borrar la palabra buscada.

71 Calculo del NIF

MacrosEsta función calcula el NIF (Número de Identificación Fiscal) utilizado en España.

End Function72 Función que calcula la fila que ocupa cierto valor en una tabla

Macros

End Function73 Para poner el nombre del fichero en una celda

Función

=EXTRAE(CELDA("NOMBREARCHIVO";A1);ENCONTRAR("[";CELDA("NOMBREARCHIVO";A1))+1;+(ENCONTRAR("]";CELDA("NOMBREARCHIVO";A1)))-ENCONTRAR("[";CELDA("NOMBREARCHIVO";A1))-1)Requiere grabar el fichero. Las 4 líneas anteriores son una misma fórmula.

74

Función=EXTRAE(CELDA("nombrearchivo");ENCONTRAR("]";CELDA("nombrearchivo"))+1;255)Requiere grabar el fichero.

75 Función que muestra la fórmula de una celda

Macros

Devuelve la fórmula que contiene una celda en lenguaje local

End FunctionSi se quita la palabra 'Local' devuelve la fórmula en inglés.

76 Determinación de si un número es primo o no es primo

Macros

End Sub77

        Cells.Replace What:=Palabra, Replacement:="", LookAt:=xlPart, _        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _        ReplaceFormat:=False    Next Hoja

Function nif(dni As Long) As String    nif = Mid("TRWAGMYFPDXBNJZSQVHLCKE", (dni Mod 23) + 1, 1)

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        If c.Value = Valor_a_buscar Then            DimeFila = c.Row        End If    Next

Para poner el nombre de la hoja en una celda

Function  DisplayCellFormula(InputCell As Range) As String    DisplayCellFormula = InputCell.FormulaLocal

Sub primo()    Dim primo As Boolean    Dim n As Long    Dim d As Long    n = Val(InputBox("Introduce un número natural", "Entrada de Datos"))    d = 2    primo = True    Do While primo And d < n        If n Mod d = 0 Then            primo = False        End If        d = d + 1    Loop    If primo Then        MsgBox (n & " es primo")    Else        MsgBox (n & " no es primo")    End If

Activar o Desactivar el empleo de la función  IMPORTARDATOSDINAMICOS

Tablas Dinámicas

Page 16: trucos de excel

www.excelavanzado.com 16/17

nº TRUCO TIPO77

Pero podemos desactivarla.

Para llevar este botón hasta una barra de herramientas sigue estos pasos.Selecciona: Ver, Barra de Herramientas, Personalizar.

78 Factorial

Macros

End Function79 Inicializar una matriz

Macros

'En este caso se ponen todos los valores a Empty

End Sub'En este caso se pone la variable c a su estado inicial'Borrandose los valores, las dimensiones y recuperandose'la memoria usada.

End Sub80 Evitar los movimientos de pantalla mientras se ejecuta una macro

MacrosAl principio de la macro escribe

Tablas Dinámicas

Al intentar operar con formulas que hacen referencia a celdas que provienen de una tabla dinámica con la versión XP de Excel nos encontramos con que automáticamente nos pone la función:

IMPORTARDATOSDINAMICOS, y nosotros preferiríamos que esto funcionara como antes.Esto se debe a que desde Office XP la función IMPORTARDATOSDINAMICOS se activa por defecto cuando nos referimos a celdas que forman parte de una tabla dinámica.

Para ello primero tendremos que llevar hasta alguna de las barras de herramientas un "botón", llamado "General GetPivotData".

Ve a la pestaña "Comandos". Ahora selecciona la Categoría "Datos" y en la ventana derecha (Comandos) busca el botón "General Get Pivot Data" (está cerca del final, aproximadamente el octavo empezando por el final). Lleva este botón a la barra de herramientas de Excel que prefieras (esto se hace arrastrando el icono y soltándolo en alguna de las barras de herramientas).

Ahora, todo  lo que tendremos que hacer es pinchar este botón para activar / desactivar la función IMPORTARDATOSDINAMICOS, que viene activada por defecto.

Function facto(n)    Dim i As Integer    facto = 1    i = 0    Do        i = i + 1        facto = facto * i    Loop While i <> n

Se inicializa con ERASE

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)

Sub test1()    Dim c As Variant    c = ActiveSheet.Range("A1:J20").Value    MsgBox c(1, 1)    Erase c    'Esto dara error ya que no hay ninguna matriz    MsgBox c(1, 1)

Para evitar que durante la ejecución de una macro se vean todos los movimientos y cambios del cursor, para evitar las "chirivitas" que se ven al ejecutar una macro:

    Application.ScreenUpdating = False

Page 17: trucos de excel

www.excelavanzado.com 17/17

nº TRUCO TIPO

80

y al final

Macros

81 Formula referida siempre a un mismo rango

Función=SUMA(INDIRECTO("A1:B2"))

82 While...Wend

Macros

Esta estructura permite ejecutar las instrucciones contenidas mientras la condición sea verdadera.

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

End SubOtra variante:

End SubLa segunda macro requiere posicionar inicialmente el cursor en la primera celda llena.

83 Contar cuantas veces se repite un mismo caracter en un textoFunción=+LARGO(F3)-LARGO(SUSTITUIR(F3;"-";""))

Esta fórmula cuenta cuantos guiones (-) existen en un texto que esta en la celda F3.84 Manejo de Rangos

Macros

Para señalar una tabla se hace con CurrentRegion. Un ejemplo:

filas = R.Rows.Count85 Ocultar Hojas

Macros

End Sub86 Determinar la fila hasta la que llega un rango

Macros

Range("B100").End(xlUp).Selectn = Selection.Row

    Application.ScreenUpdating = True

Esta expresión permite sumar siempre el rango indicado aunque dicho rango se mueva a otra zona de la hoja.

Sub final1()    i = 1    While Worksheets("Hoja1").Cells(i, 1).Value <> ""        Worksheets("Hoja1").Cells(i, 1).Select        i = i + 1    Wend

Sub final2()    While ActiveCell.Value <> ""        ActiveCell.Offset(1, 0).Select    Wend    ActiveCell.Offset(-1, 0).Select

Dim R As RangeDim filas As LongSet R = Range("A1").CurrentRegion

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()    Sheets("Hoja2").Visible = True    ActiveWorkbook.Sheets("Hoja2").Activate    '... ...    Sheets("Hoja2").Visible = False

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.

Dim n As Long

 www.excelavanzado.com