145
MANUAL 400 Macros para Excel por Elsa Matilde Meyer (para versiones Excel del 2000 al 2007 inclusive) Copyright © 2.005-2.010 Elsa M.Meyer (Elsamatilde) El presente manual intenta guiar al usuario a potenciar el uso de las planillas Excel, mediante programación. Especialmente indicado para usuarios que ya han experimentado con sus primeras rutinas. Cada capítulo presenta rutinas para determinados temas. Así se pueden encontrar temas como Trabajando con Directorios, con Libros, con Hojas, con Objetos, Filtros, Impresión, otras aplicaciones y más. Además un capítulo con el desarrollo paso a paso de 20 'funciones personales' En esta VERSIÓN DEMO, solo se encuentran disponibles los temas que aparecen en el índice con Mayúsculas. Versión Plus VERSIÓN DEMO

Manual 400 Macros Plus

Embed Size (px)

Citation preview

MANUAL 400 Macros para Excel

por Elsa Matilde Meyer

(para versiones Excel del 2000 al 2007 inclusive)

Copyright © 2.005-2.010 Elsa M.Meyer (Elsamatilde)

El presente manual intenta guiar al usuario a potenciar el uso delas planillas Excel, mediante programación.

Especialmente indicado para usuarios que ya hanexperimentado con sus primeras rutinas. Cada capítulo presenta rutinas para determinados temas. Así sepueden encontrar temas como Trabajando con Directorios, conLibros, con Hojas, con Objetos, Filtros, Impresión, otrasaplicaciones y más. Además un capítulo con el desarrollo paso a paso de 20'funciones personales'

En esta VERSIÓN DEMO, solo se encuentran disponibles lostemas que aparecen en el índice con Mayúsculas.

Versión Plus

VERSIÓN DEMO

Tabla de Contenidos

0

Cap. I 1 - Introducción 15

................................................................................................................................... 151 BIENVENID@S

................................................................................................................................... 172 BREVE INTRODUCCIÓN AL EDITOR

................................................................................................................................... 183 Cómo crear una macro

................................................................................................................................... 184 Dónde colocar las macros

................................................................................................................................... 185 Cómo ejecutar una macro

................................................................................................................................... 186 Acerca de las macros Auto-Open

................................................................................................................................... 197 Acerca de las macros Auto-Close

................................................................................................................................... 198 Cómo proteger un proyecto

................................................................................................................................... 199 Evitar que las macros se vean desde el menú

................................................................................................................................... 1910 Otras consideraciones: ¿Cómo...?

Cap. II 2 - Eventos, Metodos y Propiedades 21

................................................................................................................................... 211 EVENTOS - LISTADO

................................................................................................................................... 222 Especial: Eventos de Hojas

.......................................................................................................................................................... 22Cambios y Selección en Hoja

................................................................................................................................... 223 Metodos

................................................................................................................................... 234 Propiedades

Cap. III 3 - Tratamiento de Variables 25

................................................................................................................................... 251 Tipo de Variables

................................................................................................................................... 252 DURACIÓN DE LAS VARIABLES

................................................................................................................................... 263 Determinar el tipo de variable

................................................................................................................................... 264 Convirtiendo variables

................................................................................................................................... 265 Limpiando variables

Cap. IV 4 - Trabajando con Cadenas 28

................................................................................................................................... 281 EXTRAER PARTES DE UNA CADENA

................................................................................................................................... 292 Armando cadenas

................................................................................................................................... 293 Obtener el largo de una cadena

................................................................................................................................... 294 Introducir caracteres especiales

................................................................................................................................... 295 Detectar o encontrar texto en una cadena

................................................................................................................................... 296 Creando cadenas de largo fijo

................................................................................................................................... 297 Obtener la parte numerica de una cadena

Cap. V 5 - Trabajando con Directorios y Archivos 31

Manual 400 Macros PlusI

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 311 Creando un nuevo directorio

................................................................................................................................... 312 ESTABLECER LA RUTA DE ACCESO PREDETERMINADA

................................................................................................................................... 313 Establecer si un directorio existe

................................................................................................................................... 314 Establecer si un archivo existe en un directorio

................................................................................................................................... 325 Eliminar un archivo de un directorio

................................................................................................................................... 326 Establecer nueva unidad de disco

................................................................................................................................... 327 Establecer nuevo directorio o carpeta

................................................................................................................................... 328 Crear lista de archivos de una carpeta

................................................................................................................................... 329 Copiar todos los libros de una carpeta en otra

................................................................................................................................... 3210 Obtener propiedad fecha y hora de archivos

................................................................................................................................... 3211 Obtener tamaño de archivos

Cap. VI 6 - Trabajando con Libros 34

................................................................................................................................... 341 Principales Metodos y Propiedades de Libros

................................................................................................................................... 342 Abriendo Libros

.......................................................................................................................................................... 34Abrir un segundo libro

.......................................................................................................................................................... 34Abrir un libro con clave

.......................................................................................................................................................... 34Abrir libro buscando la carpeta que lo contiene

.......................................................................................................................................................... 34Ejecutar macro al abrir un libro

.......................................................................................................................................................... 34Inhabilitar el mensaje de actualizar vínculos al abrir un libro

.......................................................................................................................................................... 34Inhabilitar la opción de actualizar vínculos al abrir otros libros

.......................................................................................................................................................... 35Al abrir libro incrementar un contador

.......................................................................................................................................................... 35Al abrir libro ocultarlo (minimizarlo) y mostrar un Userform

.......................................................................................................................................................... 35Impedir que un libro se abra si la fecha caducó

................................................................................................................................... 353 Seleccionar un libro

................................................................................................................................... 354 Obtener el nombre de un libro

................................................................................................................................... 355 Obtener la ruta de un libro

................................................................................................................................... 356 Activar otro libro distinto al actual

................................................................................................................................... 367 Impedir que se abran otros libros mientras esté nuestro libro abierto

................................................................................................................................... 368 CARGAR TODO EL LIBRO EN MAYÚSCULAS

................................................................................................................................... 379 Modificar la forma de cálculo del libro o de una hoja

................................................................................................................................... 3710 Eliminar vinculos externos

................................................................................................................................... 3711 Eliminar vinculos internos

................................................................................................................................... 3712 Saber si uno o más libros existen en una carpeta

................................................................................................................................... 3713 Crear libro como copia de cierta hoja

................................................................................................................................... 3714 Copiar un libro sin abrirlo

................................................................................................................................... 3815 Cambiar el nombre de un libro sin abrirlo

................................................................................................................................... 3816 Eliminar Nombres de Rangos en libro

................................................................................................................................... 3817 Armar un indice vinculado a cada hoja del libro

................................................................................................................................... 3818 Guardando Libros

.......................................................................................................................................................... 38Guardar el libro activo

.......................................................................................................................................................... 38Guardar un libro con otro nombre

.......................................................................................................................................................... 38Guardar un libro con otro formato (txt)

IIContents

II

© <2005=2010> Elsa M.Meyer (Elsamatilde)

.......................................................................................................................................................... 38Guardar un libro con clave

.......................................................................................................................................................... 39Guardar un libro cuyo nombre será el valor de una variable

.......................................................................................................................................................... 39Guardar un libro cuyo nombre serán datos concatenados

.......................................................................................................................................................... 39Guardar libro sin módulos

.......................................................................................................................................................... 39Guardar libro sin código o macros

................................................................................................................................... 3919 Cerrando Libros

.......................................................................................................................................................... 39Cerrar todos los libros en uso

.......................................................................................................................................................... 39Cerrar un solo libro

.......................................................................................................................................................... 39Cerrar un libro SIN guardar los cambios

.......................................................................................................................................................... 40Cerrar un libro guardando los cambios

.......................................................................................................................................................... 40Impedir el uso del botón Cerrar del libro

.......................................................................................................................................................... 40Controlar errores antes de cerrar un libro

Cap. VII 7 - Trabajando con Hojas 42

................................................................................................................................... 421 MÉTODOS PARA HOJAS

................................................................................................................................... 442 Propiedades de las Hojas

................................................................................................................................... 443 Activar o seleccionar otras hojas distintas a la actual

................................................................................................................................... 444 Seleccionar la hoja anterior o posterior a la activa

................................................................................................................................... 445 Seleccionar todas las hojas de un libro

................................................................................................................................... 446 Devolver el nombre de la hoja en una variable

................................................................................................................................... 447 Formas de mostrar el nombre de hojas

................................................................................................................................... 448 Devolver el número de hoja en una variable

................................................................................................................................... 459 Proteger una hoja

................................................................................................................................... 4510 Desproteger una hoja

................................................................................................................................... 4511 Vista previa de la hoja activa y de otras hojas

................................................................................................................................... 4512 Imprimir hojas

................................................................................................................................... 4513 Insertar hojas

................................................................................................................................... 4514 Eliminar hojas

................................................................................................................................... 4515 Copiar hojas

................................................................................................................................... 4616 Crear hoja/libro con un gráfico

................................................................................................................................... 4617 Ocultar hojas

................................................................................................................................... 4618 Mostrar hoja oculta

................................................................................................................................... 4619 Mostrar todas las hojas ocultas de un libro

................................................................................................................................... 4620 Impedir que se vean datos al entrar a hoja

................................................................................................................................... 4621 Cambiar nombre a pestaña o Etiqueta de hojas

................................................................................................................................... 4622 Cambiar color de pestaña o Etiqueta de Hojas

................................................................................................................................... 4723 Mover o cambiar una hoja de lugar

................................................................................................................................... 4724 Insertar imagen en una hoja

................................................................................................................................... 4725 Ordenar las hojas alfabéticamente

................................................................................................................................... 4726 Armar una lista con el nombre de las hojas

................................................................................................................................... 4727 Modificar todos los hipervínculos de la hoja

................................................................................................................................... 4728 Establecer filas y columnas a mostrar al abrir hoja

................................................................................................................................... 4729 Establecer area visible de una hoja

Manual 400 Macros PlusIII

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 4830 Restablecer área visible en hoja

................................................................................................................................... 4831 Crear hojas según valores en una lista

................................................................................................................................... 4832 Aplicar Zoom a un rango u hoja

................................................................................................................................... 4833 Obtener el valor del Zoom aplicado a la hoja

................................................................................................................................... 4834 Ejecutar rutina en todas las hojas del libro

................................................................................................................................... 4835 Hojas de Diálogo: cómo ocultarlas

................................................................................................................................... 4836 Eliminar todos los comentarios de la hoja

................................................................................................................................... 4937 Activar hoja cada tanto tiempo

Cap. VIII 8 - Trabajando con Celdas y Rangos 51

................................................................................................................................... 511 Principales Méotodos para Rangos

................................................................................................................................... 512 PRINCIPALES PROPIEDADES DE RANGOS

................................................................................................................................... 523 Selección de Celdas o Rangos

................................................................................................................................... 524 Selección de rango utilizando variables

................................................................................................................................... 525 Seleccionar celdas a cierta distancia de la celda activa

................................................................................................................................... 536 Ampliar un rango seleccionado

................................................................................................................................... 537 SELECCIONAR LA REGIÓN DE LA CELDA ACTIVA

................................................................................................................................... 538 Seleccionar hasta la última celda vacía -Fin de rango

................................................................................................................................... 539 Devolver la direccion de un rango o celda

................................................................................................................................... 5410 Encontrar última celda con datos

................................................................................................................................... 5411 Ubicarnos en primer celda libre de una columna

................................................................................................................................... 5412 Guardar el numero de la primer fila libre

................................................................................................................................... 5413 Obtener ultima columna con datos

................................................................................................................................... 5414 Obtener el número de columnas de un rango

................................................................................................................................... 5415 Obtener el número de filas de un rango

................................................................................................................................... 5416 Contar la cantidad de objetos de un rango

................................................................................................................................... 5517 Acumular lo que se carga en 1 celda

................................................................................................................................... 5518 Combinar/Descombinar celdas seleccionadas

................................................................................................................................... 5519 Borrar o Limpiar celdas o rangos

................................................................................................................................... 5520 Borrar celdas con cierto contenido

................................................................................................................................... 5521 Eliminar celdas o rangos

................................................................................................................................... 5522 Eliminar filas en blanco

................................................................................................................................... 5523 Eliminar varias filas segun condicion

................................................................................................................................... 5624 Insertar Filas

................................................................................................................................... 5625 Eliminar Filas

................................................................................................................................... 5626 Ocultar filas

................................................................................................................................... 5627 Mostrar filas

................................................................................................................................... 5628 Insertar Columnas

................................................................................................................................... 5629 Eliminar columnas

................................................................................................................................... 5630 Ocultar columnas

IVContents

IV

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 5731 Mostrar Columnas

................................................................................................................................... 5732 Insertar comentarios

................................................................................................................................... 5733 Formatos a Celdas

................................................................................................................................... 5734 Formato a Columnas

................................................................................................................................... 5735 Autoajustar columnas

................................................................................................................................... 5736 Cambiar minúsculas por mayúsculas

................................................................................................................................... 5737 Cambiar mayúsculas por minúsculas

................................................................................................................................... 5838 Capturar fecha y hora de carga de datos

................................................................................................................................... 5839 Insertar Nombre de rango

................................................................................................................................... 5840 Insertar Hipervínculos

................................................................................................................................... 5841 Transponer una fila

................................................................................................................................... 5842 Ordenar un rango

................................................................................................................................... 5843 Detectar si la celda contiene formula

................................................................................................................................... 5844 Ejemplo de fórmula con rango variable

................................................................................................................................... 5945 Cómo conocer el color de una celda

................................................................................................................................... 5946 Colorear celdas con mas de 3 condiciones

................................................................................................................................... 5947 Resaltar la fila activa (1)

................................................................................................................................... 5948 Resaltar la fila activa (2)

................................................................................................................................... 5949 Resaltar la celda activa

................................................................................................................................... 5950 Cambiar color de fuente a celdas con datos

................................................................................................................................... 5951 Separar cada caracter de una cadena en distintas col

................................................................................................................................... 6052 Quitar espacios en celdas

................................................................................................................................... 6053 Proteger rangos o celdas

................................................................................................................................... 6054 Recorrer celdas protegidas

Cap. IX 9 - Bucles: Instrucciones o ComandosEspeciales 62

................................................................................................................................... 621 Qué es un bucle?

................................................................................................................................... 622 FOR EACH.....NEXT

................................................................................................................................... 633 For ...... Next

................................................................................................................................... 634 While .... Wend

................................................................................................................................... 635 If.... ElseIf....Else....

................................................................................................................................... 636 Do While .... Loop

................................................................................................................................... 637 Do Until.... Loop

................................................................................................................................... 648 Uso de SET

................................................................................................................................... 649 With....End With

................................................................................................................................... 6410 Uso de Select Case

Cap. X 10- Trabajando con fórmulas 66

................................................................................................................................... 661 Trabajando con fórmulas

Manual 400 Macros PlusV

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 662 INTRODUCIR FÓRMULAS EN CELDAS

................................................................................................................................... 673 Armar fórmula con datos variables

................................................................................................................................... 674 Modificar fórmula de celda

................................................................................................................................... 675 Colocar resultado de fórmula en celdas

Cap. XI 11- Trabajando con Objetos Insertados enHoja 69

................................................................................................................................... 691 Algunas consideraciones previas

................................................................................................................................... 692 ListBox, Combobox y Textbox

.......................................................................................................................................................... 69COMENTARIOS GENERALES

.......................................................................................................................................................... 70Mostrar un Combobox al seleccionar hoja

.......................................................................................................................................................... 70Ocultar un Combobox luego de seleccionar opcion

.......................................................................................................................................................... 70Asignar rango a un Combobox

.......................................................................................................................................................... 70Enviar texto a las columnas de un Combobox

.......................................................................................................................................................... 70Enviar valor de un Combo a una celda

.......................................................................................................................................................... 71Seleccionar celda cuyo valor es el ingresado en Combobox

.......................................................................................................................................................... 71Enviar valores de Combo de 4 columnas a celdas

.......................................................................................................................................................... 71Limpiar un combo

.......................................................................................................................................................... 71Crear controles por macro

.......................................................................................................................................................... 71Eliminar todos los controles de una hoja

.......................................................................................................................................................... 71Asignar ancho de columnas en Listbox

.......................................................................................................................................................... 71Activar hoja según valor en Lista Desplegable

.......................................................................................................................................................... 72Buscar valor del Combo en base Devolver otros datos en textbox

.......................................................................................................................................................... 72Mostrar valores al clic en control

.......................................................................................................................................................... 72Llenar un control Combobox con nombres de hojas

................................................................................................................................... 723 Cuadros de Texto

.......................................................................................................................................................... 72Insertar cuadro de texto y asignar algunas propiedades

.......................................................................................................................................................... 72Funciones de comprobacion

................................................................................................................................... 724 Imágenes

.......................................................................................................................................................... 72Cargar una imagen cuyo nombre se encuentra en una celda

.......................................................................................................................................................... 72Segun valor de celda, mostrar una imagen

.......................................................................................................................................................... 73Buscar una imagen e insertarla

.......................................................................................................................................................... 73Insertar imagenes sobre celdas (1)

.......................................................................................................................................................... 73Insertar imagenes sobre ciertas celdas (2)

.......................................................................................................................................................... 73Insertar imagenes de tamaño fijo

Cap. XII 12- Controlando Teclas y Mensajes de Excel 75

................................................................................................................................... 751 Consideraciones generales

................................................................................................................................... 752 Impedir que se cancele una macro con ESC

................................................................................................................................... 753 Controlar la tecla ESC- Cancelar a criterio

................................................................................................................................... 754 No mostrar el cursor o la celda activa

................................................................................................................................... 755 Controlar las teclas Enter y Flechas Abajo_Arriba

................................................................................................................................... 756 Controlar otras teclas mediante código

................................................................................................................................... 757 Asignar una macro a una tecla especial

................................................................................................................................... 768 Ejecutar una macro al presionar Enter

................................................................................................................................... 769 Ejecutar una macro con Doble click

VIContents

VI

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 7610 Asignar mismo atajo de teclado a varias macros

................................................................................................................................... 7611 NO MOSTRAR AVISOS DE ALERTA

................................................................................................................................... 7712 No mostrar aviso, al guardar un archivo, de que el archivo ya existe:

................................................................................................................................... 7713 No mostrar la ejecución de la macro o el movimiento de hojas:

................................................................................................................................... 7714 Inhabilitar eventos

................................................................................................................................... 7715 Crear atajos de teclado desde una macro

Cap. XIII 13- Controlando Errores 79

................................................................................................................................... 791 ON ERROR RESUME NEXT

................................................................................................................................... 792 On Error GoTo ....

................................................................................................................................... 793 On Error GoTo 0

................................................................................................................................... 794 Err

Cap. XIV 14- Trabajando con Barras, Menues yPestañas 81

................................................................................................................................... 811 Consideraciones generales para Barras y otros

................................................................................................................................... 812 OCULTAR LAS PESTAÑAS DE LAS HOJAS

................................................................................................................................... 813 Ocultar las barras de desplazamiento

................................................................................................................................... 814 Ocultar los encabezados de filas y columnas

................................................................................................................................... 815 Ocultar barras de herramientas

................................................................................................................................... 816 Ocultar la barra principal de Excel

................................................................................................................................... 827 Ocultar elementos de la barra principal

................................................................................................................................... 828 Conocer número de barras y controles

................................................................................................................................... 829 Ocultar opciones de Impresion y Otras

................................................................................................................................... 8210 Ocultar opciones Cortar y Copiar

................................................................................................................................... 8211 Crear una barra personal con macro

................................................................................................................................... 8212 Mostrar una barra de herramientas personal

................................................................................................................................... 8213 Quitar una barra personal al salir

................................................................................................................................... 8314 Impedir el uso del clic derecho

................................................................................................................................... 8315 Ejecutar macro al clic derecho

................................................................................................................................... 8316 Mostrar mensaje en Barra de Estado

................................................................................................................................... 8317 Mostrar cajas de diálogo de Excel

................................................................................................................................... 8318 Eliminar menu contextual de Objetos

Cap. XV 15- Uso de Cuadros de Mensaje 85

................................................................................................................................... 851 Construcción de MsgBox

................................................................................................................................... 852 MsgBox como PopUp

Cap. XVI 16- Uso de InputBox 87

................................................................................................................................... 871 CONSTRUCCIÓN DE INPUTBOX

................................................................................................................................... 882 Controlar que se ha ingresado un valor

Manual 400 Macros PlusVII

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 883 Establecer un valor predeterminado en un InputBox

................................................................................................................................... 884 Controlar que lo ingresado a un InputBox sea referencia válida

................................................................................................................................... 885 Ingresar y seleccionar un rango con InputBox

................................................................................................................................... 886 Seleccionar datos en un rango

................................................................................................................................... 887 Controlar que el dato ingresado sea fecha

Cap. XVII 17- Buscando Datos 90

................................................................................................................................... 901 Buscar una hoja en cierto libro

................................................................................................................................... 902 Devolver en una celda el resultado de una búsqueda

................................................................................................................................... 903 Devolver todos los resultados de una búsqueda

................................................................................................................................... 904 Buscar un dato. Copiar la fila de todos los registros encontrados

................................................................................................................................... 905 Buscar un dato en un rango, posicionarse y seguir buscando

................................................................................................................................... 906 Controlar si un valor resultado se encuentra en la base

................................................................................................................................... 907 Función BuscarV devolviendo valores a la izquierda

................................................................................................................................... 918 Buscar cierto dato en un rango. Si se encuentra borrar la fila que lo contiene

................................................................................................................................... 919 BUSCAR DATOS DE 1 COLUMNA EN OTRA Y BORRAR LOS REPETIDOS

................................................................................................................................... 9210 Evitar duplicados al cargar una base

................................................................................................................................... 9211 Buscar un dato. Devolver en Textbox toda la fila

................................................................................................................................... 9212 Obtener el valor de la ultima celda de una fila

Cap. XVIII 18- Evaluando y Comparando Datos 94

................................................................................................................................... 941 Comparando cadenas

................................................................................................................................... 942 Evaluar si una celda guarda fechas

................................................................................................................................... 943 Evaluar si un dato es numérico o no

................................................................................................................................... 944 EVALUAR SI UNA CELDA PRESENTA ERROR

................................................................................................................................... 945 Eliminar filas si las celdas de cierta columna están vacías

................................................................................................................................... 956 Eliminar fila si varios datos del registro cumplen una condición

................................................................................................................................... 957 Rellenar celdas vacías de un rango con cierto valor

................................................................................................................................... 958 Evaluar el color de celda

................................................................................................................................... 959 Eliminar filas vacías

................................................................................................................................... 9510 Contar celdas con igual color de fuente

................................................................................................................................... 9511 Ordenar - Controlar - borrar repetidos

................................................................................................................................... 9512 Comparar cadenas que pueden estar en mayúsculas o minúsculas

................................................................................................................................... 9613 Extraer la parte numérica de una cadena

................................................................................................................................... 9614 Armar tabla con valores no duplicados

................................................................................................................................... 9615 Armar Listas validadas, sin duplicados

................................................................................................................................... 9616 Comparar 2 columnas. Copiar en otra las filas que coinciden

................................................................................................................................... 9617 Comparar 2 columnas. Copiar las que NO coinciden

................................................................................................................................... 9618 Bloquear celdas según fecha

................................................................................................................................... 9619 Evaluando si celdas contienen #N/A-Copiar en otro destino

VIIIContents

VIII

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Cap. XIX 19- Copiando Datos 98

................................................................................................................................... 981 Copiar rango de datos de una hoja a la siguiente

................................................................................................................................... 982 Copiar solo filas impares

................................................................................................................................... 983 COPIAR SOLO VALORES - PEGADO ESPECIAL

................................................................................................................................... 984 Copiar formato - Pegado Especial

................................................................................................................................... 985 Pegado Especial sin seleccionar

................................................................................................................................... 996 Quitar fórmulas en celdas de color

................................................................................................................................... 997 Copiar una fórmula en la celda siguiente

................................................................................................................................... 998 Copiar cierta fila en otro libro. Conocer última fila con datos

................................................................................................................................... 999 Copiar un rango de filas en otro libro Resumen

................................................................................................................................... 9910 Duplicar una hoja- La copia tendrá los valores, no las fórmulas

................................................................................................................................... 9911 Copiar varios libros en uno solo

................................................................................................................................... 9912 Copiar cabecera o columna de títulos

................................................................................................................................... 10013 Copiar celdas de color en otro destino- Eliminar fila

Cap. XX 20- Uso de Temporizador 102

................................................................................................................................... 1021 CARACTERÍSTICAS DEL MÉTODO ONTIME

................................................................................................................................... 1022 Guardar el libro cada minuto

................................................................................................................................... 1033 Mostrar un Userform durante un tiempo y ocultarlo

................................................................................................................................... 1034 Lllamar a un Userform por unos segundos

................................................................................................................................... 1035 Activar otra hoja cada tantos minutos

Cap. XXI 21- Trabajando con Filtros 105

................................................................................................................................... 1051 Establecer criterio para filtro

................................................................................................................................... 1052 Filtro en hoja protegida

................................................................................................................................... 1053 Autofiltros con campos fecha

................................................................................................................................... 1054 Establecer AutoFiltro con criterios en otra hoja

................................................................................................................................... 1055 APLICAR FILTRO AVANZADO Y COPIAR RESULTADO

................................................................................................................................... 1066 Copiar solo las filas de un Filtro avanzado en otra hoja

................................................................................................................................... 1067 Copiar celdas filtradas sin los títulos

................................................................................................................................... 1068 Obtener la primer fila de un filtro

................................................................................................................................... 1079 Obtener el total de celdas filtradas

................................................................................................................................... 10710 Seleccionar en un rango filtrado, la celda que tiene el valor de un ComboBox

................................................................................................................................... 10711 Sumar una columna de datos en un rango filtrado

................................................................................................................................... 10712 Quitar autofiltros solo a ciertas columnas

Cap. XXII 22- Trabajando con Gráficos 109

................................................................................................................................... 1091 Seleccionar un gráfico ignorando su nombre

................................................................................................................................... 1092 Cortar un gráfico de una hoja y pegarlo en otra

................................................................................................................................... 1093 Asignar los datos de origen de un gráfico

Manual 400 Macros PlusIX

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 1094 Crear un gráfico en hoja nueva y guardar el libro

................................................................................................................................... 1095 Crear gráfico con datos de hoja variable

................................................................................................................................... 1096 Imprimir gráfico y tabla que lo alimenta

................................................................................................................................... 1107 MODIFICANDO DIMENSIONES DE TODOS LOS GRAFICOS

................................................................................................................................... 1108 Copiar todos los graficos en otra hoja

................................................................................................................................... 1109 Eliminar todos los graficos de una hoja

................................................................................................................................... 11010 Colorear series por macro

................................................................................................................................... 11011 Ubicando un gráfico por macro

................................................................................................................................... 11112 Recorrer todos los gráficos del libro

................................................................................................................................... 11113 Reconocer el área del gráfico seleccionado

Cap. XXIII 23- Trabajando con Userforms 113

................................................................................................................................... 1131 Generalidades - Crear un Userform

................................................................................................................................... 1132 Mostrar un Userform

................................................................................................................................... 1133 MOSTRAR UN USERFORM EN EL TOPE DE LA VENTANA

................................................................................................................................... 1134 Ocultar un Userform

................................................................................................................................... 1145 Cerrar un Userform

................................................................................................................................... 1146 Desactivar el botón 'Cerrar' de un Userform

................................................................................................................................... 1147 Inmovilizar un Userform

................................................................................................................................... 1148 Cargar valores de inicio

................................................................................................................................... 1149 Volcar datos de un Userform a una hoja

................................................................................................................................... 11410 Actualizar base con datos del Userform

................................................................................................................................... 11411 Seleccionar datos desde un Userform-RefEdit

................................................................................................................................... 11512 Seleccionar rango para eliminar duplicados

................................................................................................................................... 11513 Agrandar un Frame a medida que se ingresan datos

................................................................................................................................... 11514 Validar campos numéricos en Textbox

................................................................................................................................... 11515 Validar campos fecha en Textbox

................................................................................................................................... 11516 Establecer separadores en campos fecha en textbox

................................................................................................................................... 11517 Ingresar fechas sin formato en Textbox

................................................................................................................................... 11518 Asignar formato moneda a un TextBox

................................................................................................................................... 11619 Asignar formato Password a un textbox

................................................................................................................................... 11620 Limpiar todos los textbox de un Userform

................................................................................................................................... 11621 Guardar un dato del Userform antes de cerrarlo

................................................................................................................................... 11622 Agregar un Grafico en un Userform

................................................................................................................................... 11623 Trabajando con controles Listbox y Combobox

................................................................................................................................... 11624 Llenar un control ListBox con nombres de hojas

................................................................................................................................... 11625 Ejecutar una macro según valor seleccionado en Combobox

Cap. XXIV 24- Trabajando con Tablas Dinámicas 118

................................................................................................................................... 1181 Comentarios sobre Tablas Dinámicas

XContents

X

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 1182 Evitar la actualización automática de TD

................................................................................................................................... 1183 OBTENER EL TOTAL DE UNA TABLA DINÁMICA

................................................................................................................................... 1194 Convetir un campo en un campo de filas

................................................................................................................................... 1195 Eliminar todas las Tablas Dinamicas de una hoja

................................................................................................................................... 1196 Uso de variables en TD

Cap. XXV 25- Impresión 121

................................................................................................................................... 1211 Imprimir hojas

................................................................................................................................... 1212 Vista previa

................................................................................................................................... 1213 Establecer área de impresión:

................................................................................................................................... 1214 IMPEDIR LA IMPRESIÓN

................................................................................................................................... 1215 Enviar información al Encabezado y Pié

................................................................................................................................... 1216 Instrucciones para configurar la página

................................................................................................................................... 1227 Llamar al cuadro de opciones para Imprimir

................................................................................................................................... 1228 Elegir impresora por medio de código

Cap. XXVI 26- Trabajando con el entorno Excel 124

................................................................................................................................... 1241 Ocultar Excel

................................................................................................................................... 1242 Ocultar Excel por cierto tiempo

................................................................................................................................... 1243 Quitar la lista de archivos abiertos del menú Archivo

................................................................................................................................... 1244 Importar datos de otro libro Excel

................................................................................................................................... 1245 Obtener la lista de archivos Excel de una carpeta

................................................................................................................................... 1246 Ocultar botones de Minimizar y Maximizar

................................................................................................................................... 1247 Inhabilitar el botón de Cerrar de Excel

................................................................................................................................... 1258 Evitar el cierre accidental de Excel

................................................................................................................................... 1259 Ejecutar rutinas o funciones de otros libros

................................................................................................................................... 12510 OBTENER LISTADO DE RUTINAS DE UN LIBRO

................................................................................................................................... 12611 Exportar módulos

................................................................................................................................... 12612 Importar módulos guardados como txt

................................................................................................................................... 12613 Eliminar código

................................................................................................................................... 12614 Eliminar codigo de cierto objeto o modulo

................................................................................................................................... 12615 Saber si un archivo existe en un directorio

................................................................................................................................... 12716 Eliminar un archivo del directorio

................................................................................................................................... 12717 Iniciar una nueva sesión de Excel

................................................................................................................................... 12718 Quitar colores a la lista de la herramienta Relleno

................................................................................................................................... 12719 Restablecer la paleta de colores

................................................................................................................................... 12720 Determinar el tiempo que demora una rutina

................................................................................................................................... 12721 Fijar las mayusculas para todo el libro

................................................................................................................................... 12722 Habilitar o no la tecla BLOQNUM

................................................................................................................................... 12823 Llamar a un archivo HELP

Manual 400 Macros PlusXI

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Cap. XXVII 27- Trabajando con otras aplicaciones 130

................................................................................................................................... 1301 COPIAR CELDAS EXCEL A UN DOC WORD

................................................................................................................................... 1302 Abrir un archivo de texto (CSV)

................................................................................................................................... 1313 Imprimir un documento Word desde Excel

................................................................................................................................... 1314 Importar Datos de Outlook

................................................................................................................................... 1315 Enviar un libro por Mail

................................................................................................................................... 1316 Enviar un mail

................................................................................................................................... 1317 Enviar cuerpo de correo con saltos de línea

................................................................................................................................... 1318 Importar datos de Access

................................................................................................................................... 1319 Llamar a la Calculadora

................................................................................................................................... 13210 Llamar a la aplicación WinZip

................................................................................................................................... 13211 Ejecutar archivo de sonido al cambio en celda

Cap. XXVIII 28- Creando Complementos 134

................................................................................................................................... 1341 Cómo crear un Complemento

................................................................................................................................... 1342 Habilitar complementos

Cap. XXIX 29- Funciones definidas por Usuario (UDF) 136

................................................................................................................................... 1361 CREAR FUNCIONES PERSONALES

................................................................................................................................... 1362 Sintaxis de funciones

................................................................................................................................... 1363 Funcion Numeros a Letras

................................................................................................................................... 1374 Funcion Calculo del NIF (Identificador en España)

................................................................................................................................... 1375 Funcion Digito Verificador (RUT)

................................................................................................................................... 1376 Funcion BuscarV en varias hojas

................................................................................................................................... 1377 Funcion Buscar el enésimo elemento

................................................................................................................................... 1378 Funcion Encontrar ultimo dato

................................................................................................................................... 1379 Funcion Sumar rango con error

................................................................................................................................... 13710 Función Contar celdas de cierto color

................................................................................................................................... 13811 Funcion Sumar celdas de cierto color

................................................................................................................................... 13812 Funcion Extraer números a la derecha de una cadena

................................................................................................................................... 13813 Función Contar número de vocales en una cadena

................................................................................................................................... 13814 Función Contar número de consonantes en una cadena

................................................................................................................................... 13815 Funcion Contar numeros pares

................................................................................................................................... 13816 Funcion Contar numeros impares

................................................................................................................................... 13817 Funcion Fecha creación del libro

................................................................................................................................... 13918 Funcion Fecha ultima modificacion del libro

................................................................................................................................... 13919 Funcion Binario (para > 500)

................................................................................................................................... 13920 Funcion Reconocer numeros Primos

................................................................................................................................... 13921 Funcion Nombre Dia

XIIContents

XII

© <2005=2010> Elsa M.Meyer (Elsamatilde)

................................................................................................................................... 13922 Funcion Nombre Mes

Cap. XXX 30- Otras Rutinas Interesantes 141

................................................................................................................................... 1411 MOSTRAR VALORES EN COMBO SEGÚN SELECCIÓN EN OTRO

................................................................................................................................... 1422 Ejecutar macro según valor en celda

................................................................................................................................... 1423 Colorear celdas por condicion

................................................................................................................................... 1424 Convertir Monedas

................................................................................................................................... 1425 Indicar equipos disponibles en un Ciber:

................................................................................................................................... 1426 Lotería: Ubicar valores ingresados

................................................................................................................................... 1427 Ordenar una tabla por valores tipo Indice

................................................................................................................................... 1428 Aplicar parpadeo continuo a celdas

................................................................................................................................... 1439 Crear libros por cada hoja

................................................................................................................................... 14310 Restringir uso de hojas

................................................................................................................................... 14311 Mantener imagen fija en pantalla

................................................................................................................................... 14312 Estado de progreso de una rutina

Manual 400 Macros PlusXIII

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Capítulo

I

Manual 400 Macros Plus15

© <2005=2010> Elsa M.Meyer (Elsamatilde)

1 1 - Introducción

1.1 BIENVENID@S

VERSIÓN DEMOManual: 400 MACROS Plus

+ 20 Funciones

(v.3.0) - para versiones Excel 2000 al 2007 inclusive

La intención de este Manual es guiar al usuario de Excel a potenciar las planillas de cálculo conprogramación.

NOTA: En esta versión DEMO se podrá acceder a un tema por capítulo. El mismo seencuentra en mayúsculas en el índice.

No solo los usuarios 'programadores' sacarán provecho de este libro. Los que nunca hantrabajado con algún lenguaje de programación verán que muy fácilmente podrán 'personalizar'sus libros adaptando o creando rutinas con código VBA (Visual Basic para Aplicaciones)

En el primer capítulo un par de temas con imágenes para familiarizarnos con el entorno Editorde Macros.

A continuación un par de capítulos detallando conceptos que serán utilizados a lo largo delmanual: Eventos, Métodos, Variables, Cadenas y otros.

Luego siguen capítulos ordenados por objetos: Libros-Hojas-Celdas o rangos-Barras-Objetosdibujados , etc. donde partiendo de las principales instrucciones básicas (ej: Abrir o Guardarlibros), llegaremos hasta códigos para manipular otras aplicaciones (tanto Word, Access o elmismo entorno Windows), crear Complementos, código para controlar Barras, Teclas, Objetos,Filtros y mucho más.

Así hasta llegar al último capítulo con 'Rutinas Interesantes' que pueden serte de utilidad o demodelo para otras tareas, como: Colorear celdas por condición, Crear Libros por cada hoja ymuchas más.

Cada línea, cada comando se encuentra explicado en español para que puedan ser adaptados alas necesidades y configuración de cada libro.

Contiene además imágenes que guiarán y mostrarán los resultados obtenidos una vez ejecutadala macro.

Una característica a resaltar de este Manual es su formato y su potente buscador. Al solicitarun tema nos devolverá la lista de entradas que aparecen en todo el libro, como en la imagendonde se ingresó la palabra 'find' apareciendo 11 entradas (para la primer coincidencia) lo quenos permite abarcar de manera completa el tema buscado.

1 - Introducción 16

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Otra característica a resaltar de este formato, es su posibilidad de agregar comentarios encada tema. Podrás agregar tus propias observaciones, ejemplos u otros datos de interés.

Desde el menú Edición, Anotar encontrarás una ventana para escribir.

Cada vez que accedas a este tema, encontrarás en el margen superior un clip recordándoteque el tema tiene agregados. Haciendo clic en él, aparecerán tus notas personales.

Manual 400 Macros Plus17

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Las rutinas contenidas en este manual, fueron desarrolladas y probadas en las siguientes versiones:Windows98/Windows XP con Office 2000, Office XP (2002) , Office 2003 y Excel 2007

En caso de dificultad para adaptar alguna rutina a tu libro, envíame tus comentarios a:[email protected]

1.2 BREVE INTRODUCCIÓN AL EDITOR

Qué es una macro:Una macro es un conjunto de instrucciones en lenguaje de programación, que en el caso deExcel se conoce como VBA (Visual Basic for Applications), que nos permite realizar ciertas tareas,que por ser repetitivas nos valemos de una rutina para automatizarlas.Estas instrucciones se guardan en el Editor de Macros.Por ejemplo: al ingresar datos en una columna que nos complete el resto del registro con losdatos de otra hoja, que cada vez que ingresamos valores con cierto criterio, nos coloque un colorde fuente o fondo, etc.

El Editor de Macros:Desde el menú Herramientas, Macros, Editor de Macros tenemos acceso a una ventana donde secolocarán ya sea simples instrucciones, pequeñas rutinas y códigos completos de aplicacionescomo Facturación, Control de Gestión, etc.

En versión Excel 2007 se accede desde la ficha Programador, Visual Basic (primer opción)

Veamos qué encontramos en la ventana del Editor:

1 - Introducción 18

© <2005=2010> Elsa M.Meyer (Elsamatilde)

1.3 Cómo crear una macro

El tema no se encuentra disponible en esta versión DEMO

1.4 Dónde colocar las macros

El tema no se encuentra disponible en esta versión DEMO

1.5 Cómo ejecutar una macro

El tema no se encuentra disponible en esta versión DEMO

1.6 Acerca de las macros Auto-Open

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus19

© <2005=2010> Elsa M.Meyer (Elsamatilde)

1.7 Acerca de las macros Auto-Close

El tema no se encuentra disponible en esta versión DEMO

1.8 Cómo proteger un proyecto

El tema no se encuentra disponible en esta versión DEMO

1.9 Evitar que las macros se vean desde el menú

El tema no se encuentra disponible en esta versión DEMO

1.10 Otras consideraciones: ¿Cómo...?

El tema no se encuentra disponible en esta versión DEMO

Capítulo

II

Manual 400 Macros Plus21

© <2005=2010> Elsa M.Meyer (Elsamatilde)

2 2 - Eventos, Metodos y Propiedades

2.1 EVENTOS - LISTADO

Hemos visto en el capítulo Introducción, Cómo ejecutar una macro, que éstas puedenejecutarse ante un evento del libro u hoja.

¿Pero qué es un evento? es una acción que el usuario ejecuta, y tiene que ver con los objetosLibro y Hojas, siendo los más comunes: abrir, guardar, imprimir o cerrar libros, activar odesactivar hojas. Estas rutinas no pueden ser ejecutadas manualmente, como las que colocamosen módulos, sino que se ejecutan al producirse el evento.

Si volvemos a la imagen que se encuentra en el capítulo Introducción, Breve introducción alEditor, veremos los 2 cuadros desplegables: Objetos y Eventos.

Debemos seleccionar un objeto y luego optar por un evento. A continuación la primera y últimainstrucción de la macro se escribirán.

Ejemplos:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)'instrucciones que se ejecutarán antes de guardar el libroEnd Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)'instrucciones que se ejecutarán cada vez que se seleccione una celdaEnd Sub

A continuación los Eventos de Libros:

Activate: se activa el libroAddInstall: ocurre al instalar el libro como complementoAddUninstall: ocurre al desinstalar el libro como complementoBeforeClose: antes de cerrar el libroBeforePrint: antes de imprimirBeforeSave: antes de guardar el libroDeactivate: al desactivar el libroNewSheet: al insertar nueva hojaOpen: al abrir el libroSheetActivate: al activar una hojaSheetCalculate: al efectuar cálculos en hojaSheetChange: al efectuar cambios en hojaSheetDeactivate: al desactivar hojaSheetFollowHyperlink: al clic en un hipervínculoSheetPivotTableUpdate: ocurre después de actualizar la hoja del informe de tabla dinámicaSheetSelectionChange: se produce cuando la selección cambia en una hojaWindowActivate: cuando se activa cualquier ventana del libroWindowDeactivate: cuando se desactiva cualquier ventana del libroWindowResize: cuando se cambia de tamaño cualquier ventana del libroPivotTableCloseConnection: Ocurre después de que un informe de tabla dinámica cierra laconexión con su origen de datos.

2 - Eventos, Metodos y Propiedades 22

© <2005=2010> Elsa M.Meyer (Elsamatilde)

PivotTableOpenConnection: Ocurre después de que un informe de tabla dinámica abre laconexión con su origen de datosSheetBeforeDoubleClick: Ocurre al hacer doble clic en una hoja de cálculo, antes de la acciónpredeterminada para el doble clicSheetBeforeRightClick: Ocurre al hacer clic con el botón secundario del mouse (ratón) enuna hoja de cálculo, antes de la acción predeterminada.

Las rutinas colocadas en los eventos del libro (Private Sub Workbook) que hacen mención ahojas (Sheet....) se ejecutan para todas las hojas del libro.

Principales Eventos de Hojas:A diferencia de los últimos eventos de la lista anterior, un evento de Hoja solo se ejecuta parael objeto Hoja donde se encuentre.Es decir, si seleccionamos el objeto Hoja2 (Barras_Inicio) la macro de Evento que escribamossolo se ejecutará para esta hoja 2.

Los eventos de Hojas son:

Activate: al activar esta hojaBeforeDoubleClic: al presionar doble clicBeforeRightClick: al clic derecho en la hojaCalculate: al realizar cálculos en esta hojaChange: al introducir cambios en esta hojaDeactivate: al desactivar la hojaFollowHyperlink: al presionar un hipervínculoPivotTableUpdate: al actualizar una tabla dinámica en la hojaSelectionChange: al seleccionar y pasar de celda.

Atención: también los controles colocados en un Userform tienen su lista de eventos, comoSetFocus (al recibir el enfoque), LostFocus (al perder el enfoque) y muchos más queencontrarán en los ejemplos del capítulo Userforms

2.2 Especial: Eventos de Hojas

2.2.1 Cambios y Selección en Hoja

El tema no se encuentra disponible en esta versión DEMO

2.3 Metodos

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus23

© <2005=2010> Elsa M.Meyer (Elsamatilde)

2.4 Propiedades

El tema no se encuentra disponible en esta versión DEMO

Capítulo

III

Manual 400 Macros Plus25

© <2005=2010> Elsa M.Meyer (Elsamatilde)

3 3 - Tratamiento de Variables

3.1 Tipo de Variables

El tema no se encuentra disponible en esta versión DEMO

3.2 DURACIÓN DE LAS VARIABLES

Las variables pueden ser: Locales o Públicas

Variables Locales:Las variables Locales son las que se declaran dentro de un procedimiento y sus valores sólopueden ser utilizados en éste. Para declararlas se utiliza la sentencia Dim, generalmente al iniciodel procedimiento, aunque también pueden ser declaradas en otros puntos del mismo.

Ejemplo:Sub Macro1()Dim valor1 as Integer, valor2 as IntegerDim cadena1 as String

'otras instruccionesEnd Sub

Variables Públicas:Son las que estarán disponibles para todos los procesos, sus valores pueden ser utilizados encualquier módulo.Se declaran como Public. Recomiendo utilizar un módulo especialmente destinado a ladeclaración de estas variables lo que facilitará su ubicación.Si se declararán en un módulo utilizado para otro procedimiento deberán ser las primerasinstrucciones

Ejemplo: Option Explicit Public minro as Byte

Sub Macro2() 'instrucciones End Sub

Constantes:A diferencia de las variables que modifican sus valores durante la ejecución de un proceso, lasConstantes mantienen su valor. También pueden ser Locales o Públicas

Ejemplo:Const dia as IntegerPublic Const cadena1 as String

3 - Tratamiento de Variables 26

© <2005=2010> Elsa M.Meyer (Elsamatilde)

3.3 Determinar el tipo de variable

El tema no se encuentra disponible en esta versión DEMO

3.4 Convirtiendo variables

El tema no se encuentra disponible en esta versión DEMO

3.5 Limpiando variables

El tema no se encuentra disponible en esta versión DEMO

Capítulo

IV

4 - Trabajando con Cadenas 28

© <2005=2010> Elsa M.Meyer (Elsamatilde)

4 4 - Trabajando con Cadenas

4.1 EXTRAER PARTES DE UNA CADENA

Para extraer partes de una cadena, ya sea el contenido de una celda, una variable o elresultado de un InputBox, contamos con las siguientes funciones:

Left: devuelve el contenido de una cadena comenzando desde la izquierda a partir de laposición indicada en el segundo argumento.Right: devuelve lo que se encuentra a la derecha de la cadenaLen: devuelve el largo de una cadenaMid: devuelve lo que se encuentra a partir de cierta posición y del largo establecidoInStr: devuelve la posición inicial de una cadena en otra

Ejemplos: si la celda A1 contiene el valor 'ABC567DEF'

Left(Range("A1").Value, 3) devuelve 'ABC'

Mid(Range("A1").Value, 3) devuelve 'C567DEF'

Mid(Range("A1").Value, 4, 2) devuelve "56"Si el resultado obtenido queda como String, convertirlo a número utilizar la función Val(*ver más sobre Conversión de variables en el capítulo: Tratamiento de Variables)

Right(Range("A1").Value, 2) devuelve 'EF'

También podemos utilizar la función InStr conjuntamente con Mid para obtener una cadena apartir de cierto caracter.En el ejemplo se trata de obtener el apellido sabiendo que se ubica después del caracter 'espacio'

Sub variables()Dim esp As integerDim apellido As StringDim cadena As Stringcadena = "Juan Perez"'se obtiene la ubicación del espacioesp = InStr("Juan Perez", " ")'se obtiene la cadena a partir de la posición del espacioapellido = Mid(cadena, esp)'se muestra el resultadoMsgBox apellidoEnd Sub

Manual 400 Macros Plus29

© <2005=2010> Elsa M.Meyer (Elsamatilde)

4.2 Armando cadenas

El tema no se encuentra disponible en esta versión DEMO

4.3 Obtener el largo de una cadena

El tema no se encuentra disponible en esta versión DEMO

4.4 Introducir caracteres especiales

El tema no se encuentra disponible en esta versión DEMO

4.5 Detectar o encontrar texto en una cadena

El tema no se encuentra disponible en esta versión DEMO

4.6 Creando cadenas de largo fijo

El tema no se encuentra disponible en esta versión DEMO

4.7 Obtener la parte numerica de una cadena

El tema no se encuentra disponible en esta versión DEMO

Capítulo

V

Manual 400 Macros Plus31

© <2005=2010> Elsa M.Meyer (Elsamatilde)

5 5 - Trabajando con Directorios y Archivos

5.1 Creando un nuevo directorio

El tema no se encuentra disponible en esta versión DEMO

5.2 ESTABLECER LA RUTA DE ACCESO PREDETERMINADA

En el tema anterior hemos visto que la función MkDir crea una carpeta en el directoriopredeterminado de archivos Excel, si no especificamos otra ruta.

Para conocer desde una macro esa ruta (la que se establece desde el menú Herramientas,Opciones, General del libro Excel) utilizaremos la función CurDir.

En versión Excel2007, la ruta predeterminada se encuentra desde el botón Office,Opciones de Excel, Guardar, Guardar Libro.

Sub ConoceDir()Dim miRuta'obtenemos la ruta de acceso predeterminadomiRuta = CurDir()'mostramos el resultado en un mensajeMsgBox miRuta'otras instruccionesEnd Sub

5.3 Establecer si un directorio existe

El tema no se encuentra disponible en esta versión DEMO

5.4 Establecer si un archivo existe en un directorio

El tema no se encuentra disponible en esta versión DEMO

5 - Trabajando con Directorios y Archivos 32

© <2005=2010> Elsa M.Meyer (Elsamatilde)

5.5 Eliminar un archivo de un directorio

El tema no se encuentra disponible en esta versión DEMO

5.6 Establecer nueva unidad de disco

El tema no se encuentra disponible en esta versión DEMO

5.7 Establecer nuevo directorio o carpeta

El tema no se encuentra disponible en esta versión DEMO

5.8 Crear lista de archivos de una carpeta

El tema no se encuentra disponible en esta versión DEMO

5.9 Copiar todos los libros de una carpeta en otra

El tema no se encuentra disponible en esta versión DEMO

5.10 Obtener propiedad fecha y hora de archivos

El tema no se encuentra disponible en esta versión DEMO

5.11 Obtener tamaño de archivos

El tema no se encuentra disponible en esta versión DEMO

Capítulo

VI

6 - Trabajando con Libros 34

© <2005=2010> Elsa M.Meyer (Elsamatilde)

6 6 - Trabajando con Libros

6.1 Principales Metodos y Propiedades de Libros

El tema no se encuentra disponible en esta versión DEMO

6.2 Abriendo Libros

6.2.1 Abrir un segundo libro

El tema no se encuentra disponible en esta versión DEMO

6.2.2 Abrir un libro con clave

El tema no se encuentra disponible en esta versión DEMO

6.2.3 Abrir libro buscando la carpeta que lo contiene

El tema no se encuentra disponible en esta versión DEMO

6.2.4 Ejecutar macro al abrir un libro

El tema no se encuentra disponible en esta versión DEMO

6.2.5 Inhabilitar el mensaje de actualizar vínculos al abrir un libro

El tema no se encuentra disponible en esta versión DEMO

6.2.6 Inhabilitar la opción de actualizar vínculos al abrir otros libros

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus35

© <2005=2010> Elsa M.Meyer (Elsamatilde)

6.2.7 Al abrir libro incrementar un contador

El tema no se encuentra disponible en esta versión DEMO

6.2.8 Al abrir libro ocultarlo (minimizarlo) y mostrar un Userform

El tema no se encuentra disponible en esta versión DEMO

6.2.9 Impedir que un libro se abra si la fecha caducó

El tema no se encuentra disponible en esta versión DEMO

6.3 Seleccionar un libro

El tema no se encuentra disponible en esta versión DEMO

6.4 Obtener el nombre de un libro

El tema no se encuentra disponible en esta versión DEMO

6.5 Obtener la ruta de un libro

El tema no se encuentra disponible en esta versión DEMO

6.6 Activar otro libro distinto al actual

El tema no se encuentra disponible en esta versión DEMO

6 - Trabajando con Libros 36

© <2005=2010> Elsa M.Meyer (Elsamatilde)

6.7 Impedir que se abran otros libros mientras esté nuestro libroabierto

El tema no se encuentra disponible en esta versión DEMO

6.8 CARGAR TODO EL LIBRO EN MAYÚSCULAS

Se puede forzar a que todo el libro sea cargado en mayúsculas con la expresión Ucase (ominúsculas con Lcase), que al ser colocada en el objeto ThisWorkbook será de aplicación paratodas las hojas

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)On Error Resume Next

'controla si el contenido de la celda active es textoIf Application.WorksheetFunction.IsText(Target.Value) Then

'convierte el contenido de la celda active (Target) en mayúsculas (Ucase)Target.Value = UCase(Target.Value)

End IfEnd Sub

Atención: si una celda tiene una fórmula que devuelve texto, al ser convertida en maýusculaspierde su condición de fórmula quedando solo el texto como valor.Para evitar esto podemos realizar la consulta con esta instrucción en lugar de la línea en verdeen la rutina anterior :

If Not ActiveCell.HasFormula and Application.WorksheetFunction.IsText(Target.Value)Then

Para ser utilizada en una sola hoja, no en todas, en lugar de colocar la rutina en el objetoThisWorkbook, colocarla en la hoja deseada, seleccionándola entre los objetos que seencuentran en la ventana del margen izquierdo, por ejemplo: Hoja1 (Hoja1)La rutina entonces será:

Private Sub Worksheet_Change(ByVal Target As Range)On Error Resume Next

'controla si el contenido de la celda active es textoIf Application.WorksheetFunction.IsText(Target.Value) Then

'convierte el contenido de la celda active (Target) en mayúsculas (Ucase)Target.Value = UCase(Target.Value)

End IfEnd Sub

Manual 400 Macros Plus37

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Nota: de la misma manera se puede forzar al uso de minúsculas reemplazando Ucase conLcase

Atención: ver otra rutina para convertir mayúsculas o minúsculas en el capítulo 12:Controlando Teclas....., Ejecutar macro al presionar Enter

6.9 Modificar la forma de cálculo del libro o de una hoja

El tema no se encuentra disponible en esta versión DEMO

6.10 Eliminar vinculos externos

El tema no se encuentra disponible en esta versión DEMO

6.11 Eliminar vinculos internos

El tema no se encuentra disponible en esta versión DEMO

6.12 Saber si uno o más libros existen en una carpeta

El tema no se encuentra disponible en esta versión DEMO

6.13 Crear libro como copia de cierta hoja

El tema no se encuentra disponible en esta versión DEMO

6.14 Copiar un libro sin abrirlo

El tema no se encuentra disponible en esta versión DEMO

6 - Trabajando con Libros 38

© <2005=2010> Elsa M.Meyer (Elsamatilde)

6.15 Cambiar el nombre de un libro sin abrirlo

El tema no se encuentra disponible en esta versión DEMO

6.16 Eliminar Nombres de Rangos en libro

El tema no se encuentra disponible en esta versión DEMO

6.17 Armar un indice vinculado a cada hoja del libro

El tema no se encuentra disponible en esta versión DEMO

6.18 Guardando Libros

6.18.1 Guardar el libro activo

El tema no se encuentra disponible en esta versión DEMO

6.18.2 Guardar un libro con otro nombre

El tema no se encuentra disponible en esta versión DEMO

6.18.3 Guardar un libro con otro formato (txt)

El tema no se encuentra disponible en esta versión DEMO

6.18.4 Guardar un libro con clave

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus39

© <2005=2010> Elsa M.Meyer (Elsamatilde)

6.18.5 Guardar un libro cuyo nombre será el valor de una variable

El tema no se encuentra disponible en esta versión DEMO

6.18.6 Guardar un libro cuyo nombre serán datos concatenados

El tema no se encuentra disponible en esta versión DEMO

6.18.7 Guardar libro sin módulos

El tema no se encuentra disponible en esta versión DEMO

6.18.8 Guardar libro sin código o macros

El tema no se encuentra disponible en esta versión DEMO

6.19 Cerrando Libros

6.19.1 Cerrar todos los libros en uso

El tema no se encuentra disponible en esta versión DEMO

6.19.2 Cerrar un solo libro

El tema no se encuentra disponible en esta versión DEMO

6.19.3 Cerrar un libro SIN guardar los cambios

El tema no se encuentra disponible en esta versión DEMO

6 - Trabajando con Libros 40

© <2005=2010> Elsa M.Meyer (Elsamatilde)

6.19.4 Cerrar un libro guardando los cambios

El tema no se encuentra disponible en esta versión DEMO

6.19.5 Impedir el uso del botón Cerrar del libro

El tema no se encuentra disponible en esta versión DEMO

6.19.6 Controlar errores antes de cerrar un libro

El tema no se encuentra disponible en esta versión DEMO

Capítulo

VII

7 - Trabajando con Hojas 42

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7 7 - Trabajando con Hojas

7.1 MÉTODOS PARA HOJAS

Las instrucciones para el manejo de Hojas, pueden ser incluídas en cualquier punto de nuestrasrutinas, ya sea que las tengamos en módulos o en ciertos eventos como por ejemplo en el eventoOpen del libro.

Private Sub Workbook_Open()'selecciona la hoja2 al abrir el libroSheets(2).SelectEnd Sub

A continuación veremos ejemplos de los principales métodos y propiedades más comunes delas hojas.

(Ver descripción e imagen en capítulo: Eventos, Métodos y Propiedades)

Métodos

Ingresando como tema en la Ayuda de Excel el método, podrán obtener ejemplos de suutilización.También encontrarán varios ejemplos utilizando el buscador de este manual

Activate Convierte la hoja actual en la hoja activa.

Add Agrega una hoja al libro

Calculate Calcula todos los libros abiertos, una hoja de cálculo específica de un libro o unrango determinado de celdas de una hoja, como se muestra en la tabla siguiente:

ChartObjects Devuelve un objeto que representa un único gráfico incrustado (un objetoChartObject) o una colección de todos los gráficos incrustados (un objetoChartObjects) de la hoja.

CheckSpelling Comprueba la ortografía de un objeto.

CircleInvalid Rodea con un círculo los elementos no válidos de la hoja de cálculo.

ClearArrows Borra las flechas de rastreo de la hoja de cálculo. La característica auditoríaagrega las flechas de rastreo.

ClearCircles Borra los círculos de los elementos no válidos de la hoja de cálculo.

Manual 400 Macros Plus43

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Copy Copia la hoja en otro lugar del libro.

Delete Elimina el objeto.

Evaluate Convierte un nombre de Microsoft Excel en un objeto o un valor.

ExportAsFixedFormat Exporta a un archivo con el formato especificado.

FillAcrossSheets Copia un rango de 1 hoja en el mismo lugar en otras hojas

Move Desplaza la hoja a otro lugar del libro.

OLEObjects Devuelve un objeto que representa un único objeto OLE (un objeto OLEObject) ouna colección de todos los objetos OLE (una colección OLEObjects) del gráfico ode la hoja. Sólo lectura.

Paste Pega el contenido del Portapapeles en la hoja.

PasteSpecial Pega el contenido del Portapapeles en la hoja, con un formato especificado. Useeste método para pegar datos de otras aplicaciones o bien para pegarlos con unformato específico.

PivotTables Devuelve un objeto que representa un solo informe de tabla dinámica (un objetoPivotTable) o una colección de todos los informes de tabla dinámica (un objetoPivotTables) de una hoja de cálculo. Sólo lectura.

PivotTableWizard Crea un nuevo informe de tabla dinámica. Este método no muestra el Asistentepara tablas dinámicas. No está disponible para orígenes de datos OLE DB. Use elmétodo Add para agregar una caché de tabla dinámica y crear a continuación uninforme de tabla dinámica basado en la caché.

PrintOut Imprime el objeto.

PrintPreview Muestra una vista preliminar del objeto tal como aparecería impreso.

Protect Protege una hoja de cálculo para que no se pueda modificar.

ResetAllPageBreaks Restablece todos los saltos de página en la hoja especificada.

SaveAs Guarda los cambios del gráfico o de la hoja de cálculo en un archivo diferente.

Scenarios Devuelve un objeto que representa un solo escenario (un objeto Scenario) o unacolección de escenarios (un objeto Scenarios) en la hoja de cálculo.

Select Selecciona el objeto.

SetBackgroundPicture Establece el gráfico de fondo para una hoja de cálculo.

ShowAllData Hace visibles todas las filas de la lista filtrada actual. Si se está usando Autofiltro,este método cambiará las flechas a "Todas".

ShowDataForm Muestra el formulario de datos correspondiente a la hoja de cálculo.

Unprotect Elimina la protección de una hoja o de un libro. Este método no tiene efecto si lahoja o el libro no están protegidos.

XmlDataQuery Devuelve un objeto Range que representa las celdas asignadas a unadeterminada expresión XPath. Devuelve NothingNothing si la expresión XPathespecificada no se ha asignado a la hoja o si el rango asignado está vacío.

XmlMapQuery Devuelve un objeto Range que representa las celdas asignadas a unadeterminada expresión XPath. Devuelve NothingNothing si la expresión XPathespecificada no se ha asignado a la hoja.

7 - Trabajando con Hojas 44

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7.2 Propiedades de las Hojas

El tema no se encuentra disponible en esta versión DEMO

7.3 Activar o seleccionar otras hojas distintas a la actual

El tema no se encuentra disponible en esta versión DEMO

7.4 Seleccionar la hoja anterior o posterior a la activa

El tema no se encuentra disponible en esta versión DEMO

7.5 Seleccionar todas las hojas de un libro

El tema no se encuentra disponible en esta versión DEMO

7.6 Devolver el nombre de la hoja en una variable

El tema no se encuentra disponible en esta versión DEMO

7.7 Formas de mostrar el nombre de hojas

El tema no se encuentra disponible en esta versión DEMO

7.8 Devolver el número de hoja en una variable

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus45

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7.9 Proteger una hoja

El tema no se encuentra disponible en esta versión DEMO

7.10 Desproteger una hoja

El tema no se encuentra disponible en esta versión DEMO

7.11 Vista previa de la hoja activa y de otras hojas

El tema no se encuentra disponible en esta versión DEMO

7.12 Imprimir hojas

El tema no se encuentra disponible en esta versión DEMO

7.13 Insertar hojas

El tema no se encuentra disponible en esta versión DEMO

7.14 Eliminar hojas

El tema no se encuentra disponible en esta versión DEMO

7.15 Copiar hojas

El tema no se encuentra disponible en esta versión DEMO

7 - Trabajando con Hojas 46

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7.16 Crear hoja/libro con un gráfico

El tema no se encuentra disponible en esta versión DEMO

7.17 Ocultar hojas

El tema no se encuentra disponible en esta versión DEMO

7.18 Mostrar hoja oculta

El tema no se encuentra disponible en esta versión DEMO

7.19 Mostrar todas las hojas ocultas de un libro

El tema no se encuentra disponible en esta versión DEMO

7.20 Impedir que se vean datos al entrar a hoja

El tema no se encuentra disponible en esta versión DEMO

7.21 Cambiar nombre a pestaña o Etiqueta de hojas

El tema no se encuentra disponible en esta versión DEMO

7.22 Cambiar color de pestaña o Etiqueta de Hojas

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus47

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7.23 Mover o cambiar una hoja de lugar

El tema no se encuentra disponible en esta versión DEMO

7.24 Insertar imagen en una hoja

El tema no se encuentra disponible en esta versión DEMO

7.25 Ordenar las hojas alfabéticamente

El tema no se encuentra disponible en esta versión DEMO

7.26 Armar una lista con el nombre de las hojas

El tema no se encuentra disponible en esta versión DEMO

7.27 Modificar todos los hipervínculos de la hoja

El tema no se encuentra disponible en esta versión DEMO

7.28 Establecer filas y columnas a mostrar al abrir hoja

El tema no se encuentra disponible en esta versión DEMO

7.29 Establecer area visible de una hoja

El tema no se encuentra disponible en esta versión DEMO

7 - Trabajando con Hojas 48

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7.30 Restablecer área visible en hoja

El tema no se encuentra disponible en esta versión DEMO

7.31 Crear hojas según valores en una lista

El tema no se encuentra disponible en esta versión DEMO

7.32 Aplicar Zoom a un rango u hoja

El tema no se encuentra disponible en esta versión DEMO

7.33 Obtener el valor del Zoom aplicado a la hoja

El tema no se encuentra disponible en esta versión DEMO

7.34 Ejecutar rutina en todas las hojas del libro

El tema no se encuentra disponible en esta versión DEMO

7.35 Hojas de Diálogo: cómo ocultarlas

El tema no se encuentra disponible en esta versión DEMO

7.36 Eliminar todos los comentarios de la hoja

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus49

© <2005=2010> Elsa M.Meyer (Elsamatilde)

7.37 Activar hoja cada tanto tiempo

El tema no se encuentra disponible en esta versión DEMO

Capítulo

VIII

Manual 400 Macros Plus51

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8 8 - Trabajando con Celdas y Rangos

8.1 Principales Méotodos para Rangos

El tema no se encuentra disponible en esta versión DEMO

8.2 PRINCIPALES PROPIEDADES DE RANGOS

Hemos visto en el capítulo 2 que una propiedad es la característica de un objeto (rango, celda,objetos, otros)

(ver descripción e imagen en capítulo: Eventos, Métodos y Propiedades)

Propiedades más comunes

Para ver ejemplos de cada uno de estas propiedades ingresarla como tema en la Ayuda de ExcelTambién puede utilizar el buscador de este manual

Address Indica la dirección del rango seleccionado.AllowEdit Indica el rango que puede ser modificado en hoja protegidaAreas Número de Rangos SeleccionadosBorders Devuelve una colección que serán los bordes de un rangoCells Representa las celdas del rango especificadoCharacters Permite trabajar con los caracteres de una cadenaColumn Posición de columna en la que empieza el RangoColumns Columnas que componen un rangoColumnWidth Establece el ancho de las columnas del rango especificadoComment Devuelve un objeto que será el comentario de la celdaCount Cuenta el número de objetos de un conjunto. CountLarge Cuenta el valor más alto de un conjunto de valoresCurrentRegion La región actual es un rango limitado por cualquier combinación de filas ycolumnas vacías. Equivale a presionar Shift+Control+* sobre una celdaEnd Representa la celda situada al final de la región que contiene el rangofuente.EntireColumn Representa toda la columna a la cual pertenece un rangoEntireRow Representa toda la fila a la cual pertenece un rangoFont Representa la fuente del RangoFormatConditions Permite modificar un formato condicional ya existente en la celdaFormula Fórmula de las celdas de un rangoFormulaArray Permite establecer una fórmula para la matriz o rango de celdasFormulaHidden Permite establecer si una fórmula se ocultará cuando la hoja se protejaHasFormula Verdadero si la celda o rango tiene una fórmula, falso en caso contrarioHeight Establece el alto de celda o filaHidden Establece si las filas o columnas están ocultasHorizontalAlignment Permite establecer la orientación horizontal

8 - Trabajando con Celdas y Rangos 52

© <2005=2010> Elsa M.Meyer (Elsamatilde)

Hiperlinks Devuelve una colección Hiperlinks que representa los vínculos del rangoInterior Permite trabajar con el interior de una celda (color o trama)Left Establece el margen izquierdo de una celda o rangoLocked Indica si un objeto o rango se encuentra bloqueadoMergeArea Indica si la celda se encuentra en un rango combinadoMergeCells Indica si un rango contiene celdas combinadasName Devuelve el nombre de un objetoNext Devuelve un objeto Range que representa la celda siguienteNumberFormat Establece el formato de una celda o rangoOffset Permite desplazarse en forma relativa con respecto a una celda o un rangoPageBreak Permite establecer dónde se hará el salto de páginaPrevious Devuelve la celda anteriorResize Permite redefinir el tamaño de un rangoRow Posición de fila en la que empieza el RangoRows Filas que componen un rangoStyle Indica el estilo del rangoText Texto contenido en las celdas de un rangoTop Establece el valor tope de una celdaValidation Devuelve un objeto que representa la validación de datos para un rangoValue Valor contenido en las celdas de un rangoVerticalAlignment Permite establecer la orientación verticalWidth Indica el ancho de un objeto

En las hojas siguientes encontrarán ejemplos del uso de cada uno de estos temas.

8.3 Selección de Celdas o Rangos

El tema no se encuentra disponible en esta versión DEMO

8.4 Selección de rango utilizando variables

El tema no se encuentra disponible en esta versión DEMO

8.5 Seleccionar celdas a cierta distancia de la celda activa

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus53

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.6 Ampliar un rango seleccionado

El tema no se encuentra disponible en esta versión DEMO

8.7 SELECCIONAR LA REGIÓN DE LA CELDA ACTIVA

Si por ejemplo tenemos una lista que va desde B2 hasta H20, la instrucción siguiente seleccionael rango completo

Range("B2").CurrentRegion.Select

Una región comprende celdas aledañas hasta encontrar celdas vacías, tanto hacia la derechacomo hacia abajo.

8.8 Seleccionar hasta la última celda vacía -Fin de rango

El tema no se encuentra disponible en esta versión DEMO

8.9 Devolver la direccion de un rango o celda

El tema no se encuentra disponible en esta versión DEMO

8 - Trabajando con Celdas y Rangos 54

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.10 Encontrar última celda con datos

El tema no se encuentra disponible en esta versión DEMO

8.11 Ubicarnos en primer celda libre de una columna

El tema no se encuentra disponible en esta versión DEMO

8.12 Guardar el numero de la primer fila libre

El tema no se encuentra disponible en esta versión DEMO

8.13 Obtener ultima columna con datos

El tema no se encuentra disponible en esta versión DEMO

8.14 Obtener el número de columnas de un rango

El tema no se encuentra disponible en esta versión DEMO

8.15 Obtener el número de filas de un rango

El tema no se encuentra disponible en esta versión DEMO

8.16 Contar la cantidad de objetos de un rango

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus55

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.17 Acumular lo que se carga en 1 celda

El tema no se encuentra disponible en esta versión DEMO

8.18 Combinar/Descombinar celdas seleccionadas

El tema no se encuentra disponible en esta versión DEMO

8.19 Borrar o Limpiar celdas o rangos

El tema no se encuentra disponible en esta versión DEMO

8.20 Borrar celdas con cierto contenido

El tema no se encuentra disponible en esta versión DEMO

8.21 Eliminar celdas o rangos

El tema no se encuentra disponible en esta versión DEMO

8.22 Eliminar filas en blanco

El tema no se encuentra disponible en esta versión DEMO

8.23 Eliminar varias filas segun condicion

El tema no se encuentra disponible en esta versión DEMO

8 - Trabajando con Celdas y Rangos 56

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.24 Insertar Filas

El tema no se encuentra disponible en esta versión DEMO

8.25 Eliminar Filas

El tema no se encuentra disponible en esta versión DEMO

8.26 Ocultar filas

El tema no se encuentra disponible en esta versión DEMO

8.27 Mostrar filas

El tema no se encuentra disponible en esta versión DEMO

8.28 Insertar Columnas

El tema no se encuentra disponible en esta versión DEMO

8.29 Eliminar columnas

El tema no se encuentra disponible en esta versión DEMO

8.30 Ocultar columnas

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus57

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.31 Mostrar Columnas

El tema no se encuentra disponible en esta versión DEMO

8.32 Insertar comentarios

El tema no se encuentra disponible en esta versión DEMO

8.33 Formatos a Celdas

El tema no se encuentra disponible en esta versión DEMO

8.34 Formato a Columnas

El tema no se encuentra disponible en esta versión DEMO

8.35 Autoajustar columnas

El tema no se encuentra disponible en esta versión DEMO

8.36 Cambiar minúsculas por mayúsculas

El tema no se encuentra disponible en esta versión DEMO

8.37 Cambiar mayúsculas por minúsculas

El tema no se encuentra disponible en esta versión DEMO

8 - Trabajando con Celdas y Rangos 58

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.38 Capturar fecha y hora de carga de datos

El tema no se encuentra disponible en esta versión DEMO

8.39 Insertar Nombre de rango

El tema no se encuentra disponible en esta versión DEMO

8.40 Insertar Hipervínculos

El tema no se encuentra disponible en esta versión DEMO

8.41 Transponer una fila

El tema no se encuentra disponible en esta versión DEMO

8.42 Ordenar un rango

El tema no se encuentra disponible en esta versión DEMO

8.43 Detectar si la celda contiene formula

El tema no se encuentra disponible en esta versión DEMO

8.44 Ejemplo de fórmula con rango variable

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus59

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.45 Cómo conocer el color de una celda

El tema no se encuentra disponible en esta versión DEMO

8.46 Colorear celdas con mas de 3 condiciones

El tema no se encuentra disponible en esta versión DEMO

8.47 Resaltar la fila activa (1)

El tema no se encuentra disponible en esta versión DEMO

8.48 Resaltar la fila activa (2)

El tema no se encuentra disponible en esta versión DEMO

8.49 Resaltar la celda activa

El tema no se encuentra disponible en esta versión DEMO

8.50 Cambiar color de fuente a celdas con datos

El tema no se encuentra disponible en esta versión DEMO

8.51 Separar cada caracter de una cadena en distintas col

El tema no se encuentra disponible en esta versión DEMO

8 - Trabajando con Celdas y Rangos 60

© <2005=2010> Elsa M.Meyer (Elsamatilde)

8.52 Quitar espacios en celdas

El tema no se encuentra disponible en esta versión DEMO

8.53 Proteger rangos o celdas

El tema no se encuentra disponible en esta versión DEMO

8.54 Recorrer celdas protegidas

El tema no se encuentra disponible en esta versión DEMO

Capítulo

IX

9 - Bucles: Instrucciones o Comandos Especiales 62

© <2005=2010> Elsa M.Meyer (Elsamatilde)

9 9 - Bucles: Instrucciones o Comandos Especiales

9.1 Qué es un bucle?

El tema no se encuentra disponible en esta versión DEMO

9.2 FOR EACH.....NEXT

La expresión 'For Each Next' permite recorrer todas las ocurrencias que componen unobjeto.

Sintaxis:

For Each elemento In grupo 'por cada elemento del grupo[instrucciones] 'se ejecutan las instrucciones[Exit For] 'opción de salir del bucle[instrucciones] 'opción de ejecutar otras instruccionesNext [elemento] 'se repite el ciclo para el elemento siguiente

Por ejemplo: Recorrer todas las hojas de un libro (hoja/Worksheets), recorrer las celdas de unrango (celda/Range) o los libros abiertos (libro/Workbooks)

Ejemplo: Recorrer un rango que previamente se habrá seleccionado. Pasar a color defuente azul si la celda contiene datos.

Sub RecorreCeldas()Dim celda As RangeDim rango As Range

'se toma el rango seleccionado previamenteSet rango = Selection

'por cada celda en el rangoFor Each celda In rango

'si la celda está vacía If celda.Value = "" Then

'se coloca color de fuente automáticocelda.Font.ColorIndex = xlAutomatic

'si la celda tiene datos Else

'se coloca la fuente de color azul celda.Font.ColorIndex = 5

Manual 400 Macros Plus63

© <2005=2010> Elsa M.Meyer (Elsamatilde)

End If

'se repite el bucle, con la siguiente celda del rangoNext

End Sub

Nota: con la pestaña 'Buscar' de este manual, podrán encontrar otros ejemplos del uso de estecomando.

9.3 For ...... Next

El tema no se encuentra disponible en esta versión DEMO

9.4 While .... Wend

El tema no se encuentra disponible en esta versión DEMO

9.5 If.... ElseIf....Else....

El tema no se encuentra disponible en esta versión DEMO

9.6 Do While .... Loop

El tema no se encuentra disponible en esta versión DEMO

9.7 Do Until.... Loop

El tema no se encuentra disponible en esta versión DEMO

9 - Bucles: Instrucciones o Comandos Especiales 64

© <2005=2010> Elsa M.Meyer (Elsamatilde)

9.8 Uso de SET

El tema no se encuentra disponible en esta versión DEMO

9.9 With....End With

El tema no se encuentra disponible en esta versión DEMO

9.10 Uso de Select Case

El tema no se encuentra disponible en esta versión DEMO

Capítulo

X

10- Trabajando con fórmulas 66

© <2005=2010> Elsa M.Meyer (Elsamatilde)

10 10- Trabajando con fórmulas

10.1 Trabajando con fórmulas

El tema no se encuentra disponible en esta versión DEMO

10.2 INTRODUCIR FÓRMULAS EN CELDAS

Si la versión de Excel es en español y así aparecen las funciones en la barra de fórmulas, paracolocarlas en el Editor es necesario conocer las versiones en inglés de las funciones a utilizar.Por eso lo mejor es grabar una macro con la grabadora(* Ver capítulo Introducción- Cómo crear una macro), y luego ajustar las referencias.

Ejemplo 1: Restar un rango de otro

Sub formula1()Range("K10").Formula = "=+SUM(A1:J10)-SUM(K11:K12)"End Sub

Ejemplo 2: Devolver valores a la izquierda

Sabemos que BuscarV devuelve valores a derecha.Para devolver los que se encuentran a la izquierda del dato buscado, necesitamos utilizar lasfunciones Indice y Coincidir

Sub formula2ActiveCell.Formula = "=+INDEX(C:C,MATCH(F2,E:E,0))"End Sub

Esta fórmula aparecerá en la hoja como: =+INDICE(C:C;COINCIDIR(F2;E:E;0))

Nota: ver ejemplo completo en el capítulo 'Buscando Datos, Función BuscarV'

IMPORTANTE: la lista completa de funciones en Español e Inglés la encontrarán en el Manual:'Excelencias' de la misma autora.

Se entrega de forma gratuita con la compra de este manual

Manual 400 Macros Plus67

© <2005=2010> Elsa M.Meyer (Elsamatilde)

10.3 Armar fórmula con datos variables

El tema no se encuentra disponible en esta versión DEMO

10.4 Modificar fórmula de celda

El tema no se encuentra disponible en esta versión DEMO

10.5 Colocar resultado de fórmula en celdas

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XI

Manual 400 Macros Plus69

© <2005=2010> Elsa M.Meyer (Elsamatilde)

11 11- Trabajando con Objetos Insertados en Hoja

Por Objeto Insertado hago referencia a los objetos de la Barra de Herramientas Cuadro deControles o Formulario, como así también a los que se insertan con la Barra de Dibujo(Autoformas, Imagen, etc).Estos objetos se denominan Shapes o Pictures para las imágenes

Los ejemplos que encontrarán a continuación pueden adaptarse a cualquier objeto dentro de lamisma categoría, siguiendo las propiedades propias de cada uno.

11.1 Algunas consideraciones previas

El tema no se encuentra disponible en esta versión DEMO

11.2 ListBox, Combobox y Textbox

11.2.1 COMENTARIOS GENERALES

Las siguientes rutinas, son generales para cualquier control (ComboBox, Listbox, etc). Solo sedeberá reemplazar la expresión 'ComboBox' por 'ListBox' o el que corresponda.

Pero debemos tener en cuenta qué barra utilizamos para dibujar el control.

Ver imagen de la ubicación de las barras en nueva versión Excel2007 en la primerentrada de este capítulo.

En general he utilizado la barra de herramientas: Cuadro de controles o ActiveX

A continuación algunos ejemplos utilizando también la barra 'Formularios'

ActiveSheet.ComboBox1.Visible = True 'Cuadro de controlesActiveSheet.ListBox1.Visible = True 'Cuadro de controles

ActiveSheet.DropDowns("Lista desplegable 9").Visible=True 'Formularios

ActiveSheet.Shapes("Cuadro de lista 8").Visible = False 'Formularios

Nota: para conocer el nombre del objeto dibujado con esta barra, selecciona el mismo con clicderecho. A la derecha de la barra de fórmulas, aparecerá en el Cuadro de nombres, el nombredel control.

También haciendo clic derecho sobre el control, opción 'Asignar Macro' se verá en la ventanaemergente el nombre del control. Luego cancelar esta ventana.

11- Trabajando con Objetos Insertados en Hoja 70

© <2005=2010> Elsa M.Meyer (Elsamatilde)

11.2.2 Mostrar un Combobox al seleccionar hoja

El tema no se encuentra disponible en esta versión DEMO

11.2.3 Ocultar un Combobox luego de seleccionar opcion

El tema no se encuentra disponible en esta versión DEMO

11.2.4 Asignar rango a un Combobox

El tema no se encuentra disponible en esta versión DEMO

11.2.5 Enviar texto a las columnas de un Combobox

El tema no se encuentra disponible en esta versión DEMO

11.2.6 Enviar valor de un Combo a una celda

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus71

© <2005=2010> Elsa M.Meyer (Elsamatilde)

11.2.7 Seleccionar celda cuyo valor es el ingresado en Combobox

El tema no se e

11.2.8 Enviar valores de Combo de 4 columnas a celdas

El tema no se encuentra disponible en esta versión DEMO

11.2.9 Limpiar un combo

El tema no se encuentra disponible en esta versión DEMO

11.2.10 Crear controles por macro

El tema no se encuentra disponible en esta versión DEMO

11.2.11 Eliminar todos los controles de una hoja

El tema no se encuentra disponible en esta versión DEMO

11.2.12 Asignar ancho de columnas en Listbox

El tema no se encuentra disponible en esta versión DEMO

11.2.13 Activar hoja según valor en Lista Desplegable

El tema no se encuentra disponible en esta versión DEMO

11- Trabajando con Objetos Insertados en Hoja 72

© <2005=2010> Elsa M.Meyer (Elsamatilde)

11.2.14 Buscar valor del Combo en base Devolver otros datos en textbox

El tema no se encuentra disponible en esta versión DEMO

11.2.15 Mostrar valores al clic en control

El tema no se encuentra disponible en esta versión DEMO

11.2.16 Llenar un control Combobox con nombres de hojas

El tema no se encuentra disponible en esta versión DEMO

11.3 Cuadros de Texto

11.3.1 Insertar cuadro de texto y asignar algunas propiedades

El tema no se encuentra disponible en esta versión DEMO

11.3.2 Funciones de comprobacion

El tema no se encuentra disponible en esta versión DEMO

11.4 Imágenes

11.4.1 Cargar una imagen cuyo nombre se encuentra en una celda

El tema no se encuentra disponible en esta versión DEMO

11.4.2 Segun valor de celda, mostrar una imagen

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus73

© <2005=2010> Elsa M.Meyer (Elsamatilde)

11.4.3 Buscar una imagen e insertarla

El tema no se encuentra disponible en esta versión DEMO

11.4.4 Insertar imagenes sobre celdas (1)

El tema no se encuentra disponible en esta versión DEMO

11.4.5 Insertar imagenes sobre ciertas celdas (2)

El tema no se encuentra disponible en esta versión DEMO

11.4.6 Insertar imagenes de tamaño fijo

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XII

Manual 400 Macros Plus75

© <2005=2010> Elsa M.Meyer (Elsamatilde)

12 12- Controlando Teclas y Mensajes de Excel

12.1 Consideraciones generales

El tema no se encuentra disponible en esta versión DEMO

12.2 Impedir que se cancele una macro con ESC

El tema no se encuentra disponible en esta versión DEMO

12.3 Controlar la tecla ESC- Cancelar a criterio

El tema no se encuentra disponible en esta versión DEMO

12.4 No mostrar el cursor o la celda activa

El tema no se encuentra disponible en esta versión DEMO

12.5 Controlar las teclas Enter y Flechas Abajo_Arriba

El tema no se encuentra disponible en esta versión DEMO

12.6 Controlar otras teclas mediante código

El tema no se encuentra disponible en esta versión DEMO

12.7 Asignar una macro a una tecla especial

El tema no se encuentra disponible en esta versión DEMO

12- Controlando Teclas y Mensajes de Excel 76

© <2005=2010> Elsa M.Meyer (Elsamatilde)

12.8 Ejecutar una macro al presionar Enter

El tema no se encuentra disponible en esta versión DEMO

12.9 Ejecutar una macro con Doble click

El tema no se encuentra disponible en esta versión DEMO

12.10 Asignar mismo atajo de teclado a varias macros

El tema no se encuentra disponible en esta versión DEMO

12.11 NO MOSTRAR AVISOS DE ALERTA

Si se desean evitar los mensajes de alerta que Excel pueda enviar al ejecutar una macro, utilizarla propiedad DisplayAlerts con valor False

Application.DisplayAlerts= False

Esta línea, colocada delante de las instrucciones que posiblemente puedan devolver un mensajede alerta, hará que no se muestre el aviso y si necesita una respuesta por parte del usuario Exceltomará su valor predeterminado.

Ejemplo:

Al eliminar una hoja el aviso presenta 2 opciones: Aceptar (predeterminado) y Cancelar.Utilizando esta propiedad se evita el aviso y se toma como respuesta Aceptar.

La rutina completa es la siguiente:

Sub eliminaHoja()'evita que se exhiba el mensaje de alertaApplication.DisplayAlerts = False

'elimina la hojaSheets(3).Delete

'devolver a la propiedad su valor predeterminadoApplication.DisplayAlerts = True

End Sub

Manual 400 Macros Plus77

© <2005=2010> Elsa M.Meyer (Elsamatilde)

12.12 No mostrar aviso, al guardar un archivo, de que el archivo yaexiste:

El tema no se encuentra disponible en esta versión DEMO

12.13 No mostrar la ejecución de la macro o el movimiento de hojas:

El tema no se encuentra disponible en esta versión DEMO

12.14 Inhabilitar eventos

El tema no se encuentra disponible en esta versión DEMO

12.15 Crear atajos de teclado desde una macro

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XIII

Manual 400 Macros Plus79

© <2005=2010> Elsa M.Meyer (Elsamatilde)

13 13- Controlando Errores

13.1 ON ERROR RESUME NEXT

Un buen programa debe controlar los posibles errores imprevistos que pueden aparecer alejecutarse el mismo, y que permitan seguir o cancelar el proceso normalmente.

Por ejemplo, antes de la instrucción Print (imprimir) se debe agregar una instrucción quecontrole el error que puede producirse si el sistema no encuentra una impresora instalada.

Las principales instrucciones para control de errores que veremos en este capítulo, deben sercolocadas en las rutinas de Impresión, Apertura y guardado de libros, al insertar objetos comoimágenes, que son las que con mayor frecuencia originan errores en las macros.

La sentencia On Error Resume Next permite ignorar un error y avanzar a la siguenteinstrucción en la ejecución de un procedimiento.

Ejemplo:Sub miMacro()On Error Resume NextIntrucción 1Instrucción 2End Sub

El incluir la sentencia On Error Resume Next antes de la instrucción 1 implica que si se producealgún error el programa lo ignorará y continuará con la instrucción siguiente.

13.2 On Error GoTo ....

El tema no se encuentra disponible en esta versión DEMO

13.3 On Error GoTo 0

El tema no se encuentra disponible en esta versión DEMO

13.4 Err

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XIV

Manual 400 Macros Plus81

© <2005=2010> Elsa M.Meyer (Elsamatilde)

14 14- Trabajando con Barras, Menues y Pestañas

14.1 Consideraciones generales para Barras y otros

El tema no se encuentra disponible en esta versión DEMO

14.2 OCULTAR LAS PESTAÑAS DE LAS HOJAS

El método para manipular las pestañas de las hojas es: DisplayWorkbookTabs, que con valoresen True o False las mostrará o las ocultará.

Ejemplo:

Sub muestrahojas ()'ocultar las pestañasActiveWindow.DisplayWorkbookTabs = FalseEnd Sub

14.3 Ocultar las barras de desplazamiento

El tema no se encuentra disponible en esta versión DEMO

14.4 Ocultar los encabezados de filas y columnas

El tema no se encuentra disponible en esta versión DEMO

14.5 Ocultar barras de herramientas

El tema no se encuentra disponible en esta versión DEMO

14.6 Ocultar la barra principal de Excel

El tema no se encuentra disponible en esta versión DEMO

14- Trabajando con Barras, Menues y Pestañas 82

© <2005=2010> Elsa M.Meyer (Elsamatilde)

14.7 Ocultar elementos de la barra principal

El tema no se encuentra disponible en esta versión DEMO

14.8 Conocer número de barras y controles

El tema no se encuentra disponible en esta versión DEMO

14.9 Ocultar opciones de Impresion y Otras

El tema no se encuentra disponible en esta versión DEMO

14.10 Ocultar opciones Cortar y Copiar

El tema no se encuentra disponible en esta versión DEMO

14.11 Crear una barra personal con macro

El tema no se encuentra disponible en esta versión DEMO

14.12 Mostrar una barra de herramientas personal

El tema no se encuentra disponible en esta versión DEMO

14.13 Quitar una barra personal al salir

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus83

© <2005=2010> Elsa M.Meyer (Elsamatilde)

14.14 Impedir el uso del clic derecho

El tema no se encuentra disponible en esta versión DEMO

14.15 Ejecutar macro al clic derecho

El tema no se encuentra disponible en esta versión DEMO

14.16 Mostrar mensaje en Barra de Estado

El tema no se encuentra disponible en esta versión DEMO

14.17 Mostrar cajas de diálogo de Excel

El tema no se encuentra disponible en esta versión DEMO

14.18 Eliminar menu contextual de Objetos

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XV

Manual 400 Macros Plus85

© <2005=2010> Elsa M.Meyer (Elsamatilde)

15 15- Uso de Cuadros de Mensaje

15.1 Construcción de MsgBox

El tema no se encuentra disponible en esta versión DEMO

15.2 MsgBox como PopUp

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XVI

Manual 400 Macros Plus87

© <2005=2010> Elsa M.Meyer (Elsamatilde)

16 16- Uso de InputBox

16.1 CONSTRUCCIÓN DE INPUTBOX

Los InputBox muestran un mensaje en un cuadro de diálogo, esperan que el usuario escriba untexto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto.

Sintaxis:

InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

Prompt: expresión de cadena que se muestra como un mensaje de texto en un cuadro dediálogo

Title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo.Si omite title, en la barra de título se coloca el nombre de la aplicación.

Default Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuestapredeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro detexto vacío.

xpos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontalentre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omitexpos, el cuadro de diálogo se centra horizontalmente.ypos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entreel borde superior del cuadro de diálogo y el borde superior de la pantalla.

Helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utilizará paraproporcionar ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, tambiéndeberá especificarse context.Context Opcional. Expresión numérica que es el número de contexto de Ayuda asignado por elautor al tema de Ayuda correspondiente. Si se especifica context, también deberá especificarsehelpfile.

Type Variant opcional. Especifica el tipo de datos que se devuelve.

Ejemplo: solicitar una clave de ingreso

Sub SolicitoClave()Dim miClave as StringmiClave = InputBox("Ingrese Clave", "*** Solicitud ***")'si la clave es correctaIf miClave = "Macros" then'se desproteje la Hoja2Sheets("Hoja2").UnprotectEnd IfEnd Sub

Nota: Podría utilizarse la misma clave de usuario para desproteger la hoja:

Sheets("Hoja2").Unprotect miclave

16- Uso de InputBox 88

© <2005=2010> Elsa M.Meyer (Elsamatilde)

16.2 Controlar que se ha ingresado un valor

El tema no se encuentra disponible en esta versión DEMO

16.3 Establecer un valor predeterminado en un InputBox

El tema no se encuentra disponible en esta versión DEMO

16.4 Controlar que lo ingresado a un InputBox sea referencia válida

El tema no se encuentra disponible en esta versión DEMO

16.5 Ingresar y seleccionar un rango con InputBox

El tema no se encuentra disponible en esta versión DEMO

16.6 Seleccionar datos en un rango

El tema no se encuentra disponible en esta versión DEMO

16.7 Controlar que el dato ingresado sea fecha

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XVII

17- Buscando Datos 90

© <2005=2010> Elsa M.Meyer (Elsamatilde)

17 17- Buscando Datos

17.1 Buscar una hoja en cierto libro

El tema no se encuentra disponible en esta versión DEMO

17.2 Devolver en una celda el resultado de una búsqueda

El tema no se encuentra disponible en esta versión DEMO

17.3 Devolver todos los resultados de una búsqueda

El tema no se encuentra disponible en esta versión DEMO

17.4 Buscar un dato. Copiar la fila de todos los registros encontrados

El tema no se encuentra disponible en esta versión DEMO

17.5 Buscar un dato en un rango, posicionarse y seguir buscando

El tema no se encuentra disponible en esta versión DEMO

17.6 Controlar si un valor resultado se encuentra en la base

El tema no se encuentra disponible en esta versión DEMO

17.7 Función BuscarV devolviendo valores a la izquierda

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus91

© <2005=2010> Elsa M.Meyer (Elsamatilde)

17.8 Buscar cierto dato en un rango. Si se encuentra borrar la fila quelo contiene

El tema no se encuentra disponible en esta versión DEMO

17.9 BUSCAR DATOS DE 1 COLUMNA EN OTRA Y BORRAR LOSREPETIDOS

Esta rutina elimina datos duplicados. Se recorre una columna, que puede estar en otra hoja oen la misma. Si los datos se encuentran en la otra lista se borra la fila del dato encontrado.

Este ejemplo es útil cuando se tienen 2 tablas con los mismos datos y se desea conservar solo losdatos únicos.

La columna a recorrer es la A, el rango donde se buscará ese dato va de F2 a F15, y se borranlas celdas de A a C de la fila donde se encuentra el dato.

Sub EliminaDuplicados()Dim rango As StringDim dato As StringDim midato As ObjectDim fila As Byte'rango donde se efectuará la búsquedarango = "F2:F15"'se recorre la columna D hasta la primer celda vacíaRange("A2").SelectWhile ActiveCell.Value <> ""'el contenido de la celda será el dato a buscardato = ActiveCell.Value'se busca en el rango indicadoSet midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)'si la búsqueda es exitosa.....If Not midato Is Nothing Then'se guarda el número de fila en la variablefila = ActiveCell.Row'se borra el contenido del rango A:C de esa filaRange("A" & fila & ":C" & fila).DeleteElse'si el dato no fue encontrado se pasa a la celda siguienteActiveCell.Offset(1, 0).SelectEnd If'se repite el procesoWendSet midato = NothingEnd Sub

17- Buscando Datos 92

© <2005=2010> Elsa M.Meyer (Elsamatilde)

17.10 Evitar duplicados al cargar una base

El tema no se encuentra disponible en esta versión DEMO

17.11 Buscar un dato. Devolver en Textbox toda la fila

El tema no se encuentra disponible en esta versión DEMO

17.12 Obtener el valor de la ultima celda de una fila

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XVIII

18- Evaluando y Comparando Datos 94

© <2005=2010> Elsa M.Meyer (Elsamatilde)

18 18- Evaluando y Comparando Datos

18.1 Comparando cadenas

El tema no se encuentra disponible en esta versión DEMO

18.2 Evaluar si una celda guarda fechas

El tema no se encuentra disponible en esta versión DEMO

18.3 Evaluar si un dato es numérico o no

El tema no se encuentra disponible en esta versión DEMO

18.4 EVALUAR SI UNA CELDA PRESENTA ERROR

Si efectuamos cálculos con una macro, podemos necesitar evaluar si el resultado de una celdapresenta error, como por ejemplo un valor no encontrado con la función Buscar o comoresultado de una división por 0.

Para esto utilizamos la función IsError

Ejemplo:

If IsError(ActiveCell.Value) Then'instrucciones para cuando el resultado es error

else'instruciones si no da error

End If

18.5 Eliminar filas si las celdas de cierta columna están vacías

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus95

© <2005=2010> Elsa M.Meyer (Elsamatilde)

18.6 Eliminar fila si varios datos del registro cumplen una condición

El tema no se encuentra disponible en esta versión DEMO

18.7 Rellenar celdas vacías de un rango con cierto valor

El tema no se encuentra disponible en esta versión DEMO

18.8 Evaluar el color de celda

El tema no se encuentra disponible en esta versión DEMO

18.9 Eliminar filas vacías

El tema no se encuentra disponible en esta versión DEMO

18.10 Contar celdas con igual color de fuente

El tema no se encuentra disponible en esta versión DEMO

18.11 Ordenar - Controlar - borrar repetidos

El tema no se encuentra disponible en esta versión DEMO

18.12 Comparar cadenas que pueden estar en mayúsculas ominúsculas

El tema no se encuentra disponible en esta versión DEMO

18- Evaluando y Comparando Datos 96

© <2005=2010> Elsa M.Meyer (Elsamatilde)

18.13 Extraer la parte numérica de una cadena

El tema no se encuentra disponible en esta versión DEMO

18.14 Armar tabla con valores no duplicados

El tema no se encuentra disponible en esta versión DEMO

18.15 Armar Listas validadas, sin duplicados

El tema no se encuentra disponible en esta versión DEMO

18.16 Comparar 2 columnas. Copiar en otra las filas que coinciden

El tema no se encuentra disponible en esta versión DEMO

18.17 Comparar 2 columnas. Copiar las que NO coinciden

El tema no se encuentra disponible en esta versión DEMO

18.18 Bloquear celdas según fecha

El tema no se encuentra disponible en esta versión DEMO

18.19 Evaluando si celdas contienen #N/A-Copiar en otro destino

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XIX

19- Copiando Datos 98

© <2005=2010> Elsa M.Meyer (Elsamatilde)

19 19- Copiando Datos

19.1 Copiar rango de datos de una hoja a la siguiente

El tema no se encuentra disponible en esta versión DEMO

19.2 Copiar solo filas impares

El tema no se encuentra disponible en esta versión DEMO

19.3 COPIAR SOLO VALORES - PEGADO ESPECIAL

Para realizar una copia con Pegado Especial, con la opción que presenta el menú Edición: solovalores, este es el código:

Sub PegarValor()'previamente se habrá seleccionado el rango a copiarSelection.CopySelection.PasteSpecial Paste:=xlValues'inhabilita el modo Copiar/PegarApplication.CutCopyMode = FalseEnd Sub

Lo que logramos con estas instrucciones es dejar una celda que contiene fórmulas, solo con suvalor, copiando y pegando sobre sí misma.

19.4 Copiar formato - Pegado Especial

El tema no se encuentra disponible en esta versión DEMO

19.5 Pegado Especial sin seleccionar

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus99

© <2005=2010> Elsa M.Meyer (Elsamatilde)

19.6 Quitar fórmulas en celdas de color

El tema no se encuentra disponible en esta versión DEMO

19.7 Copiar una fórmula en la celda siguiente

El tema no se encuentra disponible en esta versión DEMO

19.8 Copiar cierta fila en otro libro. Conocer última fila con datos

El tema no se encuentra disponible en esta versión DEMO

19.9 Copiar un rango de filas en otro libro Resumen

El tema no se encuentra disponible en esta versión DEMO

19.10 Duplicar una hoja- La copia tendrá los valores, no las fórmulas

El tema no se encuentra disponible en esta versión DEMO

19.11 Copiar varios libros en uno solo

El tema no se encuentra disponible en esta versión DEMO

19.12 Copiar cabecera o columna de títulos

El tema no se encuentra disponible en esta versión DEMO

19- Copiando Datos 100

© <2005=2010> Elsa M.Meyer (Elsamatilde)

19.13 Copiar celdas de color en otro destino- Eliminar fila

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XX

20- Uso de Temporizador 102

© <2005=2010> Elsa M.Meyer (Elsamatilde)

20 20- Uso de Temporizador

20.1 CARACTERÍSTICAS DEL MÉTODO ONTIME

Para realizar tareas automáticamente en cierto tiempo, se utiliza el método OnTime, cuyasintaxis es la siguiente:

expresión.OnTime(EarliestTime, Procedure, LatestTime, Schedule)

EarliestTime Variant requerida. La hora a la que se desea ejecutar este procedimiento.

Procedure String requerida. El nombre del procedimiento que se desea ejecutar.

LatestTime Variant opcional. Es la hora límite a partir de la cual ya no se ejecutará elprocedimiento. Por ejemplo, si LatestTime se establece como EarliestTime + 30 y MicrosoftExcel no se encuentra en los modos Listo, Copiar, Cortar ni Buscar a la hora EarliestTime,porque se está ejecutando otro procedimiento, Microsoft Excel esperará 30 segundos para que setermine de ejecutar el primer procedimiento. Si Microsoft Excel no está en el modo Listo despuésde 30 segundos, el procedimiento no se ejecutará. Si este argumento se omite, Microsoft Excelesperará hasta que pueda ejecutarse el procedimiento.schedule: True para programar un nuevo procedimiento OnTime. False para anular unprocedimiento establecido previamente. El valor predeterminado es True.

Ejemplos:

1- Ejecutar mi_rutina en 15 segundos a partir de este momento:

Application.OnTime Now + TimeValue("00:00:15"), "mi_rutina"

2- Este ejemplo ejecutará my_Procedure a las 5 p.m.

Application.OnTime TimeValue("17:00:00"), "mi_rutina"

3- Este ejemplo cancela el valor de OnTime del ejemplo anterior.

Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="mi_rutina", Schedule:=False

20.2 Guardar el libro cada minuto

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus103

© <2005=2010> Elsa M.Meyer (Elsamatilde)

20.3 Mostrar un Userform durante un tiempo y ocultarlo

El tema no se encuentra disponible en esta versión DEMO

20.4 Lllamar a un Userform por unos segundos

El tema no se encuentra disponible en esta versión DEMO

20.5 Activar otra hoja cada tantos minutos

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXI

Manual 400 Macros Plus105

© <2005=2010> Elsa M.Meyer (Elsamatilde)

21 21- Trabajando con Filtros

21.1 Establecer criterio para filtro

El tema no se encuentra disponible en esta versión DEMO

21.2 Filtro en hoja protegida

El tema no se encuentra disponible en esta versión DEMO

21.3 Autofiltros con campos fecha

El tema no se encuentra disponible en esta versión DEMO

21.4 Establecer AutoFiltro con criterios en otra hoja

El tema no se encuentra disponible en esta versión DEMO

21.5 APLICAR FILTRO AVANZADO Y COPIAR RESULTADO

Esta rutina aplica un Filtro Avanzado y copia las celdas resultantes en otro destino.

Para utilizarla solo deberá modificar las ubicaciones de los datos. En el ejemplo se utilizó las filas1 y 2 para los criterios, y la base se encuentra desde A4 hasta C10. El destino del rango acopiar es la misma hoja desde A14. (* para copiar en otra hoja Ver Notas)

Sub FiltroAvanzado()'seleccionar una celda de la base a filtrarRange("A4").Select'establecer el rango de la base, las filas donde se encuentran los criterios y las celdas dedestinoRange("A4:C10").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _"A1:B2"), CopyToRange:= Range("A14:C14"), Unique:=FalseEnd Sub

Notas: si el destino será otra hoja modificar la instrucción anterior donde dice:

21- Trabajando con Filtros 106

© <2005=2010> Elsa M.Meyer (Elsamatilde)

CopyToRange:= Range("A14:C14")

por la siguiente:

CopyToRange:= Sheets("Hoja3").Range("A14:C14")

21.6 Copiar solo las filas de un Filtro avanzado en otra hoja

El tema no se encuentra disponible en esta versión DEMO

21.7 Copiar celdas filtradas sin los títulos

El tema no se encuentra disponible en esta versión DEMO

21.8 Obtener la primer fila de un filtro

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus107

© <2005=2010> Elsa M.Meyer (Elsamatilde)

21.9 Obtener el total de celdas filtradas

El tema no se encuentra disponible en esta versión DEMO

21.10 Seleccionar en un rango filtrado, la celda que tiene el valor de unComboBox

El tema no se encuentra disponible en esta versión DEMO

21.11 Sumar una columna de datos en un rango filtrado

El tema no se encuentra disponible en esta versión DEMO

21.12 Quitar autofiltros solo a ciertas columnas

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXII

Manual 400 Macros Plus109

© <2005=2010> Elsa M.Meyer (Elsamatilde)

22 22- Trabajando con Gráficos

22.1 Seleccionar un gráfico ignorando su nombre

El tema no se encuentra disponible en esta versión DEMO

22.2 Cortar un gráfico de una hoja y pegarlo en otra

El tema no se encuentra disponible en esta versión DEMO

22.3 Asignar los datos de origen de un gráfico

El tema no se encuentra disponible en esta versión DEMO

22.4 Crear un gráfico en hoja nueva y guardar el libro

El tema no se encuentra disponible en esta versión DEMO.

22.5 Crear gráfico con datos de hoja variable

El tema no se encuentra disponible en esta versión DEMO

22.6 Imprimir gráfico y tabla que lo alimenta

El tema no se encuentra disponible en esta versión DEMO

22- Trabajando con Gráficos 110

© <2005=2010> Elsa M.Meyer (Elsamatilde)

22.7 MODIFICANDO DIMENSIONES DE TODOS LOS GRAFICOS

Este ejemplo modifica las dimensiones de todos los gráficos que se encuentren en una hoja.

Sub DimensionandoGraficos()Dim grafico As ChartObject'recorre todos los gráficos de la hoja activaFor Each grafico In ActiveSheet.ChartObjects 'modifica alto y ancho (*ver Notas) grafico.Height = 200 grafico.Width = 250NextEnd Sub

Notas: otras aplicaciones para esta rutina: eliminar todos los gráficos, copiarlos en otra hoja,ajustar colores, etc

22.8 Copiar todos los graficos en otra hoja

El tema no se encuentra disponible en esta versión DEMO

22.9 Eliminar todos los graficos de una hoja

El tema no se encuentra disponible en esta versión DEMO

22.10 Colorear series por macro

El tema no se encuentra disponible en esta versión DEMO

22.11 Ubicando un gráfico por macro

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus111

© <2005=2010> Elsa M.Meyer (Elsamatilde)

22.12 Recorrer todos los gráficos del libro

El tema no se encuentra disponible en esta versión DEMO

22.13 Reconocer el área del gráfico seleccionado

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXIII

Manual 400 Macros Plus113

© <2005=2010> Elsa M.Meyer (Elsamatilde)

23 23- Trabajando con Userforms

23.1 Generalidades - Crear un Userform

El tema no se encuentra disponible en esta versión DEMO

23.2 Mostrar un Userform

El tema no se encuentra disponible en esta versión DEMO

23.3 MOSTRAR UN USERFORM EN EL TOPE DE LA VENTANA

Para mostrar un Userform en el tope de la ventana debemos establecer su propiedad Top en 0

El ejemplo muestra además los valores para ser ubicado el formulario en el extremo izquierdo oderecho

Esta rutina se colocará haciendo doble click sobre el formulario para pasar a la sección código.

Private Sub UserForm_Activate() With Me'la ubicación será a derecha .Left = Application.Width - .Width'o la ubicación será a izquierda

'.Left = 0'para ubicarlo al tope de la ventana .Top = 0 End WithEnd Sub

23.4 Ocultar un Userform

El tema no se encuentra disponible en esta versión DEMO

23- Trabajando con Userforms 114

© <2005=2010> Elsa M.Meyer (Elsamatilde)

23.5 Cerrar un Userform

El tema no se encuentra disponible en esta versión DEMO

23.6 Desactivar el botón 'Cerrar' de un Userform

El tema no se encuentra disponible en esta versión DEMO

23.7 Inmovilizar un Userform

El tema no se encuentra disponible en esta versión DEMO

23.8 Cargar valores de inicio

El tema no se encuentra disponible en esta versión DEMO

23.9 Volcar datos de un Userform a una hoja

El tema no se encuentra disponible en esta versión DEMO

23.10 Actualizar base con datos del Userform

El tema no se encuentra disponible en esta versión DEMO

23.11 Seleccionar datos desde un Userform-RefEdit

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus115

© <2005=2010> Elsa M.Meyer (Elsamatilde)

23.12 Seleccionar rango para eliminar duplicados

El tema no se encuentra disponible en esta versión DEMO

23.13 Agrandar un Frame a medida que se ingresan datos

El tema no se encuentra disponible en esta versión DEMO

23.14 Validar campos numéricos en Textbox

El tema no se encuentra disponible en esta versión DEMO

23.15 Validar campos fecha en Textbox

El tema no se encuentra disponible en esta versión DEMO

23.16 Establecer separadores en campos fecha en textbox

El tema no se encuentra disponible en esta versión DEMO

23.17 Ingresar fechas sin formato en Textbox

El tema no se encuentra disponible en esta versión DEMO

23.18 Asignar formato moneda a un TextBox

El tema no se encuentra disponible en esta versión DEMO

23- Trabajando con Userforms 116

© <2005=2010> Elsa M.Meyer (Elsamatilde)

23.19 Asignar formato Password a un textbox

El tema no se encuentra disponible en esta versión DEMO

23.20 Limpiar todos los textbox de un Userform

El tema no se encuentra disponible en esta versión DEMO

23.21 Guardar un dato del Userform antes de cerrarlo

El tema no se encuentra disponible en esta versión DEMO

23.22 Agregar un Grafico en un Userform

El tema no se encuentra disponible en esta versión DEMO

23.23 Trabajando con controles Listbox y Combobox

El tema no se encuentra disponible en esta versión DEMO

23.24 Llenar un control ListBox con nombres de hojas

El tema no se encuentra disponible en esta versión DEMO

23.25 Ejecutar una macro según valor seleccionado en Combobox

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXIV

24- Trabajando con Tablas Dinámicas 118

© <2005=2010> Elsa M.Meyer (Elsamatilde)

24 24- Trabajando con Tablas Dinámicas

24.1 Comentarios sobre Tablas Dinámicas

El tema no se encuentra disponible en esta versión DEMO

24.2 Evitar la actualización automática de TD

El tema no se encuentra disponible en esta versión DEMO

24.3 OBTENER EL TOTAL DE UNA TABLA DINÁMICA

Conociendo el nombre o número de índice de una TD y conociendo el nombre del campoTotal, se puede obtener en una celda, el valor de este campo

Sub totalTD()'se selecciona el campo a devolverActiveSheet.PivotTables("Tabla dinámica3").PivotSelect "Total 'Suma de TOTAL3'",xlDataOnly, True

'se coloca el valor seleccionado en la celdaRange("B22") = Selection.ValueEnd Sub

Nota: Observar que se está trabajando con una tabla denominada Tabla dinámica3 y cuentacon un campo denominado Suma de TOTAL3

Manual 400 Macros Plus119

© <2005=2010> Elsa M.Meyer (Elsamatilde)

24.4 Convetir un campo en un campo de filas

El tema no se encuentra disponible en esta versión DEMO

24.5 Eliminar todas las Tablas Dinamicas de una hoja

El tema no se encuentra disponible en esta versión DEMO

24.6 Uso de variables en TD

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXV

Manual 400 Macros Plus121

© <2005=2010> Elsa M.Meyer (Elsamatilde)

25 25- Impresión

25.1 Imprimir hojas

El tema no se encuentra disponible en esta versión DEMO

25.2 Vista previa

El tema no se encuentra disponible en esta versión DEMO

25.3 Establecer área de impresión:

El tema no se encuentra disponible en esta versión DEMO

25.4 IMPEDIR LA IMPRESIÓN

En el objeto ThisWorkbook (Este Libro) colocar la siguiente rutina que impide que se ejecutetanto Vista Previa como la impresión de todo o parte del documento.

Private Sub Workbook_BeforePrint(Cancel As Boolean)Cancel = TrueEnd Sub

25.5 Enviar información al Encabezado y Pié

El tema no se encuentra disponible en esta versión DEMO

25.6 Instrucciones para configurar la página

El tema no se encuentra disponible en esta versión DEMO

25- Impresión 122

© <2005=2010> Elsa M.Meyer (Elsamatilde)

25.7 Llamar al cuadro de opciones para Imprimir

El tema no se encuentra disponible en esta versión DEMO

25.8 Elegir impresora por medio de código

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXVI

26- Trabajando con el entorno Excel 124

© <2005=2010> Elsa M.Meyer (Elsamatilde)

26 26- Trabajando con el entorno Excel

26.1 Ocultar Excel

El tema no se encuentra disponible en esta versión DEMO

26.2 Ocultar Excel por cierto tiempo

El tema no se encuentra disponible en esta versión DEMO

26.3 Quitar la lista de archivos abiertos del menú Archivo

El tema no se encuentra disponible en esta versión DEMO

26.4 Importar datos de otro libro Excel

El tema no se encuentra disponible en esta versión DEMO

26.5 Obtener la lista de archivos Excel de una carpeta

El tema no se encuentra disponible en esta versión DEMO

26.6 Ocultar botones de Minimizar y Maximizar

El tema no se encuentra disponible en esta versión DEMO

26.7 Inhabilitar el botón de Cerrar de Excel

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus125

© <2005=2010> Elsa M.Meyer (Elsamatilde)

26.8 Evitar el cierre accidental de Excel

El tema no se encuentra disponible en esta versión DEMO

26.9 Ejecutar rutinas o funciones de otros libros

El tema no se encuentra disponible en esta versión DEMO

26.10 OBTENER LISTADO DE RUTINAS DE UN LIBRO

La siguiente rutina nos devolverá un listado con el nombre de todas las rutinas que contieneel libro activo.

Esto también se puede lograr con otros libros. En ese caso reemplazar el término'ActiveWorkBook' por el nombre del libro que deseamos revisar.

La información puede ser devuelta en MsgBox o si estimamos que la lista será extensa, podemoscolocar los valores en celdas como se programó este ejemplo.

Sub ListadoSubrutinas() Dim linea, inicio As Integer Dim linea1 As String Dim objeto As Object'se analiza cada objeto del proyecto activoFor Each objeto In ActiveWorkbook.VBProject.VBComponents'se analiza si el objeto = 1 (modulo). Otros objetos son: 2=class, 3= Userform, 100 = HojasIf objeto.Type = 1 Then'se recorren las líneas del primer módulo hasta el total de líneas For linea = 1 To objeto.CodeModule.CountOfLines linea1 = objeto.CodeModule.Lines(linea, 1) 'se remueven los espacios iniciales linea1 = Trim$(linea1) 'analizamos si se trata de una Sub-rutina If Left$(linea1, 3) = "Sub" Then 'se calcula el largo hasta () inicio = InStr(linea1, "()") If inicio > 0 Then 'se guarda el nombre en la celda ActiveCell.Value = Mid$(linea1, 4, inicio - 4) ActiveCell.Offset(1, 0).Select End If End If Next lineaEnd IfNext objetoEnd Sub

26- Trabajando con el entorno Excel 126

© <2005=2010> Elsa M.Meyer (Elsamatilde)

IMPORTANTE: En versión Excel 2007, para poder tener acceso al objeto VBProyect, se requiereconfigurar la opción desde el Centro de Confianza.

Pasos a seguir:1- Desde la hoja, botón de Office, Opciones de Excel, Centro de confianza.2- Presionar botón: Configuración del Centro de confianza.3- De la lista seleccionar Configuración de Macros y tildar la opción 'Confiar en el accesoal modelo ......'

26.11 Exportar módulos

El tema no se encuentra disponible en esta versión DEMO

26.12 Importar módulos guardados como txt

El tema no se encuentra disponible en esta versión DEMO

26.13 Eliminar código

El tema no se encuentra disponible en esta versión DEMO

26.14 Eliminar codigo de cierto objeto o modulo

El tema no se encuentra disponible en esta versión DEMO

26.15 Saber si un archivo existe en un directorio

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus127

© <2005=2010> Elsa M.Meyer (Elsamatilde)

26.16 Eliminar un archivo del directorio

El tema no se encuentra disponible en esta versión DEMO

26.17 Iniciar una nueva sesión de Excel

El tema no se encuentra disponible en esta versión DEMO

26.18 Quitar colores a la lista de la herramienta Relleno

El tema no se encuentra disponible en esta versión DEMO

26.19 Restablecer la paleta de colores

El tema no se encuentra disponible en esta versión DEMO

26.20 Determinar el tiempo que demora una rutina

El tema no se encuentra disponible en esta versión DEMO

26.21 Fijar las mayusculas para todo el libro

El tema no se encuentra disponible en esta versión DEMO

26.22 Habilitar o no la tecla BLOQNUM

El tema no se encuentra disponible en esta versión DEMO

26- Trabajando con el entorno Excel 128

© <2005=2010> Elsa M.Meyer (Elsamatilde)

26.23 Llamar a un archivo HELP

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXVII

27- Trabajando con otras aplicaciones 130

© <2005=2010> Elsa M.Meyer (Elsamatilde)

27 27- Trabajando con otras aplicaciones

27.1 COPIAR CELDAS EXCEL A UN DOC WORD

Si necesitamos copiar celdas a un documento Word, previamente debemos habilitar lareferencia Microsoft Word 10.0 Object Library (para la versión XP, 12 para 2007) desde elmenú Herramientas, Referencias del Editor de macros.

En este ejemplo se selecciona un rango de celdas y a continuación se ejecuta la rutina, quepuede estar asociada a un botón o atajo de teclado.

Copiar la macro en un módulo:

Sub ExcelWord()'copia el rango seleccionado previamenteSelection.Copy

'crea una nueva aplicación WordDim appWord As Word.ApplicationSet appWord = New Word.Application'activa la aplicación Word haciéndola visibleWith appWord .Visible = True .ActivateEnd With

'crea un nuevo documento WordappWord.Documents.Add

'pega las celdas copiadasappWord.Selection.Paste

'libera el objeto WordSet appWord = Nothing

End Sub

NOTA: Esta rutina copia las celdas seleccionadas y las pega como TABLA en Word

27.2 Abrir un archivo de texto (CSV)

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus131

© <2005=2010> Elsa M.Meyer (Elsamatilde)

27.3 Imprimir un documento Word desde Excel

El tema no se encuentra disponible en esta versión DEMO

27.4 Importar Datos de Outlook

El tema no se encuentra disponible en esta versión DEMO

27.5 Enviar un libro por Mail

El tema no se encuentra disponible en esta versión DEMO

27.6 Enviar un mail

El tema no se encuentra disponible en esta versión DEMO

27.7 Enviar cuerpo de correo con saltos de línea

El tema no se encuentra disponible en esta versión DEMO

27.8 Importar datos de Access

El tema no se encuentra disponible en esta versión DEMO

27.9 Llamar a la Calculadora

El tema no se encuentra disponible en esta versión DEMO

27- Trabajando con otras aplicaciones 132

© <2005=2010> Elsa M.Meyer (Elsamatilde)

27.10 Llamar a la aplicación WinZip

El tema no se encuentra disponible en esta versión DEMO

27.11 Ejecutar archivo de sonido al cambio en celda

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXVIII

28- Creando Complementos 134

© <2005=2010> Elsa M.Meyer (Elsamatilde)

28 28- Creando Complementos

28.1 Cómo crear un Complemento

El tema no se encuentra disponible en esta versión DEMO

28.2 Habilitar complementos

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXIX

29- Funciones definidas por Usuario (UDF) 136

© <2005=2010> Elsa M.Meyer (Elsamatilde)

29 29- Funciones definidas por Usuario (UDF)

29.1 CREAR FUNCIONES PERSONALES

Hemos visto hasta ahora cómo escribir rutinas que se ejecutan ante ciertos eventos (como abrir ycerrar libros, al cambiar de hojas, etc) o al ser llamadas por el usuario (al clic en un botón, poratajo de teclado o desde menú Herramientas, Macros) para que realice alguna tarea especial.

Una función en cambio, es código creado para devolver un valor en una celda, de la mismamanera que cuando escribimos en la hoja Excel:

=Promedio(argumentos)

Las funciones personales, cuando son colocadas en un módulo del libro, solo podrá serutilizada en este libro.

Atención: Recomiendo dar un nombre al módulo para reconocer rápidamente su contenido. Paraello, seleccionar el módulo y modificar su propiedad Name.

Cuando son colocadas en módulos de un libro que luego se guarda como complemento (xla oxlam) según lo visto en el capítulo anterior, podrán ser utilizadas desde cualquier libro Excel(ver pasos en capítulo anterior)

Para utilizarlas, presionar el botón Funciones, (Más funciones) y buscar las de la categoría'Definidas por el usuario'

En Excel 2007, buscar en la tira de opciones la ficha Fórmulas, y allí la primer opción:Insertar Función . Luego buscar la categoría Definidas por usuario.

29.2 Sintaxis de funciones

El tema no se encuentra disponible en esta versión DEMO

29.3 Funcion Numeros a Letras

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus137

© <2005=2010> Elsa M.Meyer (Elsamatilde)

29.4 Funcion Calculo del NIF (Identificador en España)

El tema no se encuentra disponible en esta versión DEMO

29.5 Funcion Digito Verificador (RUT)

El tema no se encuentra disponible en esta versión DEMO

29.6 Funcion BuscarV en varias hojas

El tema no se encuentra disponible en esta versión DEMO

29.7 Funcion Buscar el enésimo elemento

El tema no se encuentra disponible en esta versión DEMO

29.8 Funcion Encontrar ultimo dato

El tema no se encuentra disponible en esta versión DEMO

29.9 Funcion Sumar rango con error

El tema no se encuentra disponible en esta versión DEMO

29.10 Función Contar celdas de cierto color

El tema no se encuentra disponible en esta versión DEMO

29- Funciones definidas por Usuario (UDF) 138

© <2005=2010> Elsa M.Meyer (Elsamatilde)

29.11 Funcion Sumar celdas de cierto color

El tema no se encuentra disponible en esta versión DEMO

29.12 Funcion Extraer números a la derecha de una cadena

El tema no se encuentra disponible en esta versión DEMO

29.13 Función Contar número de vocales en una cadena

El tema no se encuentra disponible en esta versión DEMO

29.14 Función Contar número de consonantes en una cadena

El tema no se encuentra disponible en esta versión DEMO

29.15 Funcion Contar numeros pares

El tema no se encuentra disponible en esta versión DEMO

29.16 Funcion Contar numeros impares

El tema no se encuentra disponible en esta versión DEMO

29.17 Funcion Fecha creación del libro

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus139

© <2005=2010> Elsa M.Meyer (Elsamatilde)

29.18 Funcion Fecha ultima modificacion del libro

El tema no se encuentra disponible en esta versión DEMO

29.19 Funcion Binario (para > 500)

El tema no se encuentra disponible en esta versión DEMO

29.20 Funcion Reconocer numeros Primos

El tema no se encuentra disponible en esta versión DEMO

29.21 Funcion Nombre Dia

El tema no se encuentra disponible en esta versión DEMO

29.22 Funcion Nombre Mes

El tema no se encuentra disponible en esta versión DEMO

Capítulo

XXX

Manual 400 Macros Plus141

© <2005=2010> Elsa M.Meyer (Elsamatilde)

30 30- Otras Rutinas Interesantes

30.1 MOSTRAR VALORES EN COMBO SEGÚN SELECCIÓN EN OTRO

Esta es una tarea frecuente: tener 2 Combobox donde el segundo mostrará valores según laopción elegida en el primero.

En primer lugar será necesario tener distintas listas por cada categoría que mostrará el primerCombobox.Estas listas pueden ser colocadas en otra hoja , asignándoles a cada una un nombre de rango(ver *)

Lo que hará la rutina es llenar el segundo control buscando el rango establecido

En el ejemplo, el primer control mostrará 2 categorías ("AA" y otra).Los rangos de cada lista se establecieron en las columnas H y J

Private Sub ComboBox1_Change()'se controla el valor seleccionado en el primer controlIf ComboBox1.Value = "AA" Then'se asigna un rango al segundo controlComboBox2.ListFillRange = "H1:H7"

'Opción 2: indicando la hoja donde se encuentra la lista'ComboBox2.ListFillRange = "Hoja2!H1:H7"

'Opción 3: indicando nombre de rango'ComboBox2.ListFillRange = "rgom"

Else'se asigna el otro rangoComboBox2.ListFillRange = "J1:J7"End IfEnd Sub

Nota: Para asignar un nombre de rango a cada lista, seleccionarla y seguir estos pasos según laversión:

1- hasta Excel 2003 incluído: menú Insertar, Nombre, Definir. Escribir un nombre que seaclaro de identificar y Aceptar.2- para Excel 2007: ficha Fórmula, Asignar nombre a un rango o Administrador denombres desde el grupo Nombres Definidos.

30- Otras Rutinas Interesantes 142

© <2005=2010> Elsa M.Meyer (Elsamatilde)

30.2 Ejecutar macro según valor en celda

El tema no se encuentra disponible en esta versión DEMO

30.3 Colorear celdas por condicion

El tema no se encuentra disponible en esta versión DEMO

30.4 Convertir Monedas

El tema no se encuentra disponible en esta versión DEMO

30.5 Indicar equipos disponibles en un Ciber:

El tema no se encuentra disponible en esta versión DEMO

30.6 Lotería: Ubicar valores ingresados

El tema no se encuentra disponible en esta versión DEMO

30.7 Ordenar una tabla por valores tipo Indice

El tema no se encuentra disponible en esta versión DEMO

30.8 Aplicar parpadeo continuo a celdas

El tema no se encuentra disponible en esta versión DEMO

Manual 400 Macros Plus143

© <2005=2010> Elsa M.Meyer (Elsamatilde)

30.9 Crear libros por cada hoja

El tema no se encuentra disponible en esta versión DEMO

30.10 Restringir uso de hojas

El tema no se encuentra disponible en esta versión DEMO

30.11 Mantener imagen fija en pantalla

El tema no se encuentra disponible en esta versión DEMO

30.12 Estado de progreso de una rutina

El tema no se encuentra disponible en esta versión DEMO

FIN DEL MANUAL