Manual 400 Macros Plus

Anuncio
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
Descargar