Está en la página 1de 17

21/05/13

Excel Avanzado

Trucos Excel
Comentarios a Adolfo Aparicio

www.excelavanzado.com
Para rellenar una Base de Datos 1 podemos pasar de un dato a otro de la misma fila con <TAB> y si despus de introducir el ltimo dato 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 2 se pulsa con el ratn sobre l y luego se separa. Tambin se puede cambiar el color de un sector pulsando sobre l con el botn derecho del ratn y eligiendo 'Formato de punto de datos...'. Para incluir una nueva serie de datos en un grfico se copia el rango de datos nuevo y se pega sobre el grfico. Para seleccionar una tabla completa 4 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 tambin la tecla [MAYUSCULAS]). Para poder ver las frmulas de una hoja 5 puede hacer lo siguiente: Herramientas, Opciones, pestaa Ver, y en Opciones de Ventana marcar Frmulas. 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. 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 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() www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm
1/17

Base de Datos

Grficos

Grficos

Teclado

Teclado

Macros

21/05/13

Excel Avanzado

Sub Workbook_Open() 'Apertura de libro Balance Workbooks.Open Filename:="C:/Contabilidad/Balance.xls" 'Activacin del libro Informe Windows("Informe.xls").Activate End Sub 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 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. La ruta de mi fichero es: C:\Documents and Settings\Adolfo\Datos de programa\Microsoft\Excel\XLSTART\ [PERSONAL.XLS]Hoja1 Saludo al arrancar Crear un libro Personal.xls como se ha indicado anteriormente con la macro de autoarranque siguiente: 8 Sub Auto_open() 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. Nombrar Hoja desde una celda Esta macro permite asignar el nombre que pongamos en la celda A1 como nombre de la Hoja actual. Sub NombreHoja() ActiveSheet.Name = Range("A1").Value End Sub 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 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. 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. Con la doble opcin (proteccin de hoja y la propiedad EnableSelection) ser imposible seleccionar Macros

Personalizacin

Macros

10

Personalizacin

11

Personalizacin
2/17

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

21/05/13

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. 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 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 Opciones de Ordenacin Al ordenar un rango de datos podemos elegir en Opciones que la ordenacin sea Normal (alfabtica) o segn una de las Listas Personalizadas de Excel.
Puede distinguir maysculas de minsculas. Puede ordenar en vertical (que es lo normal) o en horizontal.

Excel Avanzado

12

Personalizacin

13

Base de Datos

Criterios utilizados para filtrar una 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.
Salario >=30.000

14

Cuando usamos varios criterios estos se relacionan entre si mediante concatenadores lgicos 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 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). Varias lneas en una celda
Para escribir varias lneas en la misma celda puedes escribir lo que quieras y para abrir un espacio hacia abajo en la misma celda pulsar Alt+Enter.

Base de Datos

15

Personalizacin

Mover celdas entre hojas 16


Seleccione el rango a mover. Llvelo hasta la pestaa 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.

Personalizacin

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

17

Personalizacin

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

3/17

21/05/13

Excel Avanzado

Copiar en Excel XP arrastrando con Ctrl 18 Se puede copiar una celda arrastrando con Ctrl desde alguno de los 4 lados del borde de la celda activa. Si no se emplea el Ctrl la celda no se copia, se mueve. Edicin, Rellenar, Series 19 Poner el primer nmero y arrastrar el controlador de relleno con la tecla Ctrl pulsada. Esto nos dar una serie con incrementos unitarios. Algunas teclas de navegacin Ctrl + Intro Fin - Flecha abajo Ctrl + Flecha abajo Ctrl + Fin Alt + AvPg Shift + Barra de desplazamiento vertical u horizontal Ctrl + AvPg Ir a A1 ltima celda de un rango. ltima celda de un rango. Celda inferior derecha al rea activa Pgina a la derecha Permite desplazamientos ms rpidos Avanza entre las hojas de un libro Personalizacin Personalizacin

20

Teclado

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.

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.

21

Personalizacin

Algunas abreviaturas de teclado 22 Ctrl + C Ctrl + V Ctrl + X Ctrl + Z Copiar Pegar Cortar Deshacer Teclado

23 24

Al pulsar Intro se desplaza el cursor hacia abajo, pero se puede cambiar


Puede cambiarlo en Herramientas, Opciones, Modificar, Mover seleccin despus de ENTRAR.

Teclado Grficos
4/17

F11
Pulsando F11 sobre una serie de datos se construye un grfico completo y de forma automtica.

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

21/05/13

Excel Avanzado

Proteger celdas 25 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. Con TAB se puede saltar de una a otra celda de las desbloqueadas. Y con Maysculas + TAB se salta hacia atrs. Ocultar la formula en una celda 26
Con Formato, Celda, Proteger, Oculta se marcan las celdas cuyas frmulas o contenido visto en la lnea de edicin se desee ocultar. Despus se ha de proteger la hoja, con Herramientas, Proteger, Proteger hoja.

Personalizacin

Personalizacin

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

27

Personalizacin

Insertar Comentarios 28
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 comentario, o no verlos en absoluto segn elija una opcin u otra en Herramientas, Opciones, Ver, Comentarios.

Personalizacin

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) Vase el distinto color de la fuente y el 3 como superndice. 29
Volumen (m3)

Personalizacin

Esto se consigue sealando en la barra de frmulas el carcter o caracteres que se quieren cambiar y aplicndoles el formato deseado. 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. 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.

30

Personalizacin

Escribir en varias celdas simultneamente 31


Seale las celdas donde quiere escribir una misma expresin. Incluso si son de rangos separados. Escriba dicha expresin. Y valide su introduccin con Ctrl + Intro.

Personalizacin

Ver todas las frmulas de una hoja 32 Se consigue pulsando Alt + (esto es, la tecla Alt y simultneamente la tecla de 1 que est a la izquierda del nmero 1). Para volver a la situacin anterior volver a pulsar. Tambin se puede conseguir mediante: Herramientas, Opciones, Ver, Frmulas. Borrar Con el comando Edicin, Borrar se puede elegir entre Todo, Formatos, Contenido (Supr) o 33 Comentarios. Para borrar un rango primero seleccione el rango y luego presione Shift mientras arrastra con el www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm Personalizacin
5/17

Personalizacin

21/05/13

33

Excel Avanzado

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. 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 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 *.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:
C:\Documents and Settings\nombreusuario\Datos de programa\Microsoft\Excel\INICIAR

Personalizacin

34

Personalizacin

35

Personalizacin

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. 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 abra un libro u hoja nuevos se dispondr de estos Estilos. 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. 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

36

Personalizacin

37

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

Personalizacin

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:" 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" =CELDA("nombrearchivo") proporciona el nombre y ruta del archivo (siempre que est grabado). En la ayuda hay un error y en

38

Funcin
6/17

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

21/05/13

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) Exportar un mdulo Proporciona el contenido de la celda A3.

Excel Avanzado

39

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 mdulo, por ejemplo "General.Bas", observe que .BAS es la extensin de estos archivos. 4. Pulse sobre el botn Guardar.

Macros

Importar un mdulo 40
1. Active el editor Visual Basic. 2. Seleccione Archivo/ Importar Archivo. Aparece un cuadro de dilogo. 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.

Macros

La clusula Private 41
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 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.

Macros

Inspeccin rpida de variables 42 Cuando ejecuta un programa paso a paso, si sita el puntero de ratn sobre una variable, se muestra el valor de la
misma.

Macros

Modificar el valor de una variable en tiempo de ejecucin 43


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 inspeccin la variable que desee cambiar, cambie su valor sobre la propia ventana de inspeccin y contine la ejecucin del programa.

Macros

Ventana Inmediato 44 Puedes inspeccionar variables desde esta ventana anteponiendo la palabra print antes de la variable, o el signo ?. 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]. . Ejemplo: 45 Sub Dos_a_la_diez() Dim i As Integer Dim t As Integer 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. Propiedad ListFillRange del ComboBox Con esta propiedad deberemos www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm definir los elementos que debe mostrar la lista, debe especificarse el
7/17

Macros

Macros

21/05/13

Excel Avanzado

46

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.). 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 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. Propiedad ListIndex del ComboBox Mediante esta propiedad podremos saber que elemento de la lista es el seleccionado por su nmero de orden. Es decir, si est seleccionado el primero, ListIndex valdr 0, si est seleccionado el segundo valdr 1, etc. Si no hay ningn elemento seleccionado valdr -1. Tenga en cuenta que esta propiedad 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. 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 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 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:

Macros

47

Macros

48

Macros

49

Funcin

50

=PRECIO -1965686714 =AMORTIZ.LIN 1477378140 =CUPON.DIAS -1799028673 =DURACION -1525481390 =VNA.NO.PER -269746088 =DIAS.LAB 270991416

Funcin

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.ceepvirtual.com/materias/12/HEXCEL/trucos.htm 8/17

21/05/13

Excel Avanzado

Cambiar el nombre de un Mludo 51 Al insertar mdulos en el Editor de Visual Basic, se utilizan los nombres: Mdulo 1, Mdulo 2, etc. Podemos cambiar el nombre el un mdulo en sus propiedades (F4). La nica propiedad de un Mdulo es 'name'. 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 ' ' 52 With Application .UserName = "Adolfo Aparicio" .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. Extensiones de los nombres de macro 53 - Mdulos de clase . Extensin .cls . - Formularios . Extensin .frm. - Mdulos estandar. Extensin .bas . Exit Sub, Exit Function 54 Se usan eventualmente para salir de un procedimiento o funcin. 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 Application.Quit End If End Sub Llamada a un procedimiento [Call] NombreProc [(lista de argumentos)]
www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm 9/17

Macros

Macros

Macros

Macros

55

Macros

21/05/13

Excel Avanzado

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() 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 Application.Run "NombreDelLibro!NombreDelMdulo.NombreDelProcedimiento" Ejemplo: Application.Run "Informe.xls!ThisWorkbook.SalirAplic.xls" Al ejecutar este comando, el libro Informe.xls debe estar abierto. Proteger con contrasea las macros 57
Alt + F11 Herramientas => Propiedades de VBAProject => Proteccin => Bloquear proyecto para visualizacin => Contrasea

56

Macros

Macros

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: 58 C:\Documents and Settings\Adolfo\Datos de programa\Microsoft\AddIns\ 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. 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 59 Si est en una Hoja de otro Libro, y el Libro se encuentra en diferente carpeta que el actual: 'c:\Carpeta\SubCarpeta\[Nombre de Libro.xls]Nombre de Hoja'!Rango conectado al nuestro por una Intranet: Edicin
10/17

Macros

Si el rango est en otro ordenador www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

21/05/13

Excel Avanzado

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. Para localizar la ltima celda de una lista 60 Sub Final() While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select Wend End Sub Abrir un libro existente: Sub AbrirLibro() Workbooks.Open ("C:\Mis documentos\Ejemplo.xls") End Sub Activar un libro ya abierto: Sub ACtivarLibro() Workbooks("Ejemplo.xls").Activate End Sub Crear un libro nuevo: Sub NuevoLibro() Workbooks.Add End Sub Borrar un registro de una tabla que contenga un dato concreto Sub BorrarFilas() While ActiveCell.Value <> "" If ActiveCell.Value <> "Cadiz" Then ActiveCell.Offset(1, 0).Range("A1").Select Else Selection.EntireRow.Delete End If Wend End Sub 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)) End Function Macros

61

Macros

62

Macros

63

Macros
11/17

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

21/05/13

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 Macro que cierra Excel Se puede asociar a un botn o a un icono.

Excel Avanzado

64

Sub Auto_Close() Application.Quit End Sub Macro que elimina las barras de desplazamiento Sub Desbarra() With ActiveWindow .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With End Sub Macro que protege el libro y la hoja Sub Blindaje() ActiveWorkbook.Protect Password:="1234" Sheets("Hoja1").Protect Password:="1234" End Sub 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). =IZQUIERDA(B6;1)&+EXTRAE(B6;ENCONTRAR(" ";B6)+1;1)&EXTRAE(B6;+ENCONTRAR(" ";B6;ENCONTRAR(" ";B6)+1)+1;1) 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 mtodos: =A1-ENTERO(A1) =RESIDUO(A1;1) Macro que borra los ceros de un rango Sub BorrarCeros() For Each Celda In Range("C11:G24") If Celda.Value = 0 Then Celda.ClearContents Next End Sub Si slo se quieren ocultar los ceros se ha de poner formato de celda personalizado de #.### Macro que reemplaza una palabra por otra Sub RemplazarPalabra() Dim Palabra As String

Macros

65

Macros

66

Macros

67

Funcin

68

Funcin

69

Macros

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

12/17

21/05/13

70

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 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. Calculo del NIF Esta funcin calcula el NIF (Nmero de Identificacin Fiscal) utilizado en Espaa.

Excel Avanzado

Macros

71

Function nif(dni As Long) As String nif = Mid("TRWAGMYFPDXBNJZSQVHLCKE", (dni Mod 23) + 1, 1) End Function 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.

Macros

72

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 End Function Para poner el nombre del fichero en una celda =EXTRAE(CELDA("NOMBREARCHIVO";A1);ENCONTRAR("["; CELDA("NOMBREARCHIVO";A1))+1;+(ENCONTRAR("]"; CELDA("NOMBREARCHIVO";A1)))-ENCONTRAR("["; CELDA("NOMBREARCHIVO";A1))-1) Requiere grabar el fichero. Las 4 lneas anteriores son una misma frmula.

Macros

73

Funcin

74

Para poner el nombre de la hoja en una celda=EXTRAE(CELDA("nombrearchivo");ENCONTRAR("]";CELDA("nombrearchivo"))+1;255) Requiere grabar el fichero. 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 DisplayCellFormula = InputCell.FormulaLocal End Function Si se quita la palabra 'Local' devuelve la frmula en ingls. Determinacin de si un nmero es primo o no es primo Sub primo() Dim primo As Boolean

Funcin

75

Macros

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

13/17

21/05/13

76

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 primo = False End If d=d+1 Loop If primo Then MsgBox (n & " es primo") Else MsgBox (n & " no es primo") End If End Sub 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", llamado "General GetPivotData". 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. Factorial Function facto(n) Dim i As Integer facto = 1 i= 0 Do i= i+ 1 facto = facto * i Loop While i <> n End Function

Excel Avanzado

Macros

77

Tablas Dinmicas

78

Macros

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

14/17

21/05/13

End Function 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) End Sub

Excel Avanzado

79

Macros

'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 'Esto dara error ya que no hay ninguna matriz MsgBox c(1, 1)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: End Sub 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 80 Application.ScreenUpdating = False y al final Application.ScreenUpdating = True Evitar que al ejecutar una macro nos haga preguntas Al principio de la macro escribe Application.DisplayAlerts= False 81 y al final Application.DisplayAlerts=True Formula referida siempre a un mismo rango =SUMA(INDIRECTO("A1:B2")) Macros Macros

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

15/17

21/05/13

82

=SUMA(INDIRECTO("A1:B2"))

Excel Avanzado

Esta expresin permite sumar siempre el rango indicado aunque dicho rango se mueva a otra zona de la hoja. 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 End Sub

Funcin

83

Macros

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. 84 Contar cuantas veces se repite un mismo caracter en un texto =+LARGO(F3)-LARGO(SUSTITUIR(F3;"-";"")) Esta frmula cuenta cuantos guiones (-) existen en un texto que esta en la celda F3. Manejo de Rangos Para sealar una tabla se hace con CurrentRegion. Un ejemplo: 85 Dim R As Range Dim filas As Long Set R = Range("A1").CurrentRegion filas = R.Rows.Count 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. 86 Sub oculta() Sheets("Hoja2").Visible = True ActiveWorkbook.Sheets("Hoja2").Activate '... ... Sheets("Hoja2").Visible = False End Sub 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. Dim n As Long
www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm 16/17

Funcin

Macros

Macros

87

Macros

21/05/13

Dim n As Long Range("B100").End(xlUp).Select n = Selection.Row

Excel Avanzado

Pgina de Inicio Home

Excel

Financieras

Macros

Adolfo Aparicio 2004-2007

www.ceepvirtual.com/materias/12/HEXCEL/trucos.htm

17/17

También podría gustarte