Manual 400 Macros Plus - APLICA EXCEL

Tabla de Contenidos 0 Cap. I1 - Introducción 15 1BIENVENID@S...

17 downloads 823 Views 2MB Size
VERSIÓN DEMO

MANUAL 400 Macros para Excel Versión Plus

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.

I

Manual 400 Macros Plus

Tabla de Contenidos 0

15

Cap. I 1 - Introducción

1 BIENVENID@S ................................................................................................................................... 15 2 BREVE INTRODUCCIÓN ................................................................................................................................... AL EDITOR 17 3 Cómo crear una ................................................................................................................................... macro 18 4 Dónde colocar ................................................................................................................................... las macros 18 5 Cómo ejecutar ................................................................................................................................... una macro 18 6 Acerca de las................................................................................................................................... macros Auto-Open 18 7 Acerca de las................................................................................................................................... macros Auto-Close 19 8 Cómo proteger ................................................................................................................................... un proyecto 19 9 Evitar que las ................................................................................................................................... macros se vean desde el menú 19 10 Otras consideraciones: ................................................................................................................................... ¿Cómo...? 19

21

Cap. II 2 - Eventos, Metodos y Propiedades

1 EVENTOS - LISTADO ................................................................................................................................... 21 2 Especial: Eventos ................................................................................................................................... de Hojas 22 Cambios y Selección .......................................................................................................................................................... en Hoja 22

3 Metodos

................................................................................................................................... 22

4 Propiedades................................................................................................................................... 23

25

Cap. III 3 - Tratamiento de Variables

1 Tipo de Variables ................................................................................................................................... 25 2 DURACIÓN DE ................................................................................................................................... LAS VARIABLES 25 3 Determinar el................................................................................................................................... tipo de variable 26 4 Convirtiendo................................................................................................................................... variables 26 5 Limpiando variables ................................................................................................................................... 26

28

Cap. IV 4 - Trabajando con Cadenas

1 EXTRAER PARTES ................................................................................................................................... DE UNA CADENA 28 2 Armando cadenas ................................................................................................................................... 29 3 Obtener el largo ................................................................................................................................... de una cadena 29 4 Introducir caracteres ................................................................................................................................... especiales 29 5 Detectar o encontrar ................................................................................................................................... texto en una cadena 29 6 Creando cadenas ................................................................................................................................... de largo fijo 29 7 Obtener la parte ................................................................................................................................... numerica de una cadena 29

Cap. V 5 - Trabajando con Directorios y Archivos

31

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

Contents

II

1 Creando un nuevo ................................................................................................................................... directorio 31 2 ESTABLECER ................................................................................................................................... LA RUTA DE ACCESO PREDETERMINADA 31 3 Establecer si................................................................................................................................... un directorio existe 31 4 Establecer si................................................................................................................................... un archivo existe en un directorio 31 5 Eliminar un archivo ................................................................................................................................... de un directorio 32 6 Establecer nueva ................................................................................................................................... unidad de disco 32 7 Establecer nuevo ................................................................................................................................... directorio o carpeta 32 8 Crear lista de................................................................................................................................... archivos de una carpeta 32 9 Copiar todos................................................................................................................................... los libros de una carpeta en otra 32 10 Obtener propiedad ................................................................................................................................... fecha y hora de archivos 32 11 Obtener tamaño ................................................................................................................................... de archivos 32

Cap. VI 6 - Trabajando con Libros

34

1 Principales Metodos ................................................................................................................................... y Propiedades de Libros 34 2 Abriendo Libros ................................................................................................................................... 34 Abrir un segundo .......................................................................................................................................................... libro 34 Abrir un libro.......................................................................................................................................................... con clave 34 Abrir libro buscando .......................................................................................................................................................... la carpeta que lo contiene 34 Ejecutar macro .......................................................................................................................................................... al abrir un libro 34 Inhabilitar el mensaje .......................................................................................................................................................... de actualizar vínculos al abrir un libro 34 Inhabilitar la opción .......................................................................................................................................................... de actualizar vínculos al abrir otros libros 34 Al abrir libro incrementar .......................................................................................................................................................... un contador 35 Al abrir libro ocultarlo .......................................................................................................................................................... (minimizarlo) y mostrar un Userform 35 Impedir que un .......................................................................................................................................................... libro se abra si la fecha caducó 35

3 Seleccionar un ................................................................................................................................... libro 35 4 Obtener el nombre ................................................................................................................................... de un libro 35 5 Obtener la ruta ................................................................................................................................... de un libro 35 6 Activar otro libro ................................................................................................................................... distinto al actual 35 7 Impedir que se ................................................................................................................................... abran otros libros mientras esté nuestro libro abierto 36 8 CARGAR TODO ................................................................................................................................... EL LIBRO EN MAYÚSCULAS 36 9 Modificar la forma ................................................................................................................................... de cálculo del libro o de una hoja 37 10 Eliminar vinculos ................................................................................................................................... externos 37 11 Eliminar vinculos ................................................................................................................................... internos 37 12 Saber si uno................................................................................................................................... o más libros existen en una carpeta 37 13 Crear libro como ................................................................................................................................... copia de cierta hoja 37 14 Copiar un libro ................................................................................................................................... sin abrirlo 37 15 Cambiar el nombre ................................................................................................................................... de un libro sin abrirlo 38 16 Eliminar Nombres ................................................................................................................................... de Rangos en libro 38 17 Armar un indice ................................................................................................................................... vinculado a cada hoja del libro 38 18 Guardando Libros ................................................................................................................................... 38 Guardar el libro .......................................................................................................................................................... activo 38 Guardar un libro .......................................................................................................................................................... con otro nombre 38 Guardar un libro .......................................................................................................................................................... con otro formato (txt) 38 © <2005=2010> Elsa M.Meyer (Elsamatilde)

II

III

Manual 400 Macros Plus Guardar un libro .......................................................................................................................................................... con clave 38 Guardar un libro .......................................................................................................................................................... cuyo nombre será el valor de una variable 39 Guardar un libro .......................................................................................................................................................... cuyo nombre serán datos concatenados 39 Guardar libro.......................................................................................................................................................... sin módulos 39 Guardar libro.......................................................................................................................................................... sin código o macros 39

19 Cerrando Libros ................................................................................................................................... 39 Cerrar todos los .......................................................................................................................................................... libros en uso 39 Cerrar un solo .......................................................................................................................................................... libro 39 Cerrar un libro .......................................................................................................................................................... SIN guardar los cambios 39 Cerrar un libro .......................................................................................................................................................... guardando los cambios 40 Impedir el uso.......................................................................................................................................................... del botón Cerrar del libro 40 Controlar errores .......................................................................................................................................................... antes de cerrar un libro 40

Cap. VII 7 - Trabajando con Hojas

42

1 MÉTODOS PARA ................................................................................................................................... HOJAS 42 2 Propiedades................................................................................................................................... de las Hojas 44 3 Activar o seleccionar ................................................................................................................................... otras hojas distintas a la actual 44 4 Seleccionar la ................................................................................................................................... hoja anterior o posterior a la activa 44 5 Seleccionar todas ................................................................................................................................... las hojas de un libro 44 6 Devolver el nombre ................................................................................................................................... de la hoja en una variable 44 7 Formas de mostrar ................................................................................................................................... el nombre de hojas 44 8 Devolver el número ................................................................................................................................... de hoja en una variable 44 9 Proteger una................................................................................................................................... hoja 45 10 Desproteger ................................................................................................................................... una hoja 45 11 Vista previa de ................................................................................................................................... la hoja activa y de otras hojas 45 12 Imprimir hojas ................................................................................................................................... 45 13 Insertar hojas ................................................................................................................................... 45 14 Eliminar hojas ................................................................................................................................... 45 15 Copiar hojas................................................................................................................................... 45 16 Crear hoja/libro ................................................................................................................................... con un gráfico 46 17 Ocultar hojas................................................................................................................................... 46 18 Mostrar hoja................................................................................................................................... oculta 46 19 Mostrar todas ................................................................................................................................... las hojas ocultas de un libro 46 20 Impedir que se ................................................................................................................................... vean datos al entrar a hoja 46 21 Cambiar nombre ................................................................................................................................... a pestaña o Etiqueta de hojas 46 22 Cambiar color ................................................................................................................................... de pestaña o Etiqueta de Hojas 46 23 Mover o cambiar ................................................................................................................................... una hoja de lugar 47 24 Insertar imagen ................................................................................................................................... en una hoja 47 25 Ordenar las hojas ................................................................................................................................... alfabéticamente 47 26 Armar una lista ................................................................................................................................... con el nombre de las hojas 47 27 Modificar todos ................................................................................................................................... los hipervínculos de la hoja 47 28 Establecer filas ................................................................................................................................... y columnas a mostrar al abrir hoja 47 29 Establecer area ................................................................................................................................... visible de una hoja 47 © <2005=2010> Elsa M.Meyer (Elsamatilde)

Contents

IV

30 Restablecer área ................................................................................................................................... visible en hoja 48 31 Crear hojas según ................................................................................................................................... valores en una lista 48 32 Aplicar Zoom................................................................................................................................... a un rango u hoja 48 33 Obtener el valor ................................................................................................................................... del Zoom aplicado a la hoja 48 34 Ejecutar rutina ................................................................................................................................... en todas las hojas del libro 48 35 Hojas de Diálogo: ................................................................................................................................... cómo ocultarlas 48 36 Eliminar todos ................................................................................................................................... los comentarios de la hoja 48 37 Activar hoja ................................................................................................................................... cada tanto tiempo 49

Cap. VIII 8 - Trabajando con Celdas y Rangos

51

1 Principales Méotodos ................................................................................................................................... para Rangos 51 2 PRINCIPALES ................................................................................................................................... PROPIEDADES DE RANGOS 51 3 Selección de................................................................................................................................... Celdas o Rangos 52 4 Selección de................................................................................................................................... rango utilizando variables 52 5 Seleccionar celdas ................................................................................................................................... a cierta distancia de la celda activa 52 6 Ampliar un rango ................................................................................................................................... seleccionado 53 7 SELECCIONAR ................................................................................................................................... LA REGIÓN DE LA CELDA ACTIVA 53 8 Seleccionar hasta ................................................................................................................................... la última celda vacía -Fin de rango 53 9 Devolver la direccion ................................................................................................................................... de un rango o celda 53 10 Encontrar última ................................................................................................................................... celda con datos 54 11 Ubicarnos en................................................................................................................................... primer celda libre de una columna 54 12 Guardar el numero ................................................................................................................................... de la primer fila libre 54 13 Obtener ultima ................................................................................................................................... columna con datos 54 14 Obtener el número ................................................................................................................................... de columnas de un rango 54 15 Obtener el número ................................................................................................................................... de filas de un rango 54 16 Contar la cantidad ................................................................................................................................... de objetos de un rango 54 17 Acumular lo ................................................................................................................................... que se carga en 1 celda 55 18 Combinar/Descombinar ................................................................................................................................... celdas seleccionadas 55 19 Borrar o Limpiar ................................................................................................................................... celdas o rangos 55 20 Borrar celdas................................................................................................................................... con cierto contenido 55 21 Eliminar celdas ................................................................................................................................... o rangos 55 22 Eliminar filas................................................................................................................................... en blanco 55 23 Eliminar varias ................................................................................................................................... filas segun condicion 55 24 Insertar Filas................................................................................................................................... 56 25 Eliminar Filas ................................................................................................................................... 56 26 Ocultar filas ................................................................................................................................... 56 27 Mostrar filas................................................................................................................................... 56 28 Insertar Columnas ................................................................................................................................... 56 29 Eliminar columnas ................................................................................................................................... 56 30 Ocultar columnas ................................................................................................................................... 56 © <2005=2010> Elsa M.Meyer (Elsamatilde)

IV

V

Manual 400 Macros Plus 31 Mostrar Columnas ................................................................................................................................... 57 32 Insertar comentarios ................................................................................................................................... 57 33 Formatos a Celdas ................................................................................................................................... 57 34 Formato a Columnas ................................................................................................................................... 57 35 Autoajustar columnas ................................................................................................................................... 57 36 Cambiar minúsculas ................................................................................................................................... por mayúsculas 57 37 Cambiar mayúsculas ................................................................................................................................... por minúsculas 57 38 Capturar fecha ................................................................................................................................... y hora de carga de datos 58 39 Insertar Nombre ................................................................................................................................... de rango 58 40 Insertar Hipervínculos ................................................................................................................................... 58 41 Transponer una ................................................................................................................................... fila 58 42 Ordenar un rango ................................................................................................................................... 58 43 Detectar si la................................................................................................................................... celda contiene formula 58 44 Ejemplo de fórmula ................................................................................................................................... con rango variable 58 45 Cómo conocer ................................................................................................................................... el color de una celda 59 46 Colorear celdas ................................................................................................................................... con mas de 3 condiciones 59 47 Resaltar la fila ................................................................................................................................... activa (1) 59 48 Resaltar la fila ................................................................................................................................... activa (2) 59 49 Resaltar la celda ................................................................................................................................... activa 59 50 Cambiar color ................................................................................................................................... de fuente a celdas con datos 59 51 Separar cada................................................................................................................................... caracter de una cadena en distintas col 59 52 Quitar espacios ................................................................................................................................... en celdas 60 53 Proteger rangos ................................................................................................................................... o celdas 60 54 Recorrer celdas ................................................................................................................................... protegidas 60

Cap. IX 9 - Bucles: Instrucciones o Comandos Especiales

62

1 Qué es un bucle? ................................................................................................................................... 62 2 FOR EACH.....NEXT ................................................................................................................................... 62 3 For ...... Next................................................................................................................................... 63 4 While .... Wend ................................................................................................................................... 63 5 If.... ElseIf....Else.... ................................................................................................................................... 63 6 Do While .... Loop ................................................................................................................................... 63 7 Do Until.... Loop ................................................................................................................................... 63 8 Uso de SET ................................................................................................................................... 64 9 With....End With ................................................................................................................................... 64 10 Uso de Select ................................................................................................................................... Case 64

Cap. X 10- Trabajando con fórmulas

66

1 Trabajando con ................................................................................................................................... fórmulas 66 © <2005=2010> Elsa M.Meyer (Elsamatilde)

Contents

VI

2 INTRODUCIR................................................................................................................................... FÓRMULAS EN CELDAS 66 3 Armar fórmula ................................................................................................................................... con datos variables 67 4 Modificar fórmula ................................................................................................................................... de celda 67 5 Colocar resultado ................................................................................................................................... de fórmula en celdas 67

Cap. XI 11- Trabajando con Objetos Insertados en Hoja

69

1 Algunas consideraciones ................................................................................................................................... previas 69 2 ListBox, Combobox ................................................................................................................................... y Textbox 69 COMENTARIOS .......................................................................................................................................................... GENERALES 69 Mostrar un Combobox .......................................................................................................................................................... al seleccionar hoja 70 Ocultar un Combobox .......................................................................................................................................................... luego de seleccionar opcion 70 Asignar rango.......................................................................................................................................................... a un Combobox 70 Enviar texto a.......................................................................................................................................................... las columnas de un Combobox 70 Enviar valor de .......................................................................................................................................................... un Combo a una celda 70 Seleccionar celda .......................................................................................................................................................... cuyo valor es el ingresado en Combobox 71 Enviar valores.......................................................................................................................................................... de Combo de 4 columnas a celdas 71 Limpiar un combo .......................................................................................................................................................... 71 Crear controles .......................................................................................................................................................... por macro 71 Eliminar todos .......................................................................................................................................................... los controles de una hoja 71 Asignar ancho .......................................................................................................................................................... de columnas en Listbox 71 Activar hoja según .......................................................................................................................................................... valor en Lista Desplegable 71 Buscar valor del .......................................................................................................................................................... Combo en base Devolver otros datos en textbox 72 Mostrar valores .......................................................................................................................................................... al clic en control 72 Llenar un control .......................................................................................................................................................... Combobox con nombres de hojas 72

3 Cuadros de Texto ................................................................................................................................... 72 Insertar cuadro .......................................................................................................................................................... de texto y asignar algunas propiedades 72 Funciones de.......................................................................................................................................................... comprobacion 72

4 Imágenes

................................................................................................................................... 72

Cargar una imagen .......................................................................................................................................................... cuyo nombre se encuentra en una celda 72 Segun valor de .......................................................................................................................................................... celda, mostrar una imagen 72 Buscar una imagen .......................................................................................................................................................... e insertarla 73 Insertar imagenes .......................................................................................................................................................... sobre celdas (1) 73 Insertar imagenes .......................................................................................................................................................... sobre ciertas celdas (2) 73 Insertar imagenes .......................................................................................................................................................... de tamaño fijo 73

Cap. XII 12- Controlando Teclas y Mensajes de Excel

75

1 Consideraciones ................................................................................................................................... generales 75 2 Impedir que se ................................................................................................................................... cancele una macro con ESC 75 3 Controlar la tecla ................................................................................................................................... ESC- Cancelar a criterio 75 4 No mostrar el................................................................................................................................... cursor o la celda activa 75 5 Controlar las................................................................................................................................... teclas Enter y Flechas Abajo_Arriba 75 6 Controlar otras ................................................................................................................................... teclas mediante código 75 7 Asignar una ................................................................................................................................... macro a una tecla especial 75 8 Ejecutar una................................................................................................................................... macro al presionar Enter 76 9 Ejecutar una................................................................................................................................... macro con Doble click 76

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

VI

VII

Manual 400 Macros Plus 10 Asignar mismo ................................................................................................................................... atajo de teclado a varias macros 76 11 NO MOSTRAR ................................................................................................................................... AVISOS DE ALERTA 76 12 No mostrar aviso, ................................................................................................................................... al guardar un archivo, de que el archivo ya existe: 77 13 No mostrar la................................................................................................................................... ejecución de la macro o el movimiento de hojas: 77 14 Inhabilitar eventos ................................................................................................................................... 77 15 Crear atajos ................................................................................................................................... de teclado desde una macro 77

Cap. XIII 13- Controlando Errores

79

1 ON ERROR RESUME ................................................................................................................................... NEXT 79 2 On Error GoTo ................................................................................................................................... .... 79 3 On Error GoTo ................................................................................................................................... 0 79 4 Err

................................................................................................................................... 79

Cap. XIV 14- Trabajando con Barras, Menues y Pestañas

81

1 Consideraciones ................................................................................................................................... generales para Barras y otros 81 2 OCULTAR LAS ................................................................................................................................... PESTAÑAS DE LAS HOJAS 81 3 Ocultar las barras ................................................................................................................................... de desplazamiento 81 4 Ocultar los encabezados ................................................................................................................................... de filas y columnas 81 5 Ocultar barras ................................................................................................................................... de herramientas 81 6 Ocultar la barra ................................................................................................................................... principal de Excel 81 7 Ocultar elementos ................................................................................................................................... de la barra principal 82 8 Conocer número ................................................................................................................................... de barras y controles 82 9 Ocultar opciones ................................................................................................................................... de Impresion y Otras 82 10 Ocultar opciones ................................................................................................................................... Cortar y Copiar 82 11 Crear una barra ................................................................................................................................... personal con macro 82 12 Mostrar una ................................................................................................................................... barra de herramientas personal 82 13 Quitar una barra ................................................................................................................................... personal al salir 82 14 Impedir el uso ................................................................................................................................... del clic derecho 83 15 Ejecutar macro ................................................................................................................................... al clic derecho 83 16 Mostrar mensaje ................................................................................................................................... en Barra de Estado 83 17 Mostrar cajas................................................................................................................................... de diálogo de Excel 83 18 Eliminar menu ................................................................................................................................... contextual de Objetos 83

Cap. XV 15- Uso de Cuadros de Mensaje

85

1 Construcción................................................................................................................................... de MsgBox 85 2 MsgBox como ................................................................................................................................... PopUp 85

Cap. XVI 16- Uso de InputBox

87

1 CONSTRUCCIÓN ................................................................................................................................... DE INPUTBOX 87 2 Controlar que ................................................................................................................................... se ha ingresado un valor 88 © <2005=2010> Elsa M.Meyer (Elsamatilde)

Contents

VIII

3 Establecer un ................................................................................................................................... valor predeterminado en un InputBox 88 4 Controlar que ................................................................................................................................... lo ingresado a un InputBox sea referencia válida 88 5 Ingresar y seleccionar ................................................................................................................................... un rango con InputBox 88 6 Seleccionar datos ................................................................................................................................... en un rango 88 7 Controlar que ................................................................................................................................... el dato ingresado sea fecha 88

Cap. XVII 17- Buscando Datos

90

1 Buscar una hoja ................................................................................................................................... en cierto libro 90 2 Devolver en una ................................................................................................................................... celda el resultado de una búsqueda 90 3 Devolver todos ................................................................................................................................... los resultados de una búsqueda 90 4 Buscar un dato. ................................................................................................................................... Copiar la fila de todos los registros encontrados 90 5 Buscar un dato ................................................................................................................................... en un rango, posicionarse y seguir buscando 90 6 Controlar si un ................................................................................................................................... valor resultado se encuentra en la base 90 7 Función BuscarV ................................................................................................................................... devolviendo valores a la izquierda 90 8 Buscar cierto................................................................................................................................... dato en un rango. Si se encuentra borrar la fila que lo contiene 91 9 BUSCAR DATOS ................................................................................................................................... DE 1 COLUMNA EN OTRA Y BORRAR LOS REPETIDOS 91 10 Evitar duplicados ................................................................................................................................... al cargar una base 92 11 Buscar un dato. ................................................................................................................................... Devolver en Textbox toda la fila 92 12 Obtener el valor ................................................................................................................................... de la ultima celda de una fila 92

Cap. XVIII 18- Evaluando y Comparando Datos

94

1 Comparando................................................................................................................................... cadenas 94 2 Evaluar si una ................................................................................................................................... celda guarda fechas 94 3 Evaluar si un................................................................................................................................... dato es numérico o no 94 4 EVALUAR SI................................................................................................................................... UNA CELDA PRESENTA ERROR 94 5 Eliminar filas................................................................................................................................... si las celdas de cierta columna están vacías 94 6 Eliminar fila si ................................................................................................................................... varios datos del registro cumplen una condición 95 7 Rellenar celdas ................................................................................................................................... vacías de un rango con cierto valor 95 8 Evaluar el color ................................................................................................................................... de celda 95 9 Eliminar filas................................................................................................................................... vacías 95 10 Contar celdas ................................................................................................................................... con igual color de fuente 95 11 Ordenar - Controlar ................................................................................................................................... - borrar repetidos 95 12 Comparar cadenas ................................................................................................................................... que pueden estar en mayúsculas o minúsculas 95 13 Extraer la parte ................................................................................................................................... numérica de una cadena 96 14 Armar tabla con ................................................................................................................................... valores no duplicados 96 15 Armar Listas................................................................................................................................... validadas, sin duplicados 96 16 Comparar 2 columnas. ................................................................................................................................... Copiar en otra las filas que coinciden 96 17 Comparar 2 columnas. ................................................................................................................................... Copiar las que NO coinciden 96 18 Bloquear celdas ................................................................................................................................... según fecha 96 19 Evaluando si................................................................................................................................... celdas contienen #N/A-Copiar en otro destino 96 © <2005=2010> Elsa M.Meyer (Elsamatilde)

VIII

IX

Manual 400 Macros Plus

Cap. XIX 19- Copiando Datos

98

1 Copiar rango................................................................................................................................... de datos de una hoja a la siguiente 98 2 Copiar solo filas ................................................................................................................................... impares 98 3 COPIAR SOLO ................................................................................................................................... VALORES - PEGADO ESPECIAL 98 4 Copiar formato ................................................................................................................................... - Pegado Especial 98 5 Pegado Especial ................................................................................................................................... sin seleccionar 98 6 Quitar fórmulas ................................................................................................................................... en celdas de color 99 7 Copiar una fórmula ................................................................................................................................... en la celda siguiente 99 8 Copiar cierta................................................................................................................................... fila en otro libro. Conocer última fila con datos 99 9 Copiar un rango ................................................................................................................................... de filas en otro libro Resumen 99 10 Duplicar una................................................................................................................................... hoja- La copia tendrá los valores, no las fórmulas 99 11 Copiar varios................................................................................................................................... libros en uno solo 99 12 Copiar cabecera ................................................................................................................................... o columna de títulos 99 13 Copiar celdas ................................................................................................................................... de color en otro destino- Eliminar fila 100

Cap. XX 20- Uso de Temporizador

102

1 CARACTERÍSTICAS ................................................................................................................................... DEL MÉTODO ONTIME 102 2 Guardar el libro ................................................................................................................................... cada minuto 102 3 Mostrar un ................................................................................................................................... Userform durante un tiempo y ocultarlo 103 4 Lllamar a un................................................................................................................................... Userform por unos segundos 103 5 Activar otra................................................................................................................................... hoja cada tantos minutos 103

Cap. XXI 21- Trabajando con Filtros

105

1 Establecer criterio ................................................................................................................................... para filtro 105 2 Filtro en hoja ................................................................................................................................... protegida 105 3 Autofiltros con ................................................................................................................................... campos fecha 105 4 Establecer AutoFiltro ................................................................................................................................... con criterios en otra hoja 105 5 APLICAR FILTRO ................................................................................................................................... AVANZADO Y COPIAR RESULTADO 105 6 Copiar solo................................................................................................................................... las filas de un Filtro avanzado en otra hoja 106 7 Copiar celdas ................................................................................................................................... filtradas sin los títulos 106 8 Obtener la primer ................................................................................................................................... fila de un filtro 106 9 Obtener el total ................................................................................................................................... de celdas filtradas 107 10 Seleccionar................................................................................................................................... en un rango filtrado, la celda que tiene el valor de un ComboBox 107 11 Sumar una ................................................................................................................................... columna de datos en un rango filtrado 107 12 Quitar autofiltros ................................................................................................................................... solo a ciertas columnas 107

Cap. XXII 22- Trabajando con Gráficos

109

1 Seleccionar................................................................................................................................... un gráfico ignorando su nombre 109 2 Cortar un gráfico ................................................................................................................................... de una hoja y pegarlo en otra 109 3 Asignar los................................................................................................................................... datos de origen de un gráfico 109 © <2005=2010> Elsa M.Meyer (Elsamatilde)

Contents

X

4 Crear un gráfico ................................................................................................................................... en hoja nueva y guardar el libro 109 5 Crear gráfico ................................................................................................................................... con datos de hoja variable 109 6 Imprimir gráfico ................................................................................................................................... y tabla que lo alimenta 109 7 MODIFICANDO ................................................................................................................................... DIMENSIONES DE TODOS LOS GRAFICOS 110 8 Copiar todos ................................................................................................................................... los graficos en otra hoja 110 9 Eliminar todos ................................................................................................................................... los graficos de una hoja 110 10 Colorear series ................................................................................................................................... por macro 110 11 Ubicando un ................................................................................................................................... gráfico por macro 110 12 Recorrer todos ................................................................................................................................... los gráficos del libro 111 13 Reconocer ................................................................................................................................... el área del gráfico seleccionado 111

Cap. XXIII 23- Trabajando con Userforms

113

1 Generalidades ................................................................................................................................... - Crear un Userform 113 2 Mostrar un ................................................................................................................................... Userform 113 3 MOSTRAR UN ................................................................................................................................... USERFORM EN EL TOPE DE LA VENTANA 113 4 Ocultar un Userform ................................................................................................................................... 113 5 Cerrar un Userform ................................................................................................................................... 114 6 Desactivar el ................................................................................................................................... botón 'Cerrar' de un Userform 114 7 Inmovilizar ................................................................................................................................... un Userform 114 8 Cargar valores ................................................................................................................................... de inicio 114 9 Volcar datos ................................................................................................................................... de un Userform a una hoja 114 10 Actualizar base ................................................................................................................................... con datos del Userform 114 11 Seleccionar................................................................................................................................... datos desde un Userform-RefEdit 114 12 Seleccionar................................................................................................................................... rango para eliminar duplicados 115 13 Agrandar un ................................................................................................................................... Frame a medida que se ingresan datos 115 14 Validar campos ................................................................................................................................... numéricos en Textbox 115 15 Validar campos ................................................................................................................................... fecha en Textbox 115 16 Establecer separadores ................................................................................................................................... en campos fecha en textbox 115 17 Ingresar fechas ................................................................................................................................... sin formato en Textbox 115 18 Asignar formato ................................................................................................................................... moneda a un TextBox 115 19 Asignar formato ................................................................................................................................... Password a un textbox 116 20 Limpiar todos ................................................................................................................................... los textbox de un Userform 116 21 Guardar un ................................................................................................................................... dato del Userform antes de cerrarlo 116 22 Agregar un ................................................................................................................................... Grafico en un Userform 116 23 Trabajando ................................................................................................................................... con controles Listbox y Combobox 116 24 Llenar un control ................................................................................................................................... ListBox con nombres de hojas 116 25 Ejecutar una ................................................................................................................................... macro según valor seleccionado en Combobox 116

Cap. XXIV 24- Trabajando con Tablas Dinámicas

118

1 Comentarios ................................................................................................................................... sobre Tablas Dinámicas 118 © <2005=2010> Elsa M.Meyer (Elsamatilde)

X

XI

Manual 400 Macros Plus 2 Evitar la actualización ................................................................................................................................... automática de TD 118 3 OBTENER EL ................................................................................................................................... TOTAL DE UNA TABLA DINÁMICA 118 4 Convetir un................................................................................................................................... campo en un campo de filas 119 5 Eliminar todas ................................................................................................................................... las Tablas Dinamicas de una hoja 119 6 Uso de variables ................................................................................................................................... en TD 119

Cap. XXV 25- Impresión

121

1 Imprimir hojas ................................................................................................................................... 121 2 Vista previa................................................................................................................................... 121 3 Establecer área ................................................................................................................................... de impresión: 121 4 IMPEDIR LA................................................................................................................................... IMPRESIÓN 121 5 Enviar información ................................................................................................................................... al Encabezado y Pié 121 6 Instrucciones ................................................................................................................................... para configurar la página 121 7 Llamar al cuadro ................................................................................................................................... de opciones para Imprimir 122 8 Elegir impresora ................................................................................................................................... por medio de código 122

Cap. XXVI 26- Trabajando con el entorno Excel

124

1 Ocultar Excel ................................................................................................................................... 124 2 Ocultar Excel ................................................................................................................................... por cierto tiempo 124 3 Quitar la lista ................................................................................................................................... de archivos abiertos del menú Archivo 124 4 Importar datos ................................................................................................................................... de otro libro Excel 124 5 Obtener la lista ................................................................................................................................... de archivos Excel de una carpeta 124 6 Ocultar botones ................................................................................................................................... de Minimizar y Maximizar 124 7 Inhabilitar el................................................................................................................................... botón de Cerrar de Excel 124 8 Evitar el cierre ................................................................................................................................... accidental de Excel 125 9 Ejecutar rutinas ................................................................................................................................... o funciones de otros libros 125 10 OBTENER LISTADO ................................................................................................................................... DE RUTINAS DE UN LIBRO 125 11 Exportar módulos ................................................................................................................................... 126 12 Importar módulos ................................................................................................................................... guardados como txt 126 13 Eliminar código ................................................................................................................................... 126 14 Eliminar codigo ................................................................................................................................... de cierto objeto o modulo 126 15 Saber si un................................................................................................................................... archivo existe en un directorio 126 16 Eliminar un................................................................................................................................... archivo del directorio 127 17 Iniciar una nueva ................................................................................................................................... sesión de Excel 127 18 Quitar colores ................................................................................................................................... a la lista de la herramienta Relleno 127 19 Restablecer................................................................................................................................... la paleta de colores 127 20 Determinar ................................................................................................................................... el tiempo que demora una rutina 127 21 Fijar las mayusculas ................................................................................................................................... para todo el libro 127 22 Habilitar o no ................................................................................................................................... la tecla BLOQNUM 127 23 Llamar a un................................................................................................................................... archivo HELP 128 © <2005=2010> Elsa M.Meyer (Elsamatilde)

Contents

Cap. XXVII 27- Trabajando con otras aplicaciones

XII

130

1 COPIAR CELDAS ................................................................................................................................... EXCEL A UN DOC WORD 130 2 Abrir un archivo ................................................................................................................................... de texto (CSV) 130 3 Imprimir un................................................................................................................................... documento Word desde Excel 131 4 Importar Datos ................................................................................................................................... de Outlook 131 5 Enviar un libro ................................................................................................................................... por Mail 131 6 Enviar un mail ................................................................................................................................... 131 7 Enviar cuerpo ................................................................................................................................... de correo con saltos de línea 131 8 Importar datos ................................................................................................................................... de Access 131 9 Llamar a la ................................................................................................................................... Calculadora 131 10 Llamar a la ................................................................................................................................... aplicación WinZip 132 11 Ejecutar archivo ................................................................................................................................... de sonido al cambio en celda 132

Cap. XXVIII 28- Creando Complementos

134

1 Cómo crear................................................................................................................................... un Complemento 134 2 Habilitar complementos ................................................................................................................................... 134

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

136

1 CREAR FUNCIONES ................................................................................................................................... PERSONALES 136 2 Sintaxis de ................................................................................................................................... funciones 136 3 Funcion Numeros ................................................................................................................................... a Letras 136 4 Funcion Calculo ................................................................................................................................... del NIF (Identificador en España) 137 5 Funcion Digito ................................................................................................................................... Verificador (RUT) 137 6 Funcion BuscarV ................................................................................................................................... en varias hojas 137 7 Funcion Buscar ................................................................................................................................... el enésimo elemento 137 8 Funcion Encontrar ................................................................................................................................... ultimo dato 137 9 Funcion Sumar ................................................................................................................................... rango con error 137 10 Función Contar ................................................................................................................................... celdas de cierto color 137 11 Funcion Sumar ................................................................................................................................... celdas de cierto color 138 12 Funcion Extraer ................................................................................................................................... números a la derecha de una cadena 138 13 Función Contar ................................................................................................................................... número de vocales en una cadena 138 14 Función Contar ................................................................................................................................... número de consonantes en una cadena 138 15 Funcion Contar ................................................................................................................................... numeros pares 138 16 Funcion Contar ................................................................................................................................... numeros impares 138 17 Funcion Fecha ................................................................................................................................... creación del libro 138 18 Funcion Fecha ................................................................................................................................... ultima modificacion del libro 139 19 Funcion Binario ................................................................................................................................... (para > 500) 139 20 Funcion Reconocer ................................................................................................................................... numeros Primos 139 21 Funcion Nombre ................................................................................................................................... Dia 139 © <2005=2010> Elsa M.Meyer (Elsamatilde)

XII

XIII

Manual 400 Macros Plus 22 Funcion Nombre ................................................................................................................................... Mes 139

Cap. XXX 30- Otras Rutinas Interesantes

141

1 MOSTRAR VALORES ................................................................................................................................... EN COMBO SEGÚN SELECCIÓN EN OTRO 141 2 Ejecutar macro ................................................................................................................................... según valor en celda 142 3 Colorear celdas ................................................................................................................................... por condicion 142 4 Convertir Monedas ................................................................................................................................... 142 5 Indicar equipos ................................................................................................................................... disponibles en un Ciber: 142 6 Lotería: Ubicar ................................................................................................................................... valores ingresados 142 7 Ordenar una ................................................................................................................................... tabla por valores tipo Indice 142 8 Aplicar parpadeo ................................................................................................................................... continuo a celdas 142 9 Crear libros................................................................................................................................... por cada hoja 143 10 Restringir uso ................................................................................................................................... de hojas 143 11 Mantener imagen ................................................................................................................................... fija en pantalla 143 12 Estado de progreso ................................................................................................................................... de una rutina 143

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

Capítulo

I

15

Manual 400 Macros Plus

1

1 - Introducción

1.1

BIENVENID@S

VERSIÓN DEMO Manual: 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 con programación. NOTA: En esta versión DEMO se podrá acceder a un tema por capítulo. El mismo se encuentra en mayúsculas en el índice.

No solo los usuarios 'programadores' sacarán provecho de este libro. Los que nunca han trabajado 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 Editor de Macros. A continuación un par de capítulos detallando conceptos que serán utilizados a lo largo del manual: Eventos, Métodos, Variables, Cadenas y otros. Luego siguen capítulos ordenados por objetos: Libros-Hojas-Celdas o rangos-Barras-Objetos dibujados , etc. donde partiendo de las principales instrucciones básicas (ej: Abrir o Guardar libros), llegaremos hasta códigos para manipular otras aplicaciones (tanto Word, Access o el mismo 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 de modelo para otras tareas, como: Colorear celdas por condición, Crear Libros por cada hoja y muchas más. Cada línea, cada comando se encuentra explicado en español para que puedan ser adaptados a las necesidades y configuración de cada libro. Contiene además imágenes que guiarán y mostrarán los resultados obtenidos una vez ejecutada la macro. Una característica a resaltar de este Manual es su formato y su potente buscador. Al solicitar un tema nos devolverá la lista de entradas que aparecen en todo el libro, como en la imagen donde se ingresó la palabra 'find' apareciendo 11 entradas (para la primer coincidencia) lo que nos permite abarcar de manera completa el tema buscado.

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

1 - Introducción

16

Otra característica a resaltar de este formato, es su posibilidad de agregar comentarios en cada 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ándote que el tema tiene agregados. Haciendo clic en él, aparecerán tus notas personales.

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

17

Manual 400 Macros Plus 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 de Excel 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 los datos de otra hoja, que cada vez que ingresamos valores con cierto criterio, nos coloque un color de fuente o fondo, etc.

El Editor de Macros: Desde el menú Herramientas, Macros, Editor de Macros tenemos acceso a una ventana donde se colocarán ya sea simples instrucciones, pequeñas rutinas y códigos completos de aplicaciones como 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:

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

1 - Introducción

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 © <2005=2010> Elsa M.Meyer (Elsamatilde)

18

19

1.7

Manual 400 Macros Plus

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

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

Capítulo

II

21

Manual 400 Macros Plus

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 pueden ejecutarse 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 objetos Libro y Hojas, siendo los más comunes: abrir, guardar, imprimir o cerrar libros, activar o desactivar hojas. Estas rutinas no pueden ser ejecutadas manualmente, como las que colocamos en 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 al Editor, veremos los 2 cuadros desplegables: Objetos y Eventos. Debemos seleccionar un objeto y luego optar por un evento. A continuación la primera y última instrucció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 libro End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'instrucciones que se ejecutarán cada vez que se seleccione una celda End Sub

A continuación los Eventos de Libros: Activate: se activa el libro AddInstall: ocurre al instalar el libro como complemento AddUninstall: ocurre al desinstalar el libro como complemento BeforeClose: antes de cerrar el libro BeforePrint: antes de imprimir BeforeSave: antes de guardar el libro Deactivate: al desactivar el libro NewSheet: al insertar nueva hoja Open: al abrir el libro SheetActivate: al activar una hoja SheetCalculate: al efectuar cálculos en hoja SheetChange: al efectuar cambios en hoja SheetDeactivate: al desactivar hoja SheetFollowHyperlink: al clic en un hipervínculo SheetPivotTableUpdate: ocurre después de actualizar la hoja del informe de tabla dinámica SheetSelectionChange: se produce cuando la selección cambia en una hoja WindowActivate: cuando se activa cualquier ventana del libro WindowDeactivate: cuando se desactiva cualquier ventana del libro WindowResize: cuando se cambia de tamaño cualquier ventana del libro PivotTableCloseConnection: Ocurre después de que un informe de tabla dinámica cierra la conexión con su origen de datos. © <2005=2010> Elsa M.Meyer (Elsamatilde)

2 - Eventos, Metodos y Propiedades

22

PivotTableOpenConnection: Ocurre después de que un informe de tabla dinámica abre la conexión con su origen de datos SheetBeforeDoubleClick: Ocurre al hacer doble clic en una hoja de cálculo, antes de la acción predeterminada para el doble clic SheetBeforeRightClick: Ocurre al hacer clic con el botón secundario del mouse (ratón) en una 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 a hojas (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 para el objeto Hoja donde se encuentre. Es decir, si seleccionamos el objeto Hoja2 (Barras_Inicio) la macro de Evento que escribamos solo se ejecutará para esta hoja 2. Los eventos de Hojas son: Activate: al activar esta hoja BeforeDoubleClic: al presionar doble clic BeforeRightClick: al clic derecho en la hoja Calculate: al realizar cálculos en esta hoja Change: al introducir cambios en esta hoja Deactivate: al desactivar la hoja FollowHyperlink: al presionar un hipervínculo PivotTableUpdate: al actualizar una tabla dinámica en la hoja SelectionChange: al seleccionar y pasar de celda. Atención: también los controles colocados en un Userform tienen su lista de eventos, como SetFocus (al recibir el enfoque), LostFocus (al perder el enfoque) y muchos más que encontrará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

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

23

2.4

Manual 400 Macros Plus

Propiedades

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

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

Capítulo

III

25

Manual 400 Macros Plus

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ólo pueden ser utilizados en éste. Para declararlas se utiliza la sentencia Dim, generalmente al inicio del procedimiento, aunque también pueden ser declaradas en otros puntos del mismo. Ejemplo: Sub Macro1() Dim valor1 as Integer, valor2 as Integer Dim cadena1 as String 'otras instrucciones End Sub

Variables Públicas: Son las que estarán disponibles para todos los procesos, sus valores pueden ser utilizados en cualquier módulo. Se declaran como Public. Recomiendo utilizar un módulo especialmente destinado a la declaració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 primeras instrucciones 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, las Constantes mantienen su valor. También pueden ser Locales o Públicas Ejemplo: Const dia as Integer Public Const cadena1 as String © <2005=2010> Elsa M.Meyer (Elsamatilde)

3 - Tratamiento de Variables

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

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

26

Capítulo

IV

4 - Trabajando con Cadenas

4

4 - Trabajando con Cadenas

4.1

EXTRAER PARTES DE UNA CADENA

28

Para extraer partes de una cadena, ya sea el contenido de una celda, una variable o el resultado de un InputBox, contamos con las siguientes funciones: Left: devuelve el contenido de una cadena comenzando desde la izquierda a partir de la posición indicada en el segundo argumento. Right: devuelve lo que se encuentra a la derecha de la cadena Len: devuelve el largo de una cadena Mid: devuelve lo que se encuentra a partir de cierta posición y del largo establecido InStr: 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 a partir 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 integer Dim apellido As String Dim cadena As String cadena = "Juan Perez" 'se obtiene la ubicación del espacio esp = InStr("Juan Perez", " ") 'se obtiene la cadena a partir de la posición del espacio apellido = Mid(cadena, esp) 'se muestra el resultado MsgBox apellido End Sub

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

29

4.2

Manual 400 Macros Plus

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

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

Capítulo

V

31

Manual 400 Macros Plus

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 directorio predeterminado 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 predeterminado miRuta = CurDir() 'mostramos el resultado en un mensaje MsgBox miRuta 'otras instrucciones End 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

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

5 - Trabajando con Directorios y Archivos

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

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

32

Capítulo

VI

6 - Trabajando con Libros

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

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

34

35

6.2.7

Manual 400 Macros Plus

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

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

6 - Trabajando con Libros

6.7

36

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

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 (o minúsculas con Lcase), que al ser colocada en el objeto ThisWorkbook será de aplicación para todas 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 texto If Application.WorksheetFunction.IsText(Target.Value) Then 'convierte el contenido de la celda active (Target) en mayúsculas (Ucase) Target.Value = UCase(Target.Value) End If End Sub Atención: si una celda tiene una fórmula que devuelve texto, al ser convertida en maýusculas pierde 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 verde en 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 objeto ThisWorkbook, colocarla en la hoja deseada, seleccionándola entre los objetos que se encuentran 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 texto If Application.WorksheetFunction.IsText(Target.Value) Then 'convierte el contenido de la celda active (Target) en mayúsculas (Ucase) Target.Value = UCase(Target.Value) End If End Sub © <2005=2010> Elsa M.Meyer (Elsamatilde)

37

Manual 400 Macros Plus

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

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 © <2005=2010> Elsa M.Meyer (Elsamatilde)

6 - Trabajando con Libros

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

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

38

39

Manual 400 Macros Plus

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

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

6 - Trabajando con Libros

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

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

40

Capítulo

VII

7 - Trabajando con Hojas

7

7 - Trabajando con Hojas

7.1

MÉTODOS PARA HOJAS

42

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

Private Sub Workbook_Open() 'selecciona la hoja2 al abrir el libro Sheets(2).Select End Sub A continuación veremos ejemplos de los principales métodos y propiedades más comunes de las 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 su utilizació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 un rango 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 objeto ChartObject) o una colección de todos los gráficos incrustados (un objeto ChartObjects) 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ía agrega las flechas de rastreo.

ClearCircles

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

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

43

Manual 400 Macros Plus

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) o una colección de todos los objetos OLE (una colección OLEObjects) del gráfico o de 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. Use este método para pegar datos de otras aplicaciones o bien para pegarlos con un formato específico.

PivotTables

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

PivotTableWizard

Crea un nuevo informe de tabla dinámica. Este método no muestra el Asistente para tablas dinámicas. No está disponible para orígenes de datos OLE DB. Use el método Add para agregar una caché de tabla dinámica y crear a continuación un informe 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 una colecció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 la hoja o el libro no están protegidos.

XmlDataQuery

Devuelve un objeto Range que representa las celdas asignadas a una determinada expresión XPath. Devuelve NothingNothing si la expresión XPath especificada 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 una determinada expresión XPath. Devuelve NothingNothing si la expresión XPath especificada no se ha asignado a la hoja.

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

7 - Trabajando con Hojas

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

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

44

45

7.9

Manual 400 Macros Plus

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

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

7 - Trabajando con Hojas

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

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

46

47

7.23

Manual 400 Macros Plus

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

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

7 - Trabajando con Hojas

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

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

48

49

7.37

Manual 400 Macros Plus

Activar hoja cada tanto tiempo

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

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

Capítulo

VIII

51

Manual 400 Macros Plus

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 Excel Tambié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 protegida Areas Número de Rangos Seleccionados Borders Devuelve una colección que serán los bordes de un rango Cells Representa las celdas del rango especificado Characters Permite trabajar con los caracteres de una cadena Column Posición de columna en la que empieza el Rango Columns Columnas que componen un rango ColumnWidth Establece el ancho de las columnas del rango especificado Comment Devuelve un objeto que será el comentario de la celda Count Cuenta el número de objetos de un conjunto. CountLarge Cuenta el valor más alto de un conjunto de valores CurrentRegion La región actual es un rango limitado por cualquier combinación de filas y columnas vacías. Equivale a presionar Shift+Control+* sobre una celda End Representa la celda situada al final de la región que contiene el rango fuente. EntireColumn Representa toda la columna a la cual pertenece un rango EntireRow Representa toda la fila a la cual pertenece un rango Font Representa la fuente del Rango FormatConditions Permite modificar un formato condicional ya existente en la celda Formula Fórmula de las celdas de un rango FormulaArray Permite establecer una fórmula para la matriz o rango de celdas FormulaHidden Permite establecer si una fórmula se ocultará cuando la hoja se proteja HasFormula Verdadero si la celda o rango tiene una fórmula, falso en caso contrario Height Establece el alto de celda o fila Hidden Establece si las filas o columnas están ocultas HorizontalAlignment Permite establecer la orientación horizontal © <2005=2010> Elsa M.Meyer (Elsamatilde)

8 - Trabajando con Celdas y Rangos Hiperlinks Interior Left Locked MergeArea MergeCells Name Next NumberFormat Offset PageBreak Previous Resize Row Rows Style Text Top Validation Value VerticalAlignment Width

Devuelve una colección Hiperlinks que representa los vínculos del rango Permite trabajar con el interior de una celda (color o trama) Establece el margen izquierdo de una celda o rango Indica si un objeto o rango se encuentra bloqueado Indica si la celda se encuentra en un rango combinado Indica si un rango contiene celdas combinadas Devuelve el nombre de un objeto Devuelve un objeto Range que representa la celda siguiente Establece el formato de una celda o rango Permite desplazarse en forma relativa con respecto a una celda o un rango Permite establecer dónde se hará el salto de página Devuelve la celda anterior Permite redefinir el tamaño de un rango Posición de fila en la que empieza el Rango Filas que componen un rango Indica el estilo del rango Texto contenido en las celdas de un rango Establece el valor tope de una celda Devuelve un objeto que representa la validación de datos para un rango Valor contenido en las celdas de un rango Permite establecer la orientación vertical 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

52

Seleccionar celdas a cierta distancia de la celda activa

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

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

53

8.6

Manual 400 Macros Plus

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 selecciona el rango completo

Range("B2").CurrentRegion.Select

Una región comprende celdas aledañas hasta encontrar celdas vacías, tanto hacia la derecha como 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

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

8 - Trabajando con Celdas y Rangos

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

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

54

55

8.17

Manual 400 Macros Plus

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

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

8 - Trabajando con Celdas y Rangos

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

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

56

57

8.31

Manual 400 Macros Plus

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

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

8 - Trabajando con Celdas y Rangos

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

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

58

59

8.45

Manual 400 Macros Plus

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

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

8 - Trabajando con Celdas y Rangos

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

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

60

Capítulo

IX

9 - Bucles: Instrucciones o Comandos Especiales

9

9 - Bucles: Instrucciones o Comandos Especiales

9.1

Qué es un bucle?

62

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 un objeto. Sintaxis: For Each elemento In grupo [instrucciones] [Exit For] [instrucciones] Next [elemento]

'por cada elemento del grupo 'se ejecutan las instrucciones 'opción de salir del bucle 'opción de ejecutar otras instrucciones 'se repite el ciclo para el elemento siguiente

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

Ejemplo: Recorrer un rango que previamente se habrá seleccionado. Pasar a color de fuente azul si la celda contiene datos. Sub RecorreCeldas() Dim celda As Range Dim rango As Range 'se toma el rango seleccionado previamente Set rango = Selection 'por cada celda en el rango For Each celda In rango 'si la celda está vacía If celda.Value = "" Then 'se coloca color de fuente automático celda.Font.ColorIndex = xlAutomatic 'si la celda tiene datos Else 'se coloca la fuente de color azul celda.Font.ColorIndex = 5 © <2005=2010> Elsa M.Meyer (Elsamatilde)

63

Manual 400 Macros Plus End If 'se repite el bucle, con la siguiente celda del rango Next End Sub

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

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

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

9 - Bucles: Instrucciones o Comandos Especiales

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

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

64

Capítulo

X

10- Trabajando con fórmulas

10

10- Trabajando con fórmulas

10.1

Trabajando con fórmulas

66

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, para colocarlas 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 las funciones Indice y Coincidir Sub formula2 ActiveCell.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

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

67

10.3

Manual 400 Macros Plus

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

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

Capítulo

XI

69

11

Manual 400 Macros Plus

11- Trabajando con Objetos Insertados en Hoja

Por Objeto Insertado hago referencia a los objetos de la Barra de Herramientas Cuadro de Controles 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 la misma 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 se deberá 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 primer entrada 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 controles ActiveSheet.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 clic derecho. A la derecha de la barra de fórmulas, aparecerá en el Cuadro de nombres, el nombre del control. También haciendo clic derecho sobre el control, opción 'Asignar Macro' se verá en la ventana emergente el nombre del control. Luego cancelar esta ventana.

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

11- Trabajando con Objetos Insertados en Hoja

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

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

70

71

Manual 400 Macros Plus

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

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

11- Trabajando con Objetos Insertados en Hoja

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

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

72

73

Manual 400 Macros Plus

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

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

Capítulo

XII

75

Manual 400 Macros Plus

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

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

12- Controlando Teclas y Mensajes de Excel

12.8

76

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, utilizar la propiedad DisplayAlerts con valor False Application.DisplayAlerts= False Esta línea, colocada delante de las instrucciones que posiblemente puedan devolver un mensaje de alerta, hará que no se muestre el aviso y si necesita una respuesta por parte del usuario Excel tomará 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 alerta Application.DisplayAlerts = False 'elimina la hoja Sheets(3).Delete 'devolver a la propiedad su valor predeterminado Application.DisplayAlerts = True End Sub © <2005=2010> Elsa M.Meyer (Elsamatilde)

77

Manual 400 Macros Plus

12.12 No mostrar aviso, al guardar un archivo, de que el archivo ya existe: 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

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

Capítulo

XIII

79

Manual 400 Macros Plus

13

13- Controlando Errores

13.1

ON ERROR RESUME NEXT

Un buen programa debe controlar los posibles errores imprevistos que pueden aparecer al ejecutarse 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 que controle 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 ser colocadas en las rutinas de Impresión, Apertura y guardado de libros, al insertar objetos como imá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 siguente instrucción en la ejecución de un procedimiento. Ejemplo: Sub miMacro() On Error Resume Next Intrucción 1 Instrucción 2 End Sub

El incluir la sentencia On Error Resume Next antes de la instrucción 1 implica que si se produce algú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

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

Capítulo

XIV

81

Manual 400 Macros Plus

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 valores en True o False las mostrará o las ocultará. Ejemplo: Sub muestrahojas () 'ocultar las pestañas ActiveWindow.DisplayWorkbookTabs = False End 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

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

14- Trabajando con Barras, Menues y Pestañas

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

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

82

83

Manual 400 Macros Plus

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

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

Capítulo

XV

85

Manual 400 Macros Plus

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

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

Capítulo

XVI

87

Manual 400 Macros Plus

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 un texto 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 de diá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 respuesta predeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro de texto vacío. xpos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontal entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de diálogo se centra horizontalmente. ypos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el 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á para proporcionar ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá especificarse context. Context Opcional. Expresión numérica que es el número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile. Type Variant opcional. Especifica el tipo de datos que se devuelve. Ejemplo: solicitar una clave de ingreso Sub SolicitoClave() Dim miClave as String miClave = InputBox("Ingrese Clave", "*** Solicitud ***") 'si la clave es correcta If miClave = "Macros" then 'se desproteje la Hoja2 Sheets("Hoja2").Unprotect End If End Sub Nota: Podría utilizarse la misma clave de usuario para desproteger la hoja: Sheets("Hoja2").Unprotect miclave

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

16- Uso de InputBox

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

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

88

Capítulo

XVII

17- Buscando Datos

17

17- Buscando Datos

17.1

Buscar una hoja en cierto libro

90

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 © <2005=2010> Elsa M.Meyer (Elsamatilde)

91

17.8

Manual 400 Macros Plus

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

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

17.9

BUSCAR DATOS DE 1 COLUMNA EN OTRA Y BORRAR LOS REPETIDOS

Esta rutina elimina datos duplicados. Se recorre una columna, que puede estar en otra hoja o en 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 los datos únicos. La columna a recorrer es la A, el rango donde se buscará ese dato va de F2 a F15, y se borran las celdas de A a C de la fila donde se encuentra el dato. Sub EliminaDuplicados() Dim rango As String Dim dato As String Dim midato As Object Dim fila As Byte 'rango donde se efectuará la búsqueda rango = "F2:F15" 'se recorre la columna D hasta la primer celda vacía Range("A2").Select While ActiveCell.Value <> "" 'el contenido de la celda será el dato a buscar dato = ActiveCell.Value 'se busca en el rango indicado Set 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 variable fila = ActiveCell.Row 'se borra el contenido del rango A:C de esa fila Range("A" & fila & ":C" & fila).Delete Else 'si el dato no fue encontrado se pasa a la celda siguiente ActiveCell.Offset(1, 0).Select End If 'se repite el proceso Wend Set midato = Nothing End Sub

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

17- Buscando Datos

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

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

92

Capítulo

XVIII

18- Evaluando y Comparando Datos

18

18- Evaluando y Comparando Datos

18.1

Comparando cadenas

94

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 celda presenta error, como por ejemplo un valor no encontrado con la función Buscar o como resultado 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

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

95

18.6

Manual 400 Macros Plus

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 o minúsculas El tema no se encuentra disponible en esta versión DEMO

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

18- Evaluando y Comparando Datos

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

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

96

Capítulo

XIX

19- Copiando Datos

19

19- Copiando Datos

19.1

Copiar rango de datos de una hoja a la siguiente

98

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: solo valores, este es el código: Sub PegarValor() 'previamente se habrá seleccionado el rango a copiar Selection.Copy Selection.PasteSpecial Paste:=xlValues 'inhabilita el modo Copiar/Pegar Application.CutCopyMode = False End Sub

Lo que logramos con estas instrucciones es dejar una celda que contiene fórmulas, solo con su valor, 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

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

99

19.6

Manual 400 Macros Plus

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

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

19- Copiando Datos

19.13 Copiar celdas de color en otro destino- Eliminar fila El tema no se encuentra disponible en esta versión DEMO

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

100

Capítulo

XX

20- Uso de Temporizador

20

20- Uso de Temporizador

20.1

CARACTERÍSTICAS DEL MÉTODO ONTIME

102

Para realizar tareas automáticamente en cierto tiempo, se utiliza el método OnTime, cuya sintaxis 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á el procedimiento. Por ejemplo, si LatestTime se establece como EarliestTime + 30 y Microsoft Excel 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 se termine de ejecutar el primer procedimiento. Si Microsoft Excel no está en el modo Listo después de 30 segundos, el procedimiento no se ejecutará. Si este argumento se omite, Microsoft Excel esperará hasta que pueda ejecutarse el procedimiento. schedule: True para programar un nuevo procedimiento OnTime. False para anular un procedimiento 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

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

103

20.3

Manual 400 Macros Plus

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

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

Capítulo

XXI

105

Manual 400 Macros Plus

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 filas 1 y 2 para los criterios, y la base se encuentra desde A4 hasta C10. El destino del rango a copiar es la misma hoja desde A14. (* para copiar en otra hoja Ver Notas) Sub FiltroAvanzado() 'seleccionar una celda de la base a filtrar Range("A4").Select 'establecer el rango de la base, las filas donde se encuentran los criterios y las celdas de destino Range("A4:C10").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "A1:B2"), CopyToRange:= Range("A14:C14"), Unique:=False End Sub

Notas: si el destino será otra hoja modificar la instrucción anterior donde dice: © <2005=2010> Elsa M.Meyer (Elsamatilde)

21- Trabajando con Filtros 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

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

106

107

21.9

Manual 400 Macros Plus

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 un ComboBox 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

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

Capítulo

XXII

109

Manual 400 Macros Plus

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

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

22- Trabajando con Gráficos

22.7

110

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 activa For Each grafico In ActiveSheet.ChartObjects 'modifica alto y ancho (*ver Notas) grafico.Height = 200 grafico.Width = 250 Next End 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

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

111

Manual 400 Macros Plus

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

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

Capítulo

XXIII

113

Manual 400 Macros Plus

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 o derecho 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 With End Sub

23.4

Ocultar un Userform

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

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

23- Trabajando con Userforms

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

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

114

115

Manual 400 Macros Plus

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

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

23- Trabajando con Userforms

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

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

116

Capítulo

XXIV

24- Trabajando con Tablas Dinámicas

24

24- Trabajando con Tablas Dinámicas

24.1

Comentarios sobre Tablas Dinámicas

118

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 campo Total, se puede obtener en una celda, el valor de este campo Sub totalTD() 'se selecciona el campo a devolver ActiveSheet.PivotTables("Tabla dinámica3").PivotSelect "Total 'Suma de TOTAL3'", xlDataOnly, True 'se coloca el valor seleccionado en la celda Range("B22") = Selection.Value End Sub

Nota: Observar que se está trabajando con una tabla denominada Tabla dinámica3 y cuenta con un campo denominado Suma de TOTAL3

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

119

24.4

Manual 400 Macros Plus

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

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

Capítulo

XXV

121

Manual 400 Macros Plus

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 ejecute tanto Vista Previa como la impresión de todo o parte del documento.

Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True End 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 © <2005=2010> Elsa M.Meyer (Elsamatilde)

25- Impresión

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

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

122

Capítulo

XXVI

26- Trabajando con el entorno Excel

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 © <2005=2010> Elsa M.Meyer (Elsamatilde)

124

125

26.8

Manual 400 Macros Plus

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 contiene el 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, podemos colocar 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 activo For Each objeto In ActiveWorkbook.VBProject.VBComponents 'se analiza si el objeto = 1 (modulo). Otros objetos son: 2=class, 3= Userform, 100 = Hojas If 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 linea End If Next objeto End Sub

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

26- Trabajando con el entorno Excel

126

IMPORTANTE: En versión Excel 2007, para poder tener acceso al objeto VBProyect, se requiere configurar 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 acceso al 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

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

127

Manual 400 Macros Plus

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

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

26- Trabajando con el entorno Excel

26.23 Llamar a un archivo HELP El tema no se encuentra disponible en esta versión DEMO

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

128

Capítulo

XXVII

27- Trabajando con otras aplicaciones

27

27- Trabajando con otras aplicaciones

27.1

COPIAR CELDAS EXCEL A UN DOC WORD

130

Si necesitamos copiar celdas a un documento Word, previamente debemos habilitar la referencia Microsoft Word 10.0 Object Library (para la versión XP, 12 para 2007) desde el menú Herramientas, Referencias del Editor de macros. En este ejemplo se selecciona un rango de celdas y a continuación se ejecuta la rutina, que puede estar asociada a un botón o atajo de teclado. Copiar la macro en un módulo: Sub ExcelWord() 'copia el rango seleccionado previamente Selection.Copy 'crea una nueva aplicación Word Dim appWord As Word.Application Set appWord = New Word.Application 'activa la aplicación Word haciéndola visible With appWord .Visible = True .Activate End With 'crea un nuevo documento Word appWord.Documents.Add 'pega las celdas copiadas appWord.Selection.Paste 'libera el objeto Word Set 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

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

131

27.3

Manual 400 Macros Plus

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

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

27- Trabajando con otras aplicaciones

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

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

132

Capítulo

XXVIII

28- Creando Complementos

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

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

134

Capítulo

XXIX

29- Funciones definidas por Usuario (UDF)

29

29- Funciones definidas por Usuario (UDF)

29.1

CREAR FUNCIONES PERSONALES

136

Hemos visto hasta ahora cómo escribir rutinas que se ejecutan ante ciertos eventos (como abrir y cerrar libros, al cambiar de hojas, etc) o al ser llamadas por el usuario (al clic en un botón, por atajo 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 misma manera que cuando escribimos en la hoja Excel: =Promedio(argumentos)

Las funciones personales, cuando son colocadas en un módulo del libro, solo podrá ser utilizada en este libro. Atención: Recomiendo dar un nombre al módulo para reconocer rápidamente su contenido. Para ello, 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 o xlam) 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

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

137

29.4

Manual 400 Macros Plus

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

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

29- Funciones definidas por Usuario (UDF)

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

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

138

139

Manual 400 Macros Plus

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

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

Capítulo

XXX

141

Manual 400 Macros Plus

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 la opción elegida en el primero. En primer lugar será necesario tener distintas listas por cada categoría que mostrará el primer Combobox. 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 control If ComboBox1.Value = "AA" Then 'se asigna un rango al segundo control ComboBox2.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 rango ComboBox2.ListFillRange = "J1:J7" End If End Sub

Nota: Para asignar un nombre de rango a cada lista, seleccionarla y seguir estos pasos según la versión: 1- hasta Excel 2003 incluído: menú Insertar, Nombre, Definir. Escribir un nombre que sea claro de identificar y Aceptar. 2- para Excel 2007: ficha Fórmula, Asignar nombre a un rango o Administrador de nombres desde el grupo Nombres Definidos.

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

30- Otras Rutinas Interesantes

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

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

142

143

30.9

Manual 400 Macros Plus

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

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

FIN DEL MANUAL