Anda di halaman 1dari 145

VERSIN DEMO

MANUAL 400 Macros para Excel


Versin 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 programacin.
Especialmente indicado para usuarios que ya han
experimentado con sus primeras rutinas.
Cada captulo presenta rutinas para determinados temas. As se
pueden encontrar temas como Trabajando con Directorios, con
Libros, con Hojas, con Objetos, Filtros, Impresin, otras
aplicaciones y ms.
Adems un captulo con el desarrollo paso a paso de 20
'funciones personales'
En esta VERSIN DEMO, solo se encuentran disponibles los
temas que aparecen en el ndice con Maysculas.

Manual 400 Macros Plus

Tabla de Contenidos
0

15

Cap. I 1 - Introduccin

1 BIENVENID@S
................................................................................................................................... 15
2 BREVE INTRODUCCIN
...................................................................................................................................
AL EDITOR
17
3 Cmo crear una
...................................................................................................................................
macro
18
4 Dnde colocar
...................................................................................................................................
las macros
18
5 Cmo ejecutar
...................................................................................................................................
una macro
18
6 Acerca de las...................................................................................................................................
macros Auto-Open
18
7 Acerca de las...................................................................................................................................
macros Auto-Close
19
8 Cmo proteger
...................................................................................................................................
un proyecto
19
9 Evitar que las
...................................................................................................................................
macros se vean desde el men
19
10 Otras consideraciones:
...................................................................................................................................
Cmo...?
19

21

Cap. II 2 - Eventos, Metodos y Propiedades

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

3 Metodos

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

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

25

Cap. III 3 - Tratamiento de Variables

1 Tipo de Variables
................................................................................................................................... 25
2 DURACIN 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 tamao
...................................................................................................................................
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 vnculos al abrir un libro
34
Inhabilitar la opcin
..........................................................................................................................................................
de actualizar vnculos 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 MAYSCULAS
36
9 Modificar la forma
...................................................................................................................................
de clculo del libro o de una hoja
37
10 Eliminar vinculos
...................................................................................................................................
externos
37
11 Eliminar vinculos
...................................................................................................................................
internos
37
12 Saber si uno...................................................................................................................................
o ms 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 sern datos concatenados
39
Guardar libro..........................................................................................................................................................
sin mdulos
39
Guardar libro..........................................................................................................................................................
sin cdigo 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 botn Cerrar del libro
40
Controlar errores
..........................................................................................................................................................
antes de cerrar un libro
40

Cap. VII 7 - Trabajando con Hojas

42

1 MTODOS 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 nmero
...................................................................................................................................
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 grfico
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 pestaa o Etiqueta de hojas
46
22 Cambiar color
...................................................................................................................................
de pestaa 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
...................................................................................................................................
alfabticamente
47
26 Armar una lista
...................................................................................................................................
con el nombre de las hojas
47
27 Modificar todos
...................................................................................................................................
los hipervnculos 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 segn
...................................................................................................................................
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 Dilogo:
...................................................................................................................................
cmo 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 Motodos
...................................................................................................................................
para Rangos
51
2 PRINCIPALES
...................................................................................................................................
PROPIEDADES DE RANGOS
51
3 Seleccin de...................................................................................................................................
Celdas o Rangos
52
4 Seleccin 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 REGIN DE LA CELDA ACTIVA
53
8 Seleccionar hasta
...................................................................................................................................
la ltima celda vaca -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 nmero
...................................................................................................................................
de columnas de un rango
54
15 Obtener el nmero
...................................................................................................................................
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

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 minsculas
...................................................................................................................................
por maysculas
57
37 Cambiar maysculas
...................................................................................................................................
por minsculas
57
38 Capturar fecha
...................................................................................................................................
y hora de carga de datos
58
39 Insertar Nombre
...................................................................................................................................
de rango
58
40 Insertar Hipervnculos
................................................................................................................................... 58
41 Transponer una
...................................................................................................................................
fila
58
42 Ordenar un rango
................................................................................................................................... 58
43 Detectar si la...................................................................................................................................
celda contiene formula
58
44 Ejemplo de frmula
...................................................................................................................................
con rango variable
58
45 Cmo 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 frmulas

66

1 Trabajando con
...................................................................................................................................
frmulas
66
<2005=2010> Elsa M.Meyer (Elsamatilde)

Contents

VI

2 INTRODUCIR...................................................................................................................................
FRMULAS EN CELDAS
66
3 Armar frmula
...................................................................................................................................
con datos variables
67
4 Modificar frmula
...................................................................................................................................
de celda
67
5 Colocar resultado
...................................................................................................................................
de frmula 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 segn
..........................................................................................................................................................
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 Imgenes

................................................................................................................................... 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 tamao 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 cdigo
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...................................................................................................................................
ejecucin 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


Pestaas

81

1 Consideraciones
...................................................................................................................................
generales para Barras y otros
81
2 OCULTAR LAS
...................................................................................................................................
PESTAAS 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 nmero
...................................................................................................................................
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 dilogo de Excel
83
18 Eliminar menu
...................................................................................................................................
contextual de Objetos
83

Cap. XV 15- Uso de Cuadros de Mensaje

85

1 Construccin...................................................................................................................................
de MsgBox
85
2 MsgBox como
...................................................................................................................................
PopUp
85

Cap. XVI 16- Uso de InputBox

87

1 CONSTRUCCIN
...................................................................................................................................
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 vlida
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 bsqueda
90
3 Devolver todos
...................................................................................................................................
los resultados de una bsqueda
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 Funcin 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 numrico o no
94
4 EVALUAR SI...................................................................................................................................
UNA CELDA PRESENTA ERROR
94
5 Eliminar filas...................................................................................................................................
si las celdas de cierta columna estn vacas
94
6 Eliminar fila si
...................................................................................................................................
varios datos del registro cumplen una condicin
95
7 Rellenar celdas
...................................................................................................................................
vacas de un rango con cierto valor
95
8 Evaluar el color
...................................................................................................................................
de celda
95
9 Eliminar filas...................................................................................................................................
vacas
95
10 Contar celdas
...................................................................................................................................
con igual color de fuente
95
11 Ordenar - Controlar
...................................................................................................................................
- borrar repetidos
95
12 Comparar cadenas
...................................................................................................................................
que pueden estar en maysculas o minsculas
95
13 Extraer la parte
...................................................................................................................................
numrica 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
...................................................................................................................................
segn 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 frmulas
...................................................................................................................................
en celdas de color
99
7 Copiar una frmula
...................................................................................................................................
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 frmulas
99
11 Copiar varios...................................................................................................................................
libros en uno solo
99
12 Copiar cabecera
...................................................................................................................................
o columna de ttulos
99
13 Copiar celdas
...................................................................................................................................
de color en otro destino- Eliminar fila
100

Cap. XX 20- Uso de Temporizador

102

1 CARACTERSTICAS
...................................................................................................................................
DEL MTODO 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 ttulos
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 Grficos

109

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

Contents

4 Crear un grfico
...................................................................................................................................
en hoja nueva y guardar el libro
109
5 Crear grfico
...................................................................................................................................
con datos de hoja variable
109
6 Imprimir grfico
...................................................................................................................................
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
...................................................................................................................................
grfico por macro
110
12 Recorrer todos
...................................................................................................................................
los grficos del libro
111
13 Reconocer ...................................................................................................................................
el rea del grfico 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
...................................................................................................................................
botn '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
...................................................................................................................................
numricos 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 segn valor seleccionado en Combobox
116

Cap. XXIV 24- Trabajando con Tablas Dinmicas

118

1 Comentarios
...................................................................................................................................
sobre Tablas Dinmicas
118
<2005=2010> Elsa M.Meyer (Elsamatilde)

XI

Manual 400 Macros Plus


2 Evitar la actualizacin
...................................................................................................................................
automtica de TD
118
3 OBTENER EL
...................................................................................................................................
TOTAL DE UNA TABLA DINMICA
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- Impresin

121

1 Imprimir hojas
................................................................................................................................... 121
2 Vista previa................................................................................................................................... 121
3 Establecer rea
...................................................................................................................................
de impresin:
121
4 IMPEDIR LA...................................................................................................................................
IMPRESIN
121
5 Enviar informacin
...................................................................................................................................
al Encabezado y Pi
121
6 Instrucciones
...................................................................................................................................
para configurar la pgina
121
7 Llamar al cuadro
...................................................................................................................................
de opciones para Imprimir
122
8 Elegir impresora
...................................................................................................................................
por medio de cdigo
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...................................................................................................................................
botn 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 mdulos
................................................................................................................................... 126
12 Importar mdulos
...................................................................................................................................
guardados como txt
126
13 Eliminar cdigo
................................................................................................................................... 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
...................................................................................................................................
sesin 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 lnea
131
8 Importar datos
...................................................................................................................................
de Access
131
9 Llamar a la ...................................................................................................................................
Calculadora
131
10 Llamar a la ...................................................................................................................................
aplicacin WinZip
132
11 Ejecutar archivo
...................................................................................................................................
de sonido al cambio en celda
132

Cap. XXVIII 28- Creando Complementos

134

1 Cmo 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 Espaa)
137
5 Funcion Digito
...................................................................................................................................
Verificador (RUT)
137
6 Funcion BuscarV
...................................................................................................................................
en varias hojas
137
7 Funcion Buscar
...................................................................................................................................
el ensimo elemento
137
8 Funcion Encontrar
...................................................................................................................................
ultimo dato
137
9 Funcion Sumar
...................................................................................................................................
rango con error
137
10 Funcin Contar
...................................................................................................................................
celdas de cierto color
137
11 Funcion Sumar
...................................................................................................................................
celdas de cierto color
138
12 Funcion Extraer
...................................................................................................................................
nmeros a la derecha de una cadena
138
13 Funcin Contar
...................................................................................................................................
nmero de vocales en una cadena
138
14 Funcin Contar
...................................................................................................................................
nmero de consonantes en una cadena
138
15 Funcion Contar
...................................................................................................................................
numeros pares
138
16 Funcion Contar
...................................................................................................................................
numeros impares
138
17 Funcion Fecha
...................................................................................................................................
creacin 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 SEGN SELECCIN EN OTRO
141
2 Ejecutar macro
...................................................................................................................................
segn valor en celda
142
3 Colorear celdas
...................................................................................................................................
por condicion
142
4 Convertir Monedas
................................................................................................................................... 142
5 Indicar equipos
...................................................................................................................................
disponibles en un Ciber:
142
6 Lotera: 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)

Captulo

15

Manual 400 Macros Plus

1 - Introduccin

1.1

BIENVENID@S

VERSIN DEMO
Manual: 400 MACROS Plus
+ 20 Funciones
(v.3.0) - para versiones Excel 2000 al 2007 inclusive
La intencin de este Manual es guiar al usuario de Excel a potenciar las planillas de clculo con
programacin.
NOTA: En esta versin DEMO se podr acceder a un tema por captulo. El mismo se
encuentra en maysculas en el ndice.

No solo los usuarios 'programadores' sacarn provecho de este libro. Los que nunca han
trabajado con algn lenguaje de programacin vern que muy fcilmente podrn 'personalizar'
sus libros adaptando o creando rutinas con cdigo VBA (Visual Basic para Aplicaciones)
En el primer captulo un par de temas con imgenes para familiarizarnos con el entorno Editor
de Macros.
A continuacin un par de captulos detallando conceptos que sern utilizados a lo largo del
manual: Eventos, Mtodos, Variables, Cadenas y otros.
Luego siguen captulos ordenados por objetos: Libros-Hojas-Celdas o rangos-Barras-Objetos
dibujados , etc. donde partiendo de las principales instrucciones bsicas (ej: Abrir o Guardar
libros), llegaremos hasta cdigos para manipular otras aplicaciones (tanto Word, Access o el
mismo entorno Windows), crear Complementos, cdigo para controlar Barras, Teclas, Objetos,
Filtros y mucho ms.
As hasta llegar al ltimo captulo con 'Rutinas Interesantes' que pueden serte de utilidad o de
modelo para otras tareas, como: Colorear celdas por condicin, Crear Libros por cada hoja y
muchas ms.
Cada lnea, cada comando se encuentra explicado en espaol para que puedan ser adaptados a
las necesidades y configuracin de cada libro.
Contiene adems imgenes que guiarn y mostrarn los resultados obtenidos una vez ejecutada
la macro.
Una caracterstica 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 - Introduccin

16

Otra caracterstica a resaltar de este formato, es su posibilidad de agregar comentarios en


cada tema. Podrs agregar tus propias observaciones, ejemplos u otros datos de inters.
Desde el men Edicin, Anotar encontrars una ventana para escribir.
Cada vez que accedas a este tema, encontrars en el margen superior un clip recordndote
que el tema tiene agregados. Haciendo clic en l, aparecern 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, envame tus comentarios a:
cibersoft_arg@yahoo.com.ar

1.2

BREVE INTRODUCCIN AL EDITOR

Qu es una macro:
Una macro es un conjunto de instrucciones en lenguaje de programacin, 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
colocarn ya sea simples instrucciones, pequeas rutinas y cdigos completos de aplicaciones
como Facturacin, Control de Gestin, etc.
En versin Excel 2007 se accede desde la ficha Programador, Visual Basic (primer opcin)

Veamos qu encontramos en la ventana del Editor:

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

1 - Introduccin

1.3

Cmo crear una macro

El tema no se encuentra disponible en esta versin DEMO

1.4

Dnde colocar las macros

El tema no se encuentra disponible en esta versin DEMO

1.5

Cmo ejecutar una macro

El tema no se encuentra disponible en esta versin DEMO

1.6

Acerca de las macros Auto-Open

El tema no se encuentra disponible en esta versin 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 versin DEMO

1.8

Cmo proteger un proyecto

El tema no se encuentra disponible en esta versin DEMO

1.9

Evitar que las macros se vean desde el men

El tema no se encuentra disponible en esta versin DEMO

1.10

Otras consideraciones: Cmo...?

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

II

21

Manual 400 Macros Plus

2 - Eventos, Metodos y Propiedades

2.1

EVENTOS - LISTADO

Hemos visto en el captulo Introduccin, Cmo ejecutar una macro, que stas pueden
ejecutarse ante un evento del libro u hoja.
Pero qu es un evento? es una accin que el usuario ejecuta, y tiene que ver con los objetos
Libro y Hojas, siendo los ms comunes: abrir, guardar, imprimir o cerrar libros, activar o
desactivar hojas. Estas rutinas no pueden ser ejecutadas manualmente, como las que colocamos
en mdulos, sino que se ejecutan al producirse el evento.
Si volvemos a la imagen que se encuentra en el captulo Introduccin, Breve introduccin al
Editor, veremos los 2 cuadros desplegables: Objetos y Eventos.
Debemos seleccionar un objeto y luego optar por un evento. A continuacin la primera y ltima
instruccin de la macro se escribirn.
Ejemplos:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'instrucciones que se ejecutarn antes de guardar el libro
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'instrucciones que se ejecutarn cada vez que se seleccione una celda
End Sub

A continuacin 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 clculos en hoja
SheetChange:
al efectuar cambios en hoja
SheetDeactivate:
al desactivar hoja
SheetFollowHyperlink: al clic en un hipervnculo
SheetPivotTableUpdate: ocurre despus de actualizar la hoja del informe de tabla dinmica
SheetSelectionChange: se produce cuando la seleccin 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 tamao cualquier ventana del libro
PivotTableCloseConnection: Ocurre despus de que un informe de tabla dinmica cierra la
conexin con su origen de datos.
<2005=2010> Elsa M.Meyer (Elsamatilde)

2 - Eventos, Metodos y Propiedades

22

PivotTableOpenConnection: Ocurre despus de que un informe de tabla dinmica abre la


conexin con su origen de datos
SheetBeforeDoubleClick: Ocurre al hacer doble clic en una hoja de clculo, antes de la accin
predeterminada para el doble clic
SheetBeforeRightClick:
Ocurre al hacer clic con el botn secundario del mouse (ratn) en
una hoja de clculo, antes de la accin predeterminada.
Las rutinas colocadas en los eventos del libro (Private Sub Workbook) que hacen mencin 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 clculos en esta hoja
Change:
al introducir cambios en esta hoja
Deactivate:
al desactivar la hoja
FollowHyperlink: al presionar un hipervnculo
PivotTableUpdate: al actualizar una tabla dinmica en la hoja
SelectionChange: al seleccionar y pasar de celda.
Atencin: tambin los controles colocados en un Userform tienen su lista de eventos, como
SetFocus (al recibir el enfoque), LostFocus (al perder el enfoque) y muchos ms que
encontrarn en los ejemplos del captulo Userforms

2.2

Especial: Eventos de Hojas

2.2.1

Cambios y Seleccin en Hoja

El tema no se encuentra disponible en esta versin DEMO

2.3

Metodos

El tema no se encuentra disponible en esta versin DEMO

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

23

2.4

Manual 400 Macros Plus

Propiedades

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

III

25

Manual 400 Macros Plus

3 - Tratamiento de Variables

3.1

Tipo de Variables

El tema no se encuentra disponible en esta versin DEMO

3.2

DURACIN DE LAS VARIABLES

Las variables pueden ser: Locales o Pblicas


Variables Locales:
Las variables Locales son las que se declaran dentro de un procedimiento y sus valores slo
pueden ser utilizados en ste. Para declararlas se utiliza la sentencia Dim, generalmente al inicio
del procedimiento, aunque tambin 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 Pblicas:
Son las que estarn disponibles para todos los procesos, sus valores pueden ser utilizados en
cualquier mdulo.
Se declaran como Public. Recomiendo utilizar un mdulo especialmente destinado a la
declaracin de estas variables lo que facilitar su ubicacin.
Si se declararn en un mdulo utilizado para otro procedimiento debern 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 ejecucin de un proceso, las
Constantes mantienen su valor. Tambin pueden ser Locales o Pblicas
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 versin DEMO

3.4

Convirtiendo variables

El tema no se encuentra disponible en esta versin DEMO

3.5

Limpiando variables

El tema no se encuentra disponible en esta versin DEMO

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

26

Captulo

IV

4 - Trabajando con Cadenas

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
posicin 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 posicin y del largo establecido
InStr: devuelve la posicin 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 nmero utilizar la funcin Val
(*ver ms sobre Conversin de variables en el captulo: Tratamiento de Variables)
Right(Range("A1").Value, 2) devuelve 'EF'

Tambin podemos utilizar la funcin 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 despus del caracter 'espacio'
Sub variables()
Dim esp As integer
Dim apellido As String
Dim cadena As String
cadena = "Juan Perez"
'se obtiene la ubicacin del espacio
esp = InStr("Juan Perez", " ")
'se obtiene la cadena a partir de la posicin 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 versin DEMO

4.3

Obtener el largo de una cadena

El tema no se encuentra disponible en esta versin DEMO

4.4

Introducir caracteres especiales

El tema no se encuentra disponible en esta versin DEMO

4.5

Detectar o encontrar texto en una cadena

El tema no se encuentra disponible en esta versin DEMO

4.6

Creando cadenas de largo fijo

El tema no se encuentra disponible en esta versin DEMO

4.7

Obtener la parte numerica de una cadena

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

31

Manual 400 Macros Plus

5 - Trabajando con Directorios y Archivos

5.1

Creando un nuevo directorio

El tema no se encuentra disponible en esta versin DEMO

5.2

ESTABLECER LA RUTA DE ACCESO PREDETERMINADA

En el tema anterior hemos visto que la funcin 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 funcin CurDir.

En versin Excel2007, la ruta predeterminada se encuentra desde el botn 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 versin DEMO

5.4

Establecer si un archivo existe en un directorio

El tema no se encuentra disponible en esta versin 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 versin DEMO

5.6

Establecer nueva unidad de disco

El tema no se encuentra disponible en esta versin DEMO

5.7

Establecer nuevo directorio o carpeta

El tema no se encuentra disponible en esta versin DEMO

5.8

Crear lista de archivos de una carpeta

El tema no se encuentra disponible en esta versin DEMO

5.9

Copiar todos los libros de una carpeta en otra

El tema no se encuentra disponible en esta versin DEMO

5.10

Obtener propiedad fecha y hora de archivos

El tema no se encuentra disponible en esta versin DEMO

5.11

Obtener tamao de archivos

El tema no se encuentra disponible en esta versin DEMO

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

32

Captulo

VI

6 - Trabajando con Libros

6 - Trabajando con Libros

6.1

Principales Metodos y Propiedades de Libros

El tema no se encuentra disponible en esta versin DEMO

6.2

Abriendo Libros

6.2.1

Abrir un segundo libro

El tema no se encuentra disponible en esta versin DEMO

6.2.2

Abrir un libro con clave

El tema no se encuentra disponible en esta versin DEMO

6.2.3

Abrir libro buscando la carpeta que lo contiene

El tema no se encuentra disponible en esta versin DEMO

6.2.4

Ejecutar macro al abrir un libro

El tema no se encuentra disponible en esta versin DEMO

6.2.5

Inhabilitar el mensaje de actualizar vnculos al abrir un libro

El tema no se encuentra disponible en esta versin DEMO

6.2.6

Inhabilitar la opcin de actualizar vnculos al abrir otros libros

El tema no se encuentra disponible en esta versin 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 versin DEMO

6.2.8

Al abrir libro ocultarlo (minimizarlo) y mostrar un Userform

El tema no se encuentra disponible en esta versin DEMO

6.2.9

Impedir que un libro se abra si la fecha caduc

El tema no se encuentra disponible en esta versin DEMO

6.3

Seleccionar un libro

El tema no se encuentra disponible en esta versin DEMO

6.4

Obtener el nombre de un libro

El tema no se encuentra disponible en esta versin DEMO

6.5

Obtener la ruta de un libro

El tema no se encuentra disponible en esta versin DEMO

6.6

Activar otro libro distinto al actual

El tema no se encuentra disponible en esta versin 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 versin DEMO

6.8

CARGAR TODO EL LIBRO EN MAYSCULAS

Se puede forzar a que todo el libro sea cargado en maysculas con la expresin Ucase (o
minsculas con Lcase), que al ser colocada en el objeto ThisWorkbook ser de aplicacin 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 maysculas (Ucase)
Target.Value = UCase(Target.Value)
End If
End Sub
Atencin: si una celda tiene una frmula que devuelve texto, al ser convertida en mausculas
pierde su condicin de frmula quedando solo el texto como valor.
Para evitar esto podemos realizar la consulta con esta instruccin en lugar de la lnea 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, seleccionndola 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 maysculas (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 minsculas reemplazando Ucase con
Lcase

Atencin: ver otra rutina para convertir maysculas o minsculas en el captulo 12:
Controlando Teclas....., Ejecutar macro al presionar Enter

6.9

Modificar la forma de clculo del libro o de una hoja

El tema no se encuentra disponible en esta versin DEMO

6.10

Eliminar vinculos externos

El tema no se encuentra disponible en esta versin DEMO

6.11

Eliminar vinculos internos

El tema no se encuentra disponible en esta versin DEMO

6.12

Saber si uno o ms libros existen en una carpeta

El tema no se encuentra disponible en esta versin DEMO

6.13

Crear libro como copia de cierta hoja

El tema no se encuentra disponible en esta versin DEMO

6.14

Copiar un libro sin abrirlo

El tema no se encuentra disponible en esta versin 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 versin DEMO

6.16

Eliminar Nombres de Rangos en libro

El tema no se encuentra disponible en esta versin DEMO

6.17

Armar un indice vinculado a cada hoja del libro

El tema no se encuentra disponible en esta versin DEMO

6.18

Guardando Libros

6.18.1 Guardar el libro activo


El tema no se encuentra disponible en esta versin DEMO

6.18.2 Guardar un libro con otro nombre


El tema no se encuentra disponible en esta versin DEMO

6.18.3 Guardar un libro con otro formato (txt)


El tema no se encuentra disponible en esta versin DEMO

6.18.4 Guardar un libro con clave


El tema no se encuentra disponible en esta versin 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 versin DEMO

6.18.6 Guardar un libro cuyo nombre sern datos concatenados


El tema no se encuentra disponible en esta versin DEMO

6.18.7 Guardar libro sin mdulos


El tema no se encuentra disponible en esta versin DEMO

6.18.8 Guardar libro sin cdigo o macros


El tema no se encuentra disponible en esta versin DEMO

6.19

Cerrando Libros

6.19.1 Cerrar todos los libros en uso


El tema no se encuentra disponible en esta versin DEMO

6.19.2 Cerrar un solo libro


El tema no se encuentra disponible en esta versin DEMO

6.19.3 Cerrar un libro SIN guardar los cambios


El tema no se encuentra disponible en esta versin 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 versin DEMO

6.19.5 Impedir el uso del botn Cerrar del libro


El tema no se encuentra disponible en esta versin DEMO

6.19.6 Controlar errores antes de cerrar un libro


El tema no se encuentra disponible en esta versin DEMO

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

40

Captulo

VII

7 - Trabajando con Hojas

7 - Trabajando con Hojas

7.1

MTODOS PARA HOJAS

42

Las instrucciones para el manejo de Hojas, pueden ser includas en cualquier punto de nuestras
rutinas, ya sea que las tengamos en mdulos 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 continuacin veremos ejemplos de los principales mtodos y propiedades ms comunes de
las hojas.

(Ver descripcin e imagen en captulo: Eventos, Mtodos y Propiedades)

Mtodos
Ingresando como tema en la Ayuda de Excel el mtodo, podrn obtener ejemplos de su
utilizacin.
Tambin encontrarn 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 clculo especfica 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 grfico incrustado (un objeto


ChartObject) o una coleccin de todos los grficos incrustados (un objeto
ChartObjects) de la hoja.

CheckSpelling

Comprueba la ortografa de un objeto.

CircleInvalid

Rodea con un crculo los elementos no vlidos de la hoja de clculo.

ClearArrows

Borra las flechas de rastreo de la hoja de clculo. La caracterstica auditora


agrega las flechas de rastreo.

ClearCircles

Borra los crculos de los elementos no vlidos de la hoja de clculo.

<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 coleccin de todos los objetos OLE (una coleccin OLEObjects) del grfico o
de la hoja. Slo 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 mtodo para pegar datos de otras aplicaciones o bien para pegarlos con un
formato especfico.

PivotTables

Devuelve un objeto que representa un solo informe de tabla dinmica (un objeto
PivotTable) o una coleccin de todos los informes de tabla dinmica (un objeto
PivotTables) de una hoja de clculo. Slo lectura.

PivotTableWizard

Crea un nuevo informe de tabla dinmica. Este mtodo no muestra el Asistente


para tablas dinmicas. No est disponible para orgenes de datos OLE DB. Use el
mtodo Add para agregar una cach de tabla dinmica y crear a continuacin un
informe de tabla dinmica basado en la cach.

PrintOut

Imprime el objeto.

PrintPreview

Muestra una vista preliminar del objeto tal como aparecera impreso.

Protect

Protege una hoja de clculo para que no se pueda modificar.

ResetAllPageBreaks

Restablece todos los saltos de pgina en la hoja especificada.

SaveAs

Guarda los cambios del grfico o de la hoja de clculo en un archivo diferente.

Scenarios

Devuelve un objeto que representa un solo escenario (un objeto Scenario) o una
coleccin de escenarios (un objeto Scenarios) en la hoja de clculo.

Select

Selecciona el objeto.

SetBackgroundPicture

Establece el grfico de fondo para una hoja de clculo.

ShowAllData

Hace visibles todas las filas de la lista filtrada actual. Si se est usando Autofiltro,
este mtodo cambiar las flechas a "Todas".

ShowDataForm

Muestra el formulario de datos correspondiente a la hoja de clculo.

Unprotect

Elimina la proteccin de una hoja o de un libro. Este mtodo no tiene efecto si la


hoja o el libro no estn protegidos.

XmlDataQuery

Devuelve un objeto Range que representa las celdas asignadas a una


determinada expresin XPath. Devuelve NothingNothing si la expresin XPath
especificada no se ha asignado a la hoja o si el rango asignado est vaco.

XmlMapQuery

Devuelve un objeto Range que representa las celdas asignadas a una


determinada expresin XPath. Devuelve NothingNothing si la expresin 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 versin DEMO

7.3

Activar o seleccionar otras hojas distintas a la actual

El tema no se encuentra disponible en esta versin DEMO

7.4

Seleccionar la hoja anterior o posterior a la activa

El tema no se encuentra disponible en esta versin DEMO

7.5

Seleccionar todas las hojas de un libro

El tema no se encuentra disponible en esta versin DEMO

7.6

Devolver el nombre de la hoja en una variable

El tema no se encuentra disponible en esta versin DEMO

7.7

Formas de mostrar el nombre de hojas

El tema no se encuentra disponible en esta versin DEMO

7.8

Devolver el nmero de hoja en una variable

El tema no se encuentra disponible en esta versin 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 versin DEMO

7.10

Desproteger una hoja

El tema no se encuentra disponible en esta versin DEMO

7.11

Vista previa de la hoja activa y de otras hojas

El tema no se encuentra disponible en esta versin DEMO

7.12

Imprimir hojas

El tema no se encuentra disponible en esta versin DEMO

7.13

Insertar hojas

El tema no se encuentra disponible en esta versin DEMO

7.14

Eliminar hojas

El tema no se encuentra disponible en esta versin DEMO

7.15

Copiar hojas

El tema no se encuentra disponible en esta versin DEMO

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

7 - Trabajando con Hojas

7.16

Crear hoja/libro con un grfico

El tema no se encuentra disponible en esta versin DEMO

7.17

Ocultar hojas

El tema no se encuentra disponible en esta versin DEMO

7.18

Mostrar hoja oculta

El tema no se encuentra disponible en esta versin DEMO

7.19

Mostrar todas las hojas ocultas de un libro

El tema no se encuentra disponible en esta versin DEMO

7.20

Impedir que se vean datos al entrar a hoja

El tema no se encuentra disponible en esta versin DEMO

7.21

Cambiar nombre a pestaa o Etiqueta de hojas

El tema no se encuentra disponible en esta versin DEMO

7.22

Cambiar color de pestaa o Etiqueta de Hojas

El tema no se encuentra disponible en esta versin 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 versin DEMO

7.24

Insertar imagen en una hoja

El tema no se encuentra disponible en esta versin DEMO

7.25

Ordenar las hojas alfabticamente

El tema no se encuentra disponible en esta versin DEMO

7.26

Armar una lista con el nombre de las hojas

El tema no se encuentra disponible en esta versin DEMO

7.27

Modificar todos los hipervnculos de la hoja

El tema no se encuentra disponible en esta versin DEMO

7.28

Establecer filas y columnas a mostrar al abrir hoja

El tema no se encuentra disponible en esta versin DEMO

7.29

Establecer area visible de una hoja

El tema no se encuentra disponible en esta versin 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 versin DEMO

7.31

Crear hojas segn valores en una lista

El tema no se encuentra disponible en esta versin DEMO

7.32

Aplicar Zoom a un rango u hoja

El tema no se encuentra disponible en esta versin DEMO

7.33

Obtener el valor del Zoom aplicado a la hoja

El tema no se encuentra disponible en esta versin DEMO

7.34

Ejecutar rutina en todas las hojas del libro

El tema no se encuentra disponible en esta versin DEMO

7.35

Hojas de Dilogo: cmo ocultarlas

El tema no se encuentra disponible en esta versin DEMO

7.36

Eliminar todos los comentarios de la hoja

El tema no se encuentra disponible en esta versin 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 versin DEMO

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

Captulo

VIII

51

Manual 400 Macros Plus

8 - Trabajando con Celdas y Rangos

8.1

Principales Motodos para Rangos

El tema no se encuentra disponible en esta versin DEMO

8.2

PRINCIPALES PROPIEDADES DE RANGOS

Hemos visto en el captulo 2 que una propiedad es la caracterstica de un objeto (rango, celda,
objetos, otros)

(ver descripcin e imagen en captulo: Eventos, Mtodos y Propiedades)

Propiedades ms comunes
Para ver ejemplos de cada uno de estas propiedades ingresarla como tema en la Ayuda de Excel
Tambin puede utilizar el buscador de este manual

Address
Indica la direccin del rango seleccionado.
AllowEdit
Indica el rango que puede ser modificado en hoja protegida
Areas
Nmero de Rangos Seleccionados
Borders
Devuelve una coleccin que sern los bordes de un rango
Cells
Representa las celdas del rango especificado
Characters
Permite trabajar con los caracteres de una cadena
Column
Posicin 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 nmero de objetos de un conjunto.
CountLarge
Cuenta el valor ms alto de un conjunto de valores
CurrentRegion La regin actual es un rango limitado por cualquier combinacin de filas y
columnas vacas. Equivale a presionar Shift+Control+* sobre una celda
End
Representa la celda situada al final de la regin 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
Frmula de las celdas de un rango
FormulaArray
Permite establecer una frmula para la matriz o rango de celdas
FormulaHidden
Permite establecer si una frmula se ocultar cuando la hoja se proteja
HasFormula
Verdadero si la celda o rango tiene una frmula, falso en caso contrario
Height
Establece el alto de celda o fila
Hidden
Establece si las filas o columnas estn ocultas
HorizontalAlignment Permite establecer la orientacin 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 coleccin Hiperlinks que representa los vnculos 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 dnde se har el salto de pgina
Devuelve la celda anterior
Permite redefinir el tamao de un rango
Posicin 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 validacin de datos para un rango
Valor contenido en las celdas de un rango
Permite establecer la orientacin vertical
Indica el ancho de un objeto

En las hojas siguientes encontrarn ejemplos del uso de cada uno de estos temas.

8.3

Seleccin de Celdas o Rangos

El tema no se encuentra disponible en esta versin DEMO

8.4

Seleccin de rango utilizando variables

El tema no se encuentra disponible en esta versin DEMO

8.5

52

Seleccionar celdas a cierta distancia de la celda activa

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.7

SELECCIONAR LA REGIN DE LA CELDA ACTIVA

Si por ejemplo tenemos una lista que va desde B2 hasta H20, la instruccin siguiente selecciona
el rango completo

Range("B2").CurrentRegion.Select

Una regin comprende celdas aledaas hasta encontrar celdas vacas, tanto hacia la derecha
como hacia abajo.

8.8

Seleccionar hasta la ltima celda vaca -Fin de rango

El tema no se encuentra disponible en esta versin DEMO

8.9

Devolver la direccion de un rango o celda

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.11

Ubicarnos en primer celda libre de una columna

El tema no se encuentra disponible en esta versin DEMO

8.12

Guardar el numero de la primer fila libre

El tema no se encuentra disponible en esta versin DEMO

8.13

Obtener ultima columna con datos

El tema no se encuentra disponible en esta versin DEMO

8.14

Obtener el nmero de columnas de un rango

El tema no se encuentra disponible en esta versin DEMO

8.15

Obtener el nmero de filas de un rango

El tema no se encuentra disponible en esta versin DEMO

8.16

Contar la cantidad de objetos de un rango

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.18

Combinar/Descombinar celdas seleccionadas

El tema no se encuentra disponible en esta versin DEMO

8.19

Borrar o Limpiar celdas o rangos

El tema no se encuentra disponible en esta versin DEMO

8.20

Borrar celdas con cierto contenido

El tema no se encuentra disponible en esta versin DEMO

8.21

Eliminar celdas o rangos

El tema no se encuentra disponible en esta versin DEMO

8.22

Eliminar filas en blanco

El tema no se encuentra disponible en esta versin DEMO

8.23

Eliminar varias filas segun condicion

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.25

Eliminar Filas

El tema no se encuentra disponible en esta versin DEMO

8.26

Ocultar filas

El tema no se encuentra disponible en esta versin DEMO

8.27

Mostrar filas

El tema no se encuentra disponible en esta versin DEMO

8.28

Insertar Columnas

El tema no se encuentra disponible en esta versin DEMO

8.29

Eliminar columnas

El tema no se encuentra disponible en esta versin DEMO

8.30

Ocultar columnas

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.32

Insertar comentarios

El tema no se encuentra disponible en esta versin DEMO

8.33

Formatos a Celdas

El tema no se encuentra disponible en esta versin DEMO

8.34

Formato a Columnas

El tema no se encuentra disponible en esta versin DEMO

8.35

Autoajustar columnas

El tema no se encuentra disponible en esta versin DEMO

8.36

Cambiar minsculas por maysculas

El tema no se encuentra disponible en esta versin DEMO

8.37

Cambiar maysculas por minsculas

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.39

Insertar Nombre de rango

El tema no se encuentra disponible en esta versin DEMO

8.40

Insertar Hipervnculos

El tema no se encuentra disponible en esta versin DEMO

8.41

Transponer una fila

El tema no se encuentra disponible en esta versin DEMO

8.42

Ordenar un rango

El tema no se encuentra disponible en esta versin DEMO

8.43

Detectar si la celda contiene formula

El tema no se encuentra disponible en esta versin DEMO

8.44

Ejemplo de frmula con rango variable

El tema no se encuentra disponible en esta versin DEMO

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

58

59

8.45

Manual 400 Macros Plus

Cmo conocer el color de una celda

El tema no se encuentra disponible en esta versin DEMO

8.46

Colorear celdas con mas de 3 condiciones

El tema no se encuentra disponible en esta versin DEMO

8.47

Resaltar la fila activa (1)

El tema no se encuentra disponible en esta versin DEMO

8.48

Resaltar la fila activa (2)

El tema no se encuentra disponible en esta versin DEMO

8.49

Resaltar la celda activa

El tema no se encuentra disponible en esta versin DEMO

8.50

Cambiar color de fuente a celdas con datos

El tema no se encuentra disponible en esta versin DEMO

8.51

Separar cada caracter de una cadena en distintas col

El tema no se encuentra disponible en esta versin 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 versin DEMO

8.53

Proteger rangos o celdas

El tema no se encuentra disponible en esta versin DEMO

8.54

Recorrer celdas protegidas

El tema no se encuentra disponible en esta versin DEMO

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

60

Captulo

IX

9 - Bucles: Instrucciones o Comandos Especiales

9 - Bucles: Instrucciones o Comandos Especiales

9.1

Qu es un bucle?

62

El tema no se encuentra disponible en esta versin DEMO

9.2

FOR EACH.....NEXT

La expresin '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
'opcin de salir del bucle
'opcin 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 vaca
If celda.Value = "" Then
'se coloca color de fuente automtico
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 pestaa 'Buscar' de este manual, podrn encontrar otros ejemplos del uso de este
comando.

9.3

For ...... Next

El tema no se encuentra disponible en esta versin DEMO

9.4

While .... Wend

El tema no se encuentra disponible en esta versin DEMO

9.5

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

El tema no se encuentra disponible en esta versin DEMO

9.6

Do While .... Loop

El tema no se encuentra disponible en esta versin DEMO

9.7

Do Until.... Loop

El tema no se encuentra disponible en esta versin 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 versin DEMO

9.9

With....End With

El tema no se encuentra disponible en esta versin DEMO

9.10

Uso de Select Case

El tema no se encuentra disponible en esta versin DEMO

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

64

Captulo

10- Trabajando con frmulas

10

10- Trabajando con frmulas

10.1

Trabajando con frmulas

66

El tema no se encuentra disponible en esta versin DEMO

10.2

INTRODUCIR FRMULAS EN CELDAS

Si la versin de Excel es en espaol y as aparecen las funciones en la barra de frmulas, para


colocarlas en el Editor es necesario conocer las versiones en ingls de las funciones a utilizar.
Por eso lo mejor es grabar una macro con la grabadora
(* Ver captulo Introduccin- Cmo 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 frmula aparecer en la hoja como: =+INDICE(C:C;COINCIDIR(F2;E:E;0))

Nota: ver ejemplo completo en el captulo 'Buscando Datos, Funcin BuscarV'

IMPORTANTE: la lista completa de funciones en Espaol e Ingls la encontrarn 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 frmula con datos variables

El tema no se encuentra disponible en esta versin DEMO

10.4

Modificar frmula de celda

El tema no se encuentra disponible en esta versin DEMO

10.5

Colocar resultado de frmula en celdas

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

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 tambin a los que se insertan con la Barra de Dibujo
(Autoformas, Imagen, etc).
Estos objetos se denominan Shapes o Pictures para las imgenes
Los ejemplos que encontrarn a continuacin pueden adaptarse a cualquier objeto dentro de la
misma categora, siguiendo las propiedades propias de cada uno.

11.1

Algunas consideraciones previas

El tema no se encuentra disponible en esta versin 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 expresin 'ComboBox' por 'ListBox' o el que corresponda.
Pero debemos tener en cuenta qu barra utilizamos para dibujar el control.
Ver imagen de la ubicacin de las barras en nueva versin Excel2007 en la primer
entrada de este captulo.

En general he utilizado la barra de herramientas: Cuadro de controles o ActiveX

A continuacin algunos ejemplos utilizando tambin 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 frmulas, aparecer en el Cuadro de nombres, el nombre
del control.
Tambin haciendo clic derecho sobre el control, opcin '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 versin DEMO

11.2.3 Ocultar un Combobox luego de seleccionar opcion


El tema no se encuentra disponible en esta versin DEMO

11.2.4 Asignar rango a un Combobox


El tema no se encuentra disponible en esta versin DEMO

11.2.5 Enviar texto a las columnas de un Combobox


El tema no se encuentra disponible en esta versin DEMO

11.2.6 Enviar valor de un Combo a una celda


El tema no se encuentra disponible en esta versin 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 versin DEMO

11.2.9 Limpiar un combo


El tema no se encuentra disponible en esta versin DEMO

11.2.10 Crear controles por macro


El tema no se encuentra disponible en esta versin DEMO

11.2.11 Eliminar todos los controles de una hoja


El tema no se encuentra disponible en esta versin DEMO

11.2.12 Asignar ancho de columnas en Listbox


El tema no se encuentra disponible en esta versin DEMO

11.2.13 Activar hoja segn valor en Lista Desplegable


El tema no se encuentra disponible en esta versin 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 versin DEMO

11.2.15 Mostrar valores al clic en control


El tema no se encuentra disponible en esta versin DEMO

11.2.16 Llenar un control Combobox con nombres de hojas


El tema no se encuentra disponible en esta versin 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 versin DEMO

11.3.2 Funciones de comprobacion


El tema no se encuentra disponible en esta versin DEMO

11.4

Imgenes

11.4.1 Cargar una imagen cuyo nombre se encuentra en una celda


El tema no se encuentra disponible en esta versin DEMO

11.4.2 Segun valor de celda, mostrar una imagen


El tema no se encuentra disponible en esta versin 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 versin DEMO

11.4.4 Insertar imagenes sobre celdas (1)


El tema no se encuentra disponible en esta versin DEMO

11.4.5 Insertar imagenes sobre ciertas celdas (2)


El tema no se encuentra disponible en esta versin DEMO

11.4.6 Insertar imagenes de tamao fijo


El tema no se encuentra disponible en esta versin DEMO

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

Captulo

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 versin DEMO

12.2

Impedir que se cancele una macro con ESC

El tema no se encuentra disponible en esta versin DEMO

12.3

Controlar la tecla ESC- Cancelar a criterio

El tema no se encuentra disponible en esta versin DEMO

12.4

No mostrar el cursor o la celda activa

El tema no se encuentra disponible en esta versin DEMO

12.5

Controlar las teclas Enter y Flechas Abajo_Arriba

El tema no se encuentra disponible en esta versin DEMO

12.6

Controlar otras teclas mediante cdigo

El tema no se encuentra disponible en esta versin DEMO

12.7

Asignar una macro a una tecla especial

El tema no se encuentra disponible en esta versin 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 versin DEMO

12.9

Ejecutar una macro con Doble click

El tema no se encuentra disponible en esta versin DEMO

12.10 Asignar mismo atajo de teclado a varias macros


El tema no se encuentra disponible en esta versin 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 lnea, 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 versin DEMO

12.13 No mostrar la ejecucin de la macro o el movimiento de hojas:


El tema no se encuentra disponible en esta versin DEMO

12.14 Inhabilitar eventos


El tema no se encuentra disponible en esta versin DEMO

12.15 Crear atajos de teclado desde una macro


El tema no se encuentra disponible en esta versin DEMO

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

Captulo

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 instruccin Print (imprimir) se debe agregar una instruccin 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 captulo, deben ser
colocadas en las rutinas de Impresin, Apertura y guardado de libros, al insertar objetos como
imgenes, 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
instruccin en la ejecucin de un procedimiento.
Ejemplo:
Sub miMacro()
On Error Resume Next
Intruccin 1
Instruccin 2
End Sub

El incluir la sentencia On Error Resume Next antes de la instruccin 1 implica que si se produce
algn error el programa lo ignorar y continuar con la instruccin siguiente.

13.2

On Error GoTo ....

El tema no se encuentra disponible en esta versin DEMO

13.3

On Error GoTo 0

El tema no se encuentra disponible en esta versin DEMO

13.4

Err

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

XIV

81

Manual 400 Macros Plus

14

14- Trabajando con Barras, Menues y Pestaas

14.1

Consideraciones generales para Barras y otros

El tema no se encuentra disponible en esta versin DEMO

14.2

OCULTAR LAS PESTAAS DE LAS HOJAS

El mtodo para manipular las pestaas de las hojas es: DisplayWorkbookTabs, que con valores
en True o False las mostrar o las ocultar.
Ejemplo:
Sub muestrahojas ()
'ocultar las pestaas
ActiveWindow.DisplayWorkbookTabs = False
End Sub

14.3

Ocultar las barras de desplazamiento

El tema no se encuentra disponible en esta versin DEMO

14.4

Ocultar los encabezados de filas y columnas

El tema no se encuentra disponible en esta versin DEMO

14.5

Ocultar barras de herramientas

El tema no se encuentra disponible en esta versin DEMO

14.6

Ocultar la barra principal de Excel

El tema no se encuentra disponible en esta versin DEMO

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

14- Trabajando con Barras, Menues y Pestaas

14.7

Ocultar elementos de la barra principal

El tema no se encuentra disponible en esta versin DEMO

14.8

Conocer nmero de barras y controles

El tema no se encuentra disponible en esta versin DEMO

14.9

Ocultar opciones de Impresion y Otras

El tema no se encuentra disponible en esta versin DEMO

14.10 Ocultar opciones Cortar y Copiar


El tema no se encuentra disponible en esta versin DEMO

14.11 Crear una barra personal con macro


El tema no se encuentra disponible en esta versin DEMO

14.12 Mostrar una barra de herramientas personal


El tema no se encuentra disponible en esta versin DEMO

14.13 Quitar una barra personal al salir


El tema no se encuentra disponible en esta versin 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 versin DEMO

14.15 Ejecutar macro al clic derecho


El tema no se encuentra disponible en esta versin DEMO

14.16 Mostrar mensaje en Barra de Estado


El tema no se encuentra disponible en esta versin DEMO

14.17 Mostrar cajas de dilogo de Excel


El tema no se encuentra disponible en esta versin DEMO

14.18 Eliminar menu contextual de Objetos


El tema no se encuentra disponible en esta versin DEMO

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

Captulo

XV

85

Manual 400 Macros Plus

15

15- Uso de Cuadros de Mensaje

15.1

Construccin de MsgBox

El tema no se encuentra disponible en esta versin DEMO

15.2

MsgBox como PopUp

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

XVI

87

Manual 400 Macros Plus

16

16- Uso de InputBox

16.1

CONSTRUCCIN DE INPUTBOX

Los InputBox muestran un mensaje en un cuadro de dilogo, esperan que el usuario escriba un
texto o haga clic en un botn y devuelve un tipo String con el contenido del cuadro de texto.
Sintaxis:
InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
Prompt: expresin de cadena que se muestra como un mensaje de texto en un cuadro de
dilogo
Title Opcional. Expresin de cadena que se muestra en la barra de ttulo del cuadro de dilogo.
Si omite title, en la barra de ttulo se coloca el nombre de la aplicacin.
Default Opcional. Expresin 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 vaco.
xpos Opcional. Expresin numrica que especifica, en twips, la distancia en sentido horizontal
entre el borde izquierdo del cuadro de dilogo y el borde izquierdo de la pantalla. Si se omite
xpos, el cuadro de dilogo se centra horizontalmente.
ypos Opcional. Expresin numrica que especifica, en twips, la distancia en sentido vertical entre
el borde superior del cuadro de dilogo y el borde superior de la pantalla.
Helpfile Opcional. Expresin de cadena que identifica el archivo de Ayuda que se utilizar para
proporcionar ayuda interactiva para el cuadro de dilogo. Si se especifica helpfile, tambin
deber especificarse context.
Context Opcional. Expresin numrica que es el nmero de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica context, tambin 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: Podra 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 versin DEMO

16.3

Establecer un valor predeterminado en un InputBox

El tema no se encuentra disponible en esta versin DEMO

16.4

Controlar que lo ingresado a un InputBox sea referencia vlida

El tema no se encuentra disponible en esta versin DEMO

16.5

Ingresar y seleccionar un rango con InputBox

El tema no se encuentra disponible en esta versin DEMO

16.6

Seleccionar datos en un rango

El tema no se encuentra disponible en esta versin DEMO

16.7

Controlar que el dato ingresado sea fecha

El tema no se encuentra disponible en esta versin DEMO

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

88

Captulo

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 versin DEMO

17.2

Devolver en una celda el resultado de una bsqueda

El tema no se encuentra disponible en esta versin DEMO

17.3

Devolver todos los resultados de una bsqueda

El tema no se encuentra disponible en esta versin DEMO

17.4

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

El tema no se encuentra disponible en esta versin DEMO

17.5

Buscar un dato en un rango, posicionarse y seguir buscando

El tema no se encuentra disponible en esta versin DEMO

17.6

Controlar si un valor resultado se encuentra en la base

El tema no se encuentra disponible en esta versin DEMO

17.7

Funcin BuscarV devolviendo valores a la izquierda

El tema no se encuentra disponible en esta versin 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 versin 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 bsqueda
rango = "F2:F15"
'se recorre la columna D hasta la primer celda vaca
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 bsqueda es exitosa.....
If Not midato Is Nothing Then
'se guarda el nmero 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 versin DEMO

17.11 Buscar un dato. Devolver en Textbox toda la fila


El tema no se encuentra disponible en esta versin DEMO

17.12 Obtener el valor de la ultima celda de una fila


El tema no se encuentra disponible en esta versin DEMO

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

92

Captulo

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 versin DEMO

18.2

Evaluar si una celda guarda fechas

El tema no se encuentra disponible en esta versin DEMO

18.3

Evaluar si un dato es numrico o no

El tema no se encuentra disponible en esta versin DEMO

18.4

EVALUAR SI UNA CELDA PRESENTA ERROR

Si efectuamos clculos con una macro, podemos necesitar evaluar si el resultado de una celda
presenta error, como por ejemplo un valor no encontrado con la funcin Buscar o como
resultado de una divisin por 0.
Para esto utilizamos la funcin 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 estn vacas

El tema no se encuentra disponible en esta versin DEMO

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

95

18.6

Manual 400 Macros Plus

Eliminar fila si varios datos del registro cumplen una condicin

El tema no se encuentra disponible en esta versin DEMO

18.7

Rellenar celdas vacas de un rango con cierto valor

El tema no se encuentra disponible en esta versin DEMO

18.8

Evaluar el color de celda

El tema no se encuentra disponible en esta versin DEMO

18.9

Eliminar filas vacas

El tema no se encuentra disponible en esta versin DEMO

18.10 Contar celdas con igual color de fuente


El tema no se encuentra disponible en esta versin DEMO

18.11 Ordenar - Controlar - borrar repetidos


El tema no se encuentra disponible en esta versin DEMO

18.12 Comparar cadenas que pueden estar en maysculas o


minsculas
El tema no se encuentra disponible en esta versin DEMO

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

18- Evaluando y Comparando Datos

18.13 Extraer la parte numrica de una cadena


El tema no se encuentra disponible en esta versin DEMO

18.14 Armar tabla con valores no duplicados


El tema no se encuentra disponible en esta versin DEMO

18.15 Armar Listas validadas, sin duplicados


El tema no se encuentra disponible en esta versin DEMO

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


El tema no se encuentra disponible en esta versin DEMO

18.17 Comparar 2 columnas. Copiar las que NO coinciden


El tema no se encuentra disponible en esta versin DEMO

18.18 Bloquear celdas segn fecha


El tema no se encuentra disponible en esta versin DEMO

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


El tema no se encuentra disponible en esta versin DEMO

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

96

Captulo

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 versin DEMO

19.2

Copiar solo filas impares

El tema no se encuentra disponible en esta versin DEMO

19.3

COPIAR SOLO VALORES - PEGADO ESPECIAL

Para realizar una copia con Pegado Especial, con la opcin que presenta el men Edicin: solo
valores, este es el cdigo:
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 frmulas, solo con su
valor, copiando y pegando sobre s misma.

19.4

Copiar formato - Pegado Especial

El tema no se encuentra disponible en esta versin DEMO

19.5

Pegado Especial sin seleccionar

El tema no se encuentra disponible en esta versin DEMO

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

99

19.6

Manual 400 Macros Plus

Quitar frmulas en celdas de color

El tema no se encuentra disponible en esta versin DEMO

19.7

Copiar una frmula en la celda siguiente

El tema no se encuentra disponible en esta versin DEMO

19.8

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

El tema no se encuentra disponible en esta versin DEMO

19.9

Copiar un rango de filas en otro libro Resumen

El tema no se encuentra disponible en esta versin DEMO

19.10 Duplicar una hoja- La copia tendr los valores, no las frmulas
El tema no se encuentra disponible en esta versin DEMO

19.11 Copiar varios libros en uno solo


El tema no se encuentra disponible en esta versin DEMO

19.12 Copiar cabecera o columna de ttulos


El tema no se encuentra disponible en esta versin 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 versin DEMO

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

100

Captulo

XX

20- Uso de Temporizador

20

20- Uso de Temporizador

20.1

CARACTERSTICAS DEL MTODO ONTIME

102

Para realizar tareas automticamente en cierto tiempo, se utiliza el mtodo OnTime, cuya
sintaxis es la siguiente:
expresin.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 lmite 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 despus
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 versin 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 versin DEMO

20.4

Lllamar a un Userform por unos segundos

El tema no se encuentra disponible en esta versin DEMO

20.5

Activar otra hoja cada tantos minutos

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

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 versin DEMO

21.2

Filtro en hoja protegida

El tema no se encuentra disponible en esta versin DEMO

21.3

Autofiltros con campos fecha

El tema no se encuentra disponible en esta versin DEMO

21.4

Establecer AutoFiltro con criterios en otra hoja

El tema no se encuentra disponible en esta versin 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 instruccin 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 versin DEMO

21.7

Copiar celdas filtradas sin los ttulos

El tema no se encuentra disponible en esta versin DEMO

21.8

Obtener la primer fila de un filtro

El tema no se encuentra disponible en esta versin 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 versin 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 versin DEMO

21.11 Sumar una columna de datos en un rango filtrado


El tema no se encuentra disponible en esta versin DEMO

21.12 Quitar autofiltros solo a ciertas columnas


El tema no se encuentra disponible en esta versin DEMO

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

Captulo

XXII

109

Manual 400 Macros Plus

22

22- Trabajando con Grficos

22.1

Seleccionar un grfico ignorando su nombre

El tema no se encuentra disponible en esta versin DEMO

22.2

Cortar un grfico de una hoja y pegarlo en otra

El tema no se encuentra disponible en esta versin DEMO

22.3

Asignar los datos de origen de un grfico

El tema no se encuentra disponible en esta versin DEMO

22.4

Crear un grfico en hoja nueva y guardar el libro


El tema no se encuentra disponible en esta versin DEMO.

22.5

Crear grfico con datos de hoja variable

El tema no se encuentra disponible en esta versin DEMO

22.6

Imprimir grfico y tabla que lo alimenta

El tema no se encuentra disponible en esta versin DEMO

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

22- Trabajando con Grficos

22.7

110

MODIFICANDO DIMENSIONES DE TODOS LOS GRAFICOS

Este ejemplo modifica las dimensiones de todos los grficos que se encuentren en una hoja.
Sub DimensionandoGraficos()
Dim grafico As ChartObject
'recorre todos los grficos 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 grficos, copiarlos en otra hoja,
ajustar colores, etc

22.8

Copiar todos los graficos en otra hoja

El tema no se encuentra disponible en esta versin DEMO

22.9

Eliminar todos los graficos de una hoja

El tema no se encuentra disponible en esta versin DEMO

22.10 Colorear series por macro


El tema no se encuentra disponible en esta versin DEMO

22.11 Ubicando un grfico por macro


El tema no se encuentra disponible en esta versin DEMO

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

111

Manual 400 Macros Plus

22.12 Recorrer todos los grficos del libro


El tema no se encuentra disponible en esta versin DEMO

22.13 Reconocer el rea del grfico seleccionado


El tema no se encuentra disponible en esta versin DEMO

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

Captulo

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 versin DEMO

23.2

Mostrar un Userform

El tema no se encuentra disponible en esta versin 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 adems 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 seccin cdigo.
Private Sub UserForm_Activate()
With Me
'la ubicacin ser a derecha
.Left = Application.Width - .Width
'o la ubicacin 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 versin DEMO

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

23- Trabajando con Userforms

23.5

Cerrar un Userform

El tema no se encuentra disponible en esta versin DEMO

23.6

Desactivar el botn 'Cerrar' de un Userform

El tema no se encuentra disponible en esta versin DEMO

23.7

Inmovilizar un Userform

El tema no se encuentra disponible en esta versin DEMO

23.8

Cargar valores de inicio

El tema no se encuentra disponible en esta versin DEMO

23.9

Volcar datos de un Userform a una hoja

El tema no se encuentra disponible en esta versin DEMO

23.10 Actualizar base con datos del Userform


El tema no se encuentra disponible en esta versin DEMO

23.11 Seleccionar datos desde un Userform-RefEdit


El tema no se encuentra disponible en esta versin 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 versin DEMO

23.13 Agrandar un Frame a medida que se ingresan datos


El tema no se encuentra disponible en esta versin DEMO

23.14 Validar campos numricos en Textbox


El tema no se encuentra disponible en esta versin DEMO

23.15 Validar campos fecha en Textbox


El tema no se encuentra disponible en esta versin DEMO

23.16 Establecer separadores en campos fecha en textbox


El tema no se encuentra disponible en esta versin DEMO

23.17 Ingresar fechas sin formato en Textbox


El tema no se encuentra disponible en esta versin DEMO

23.18 Asignar formato moneda a un TextBox


El tema no se encuentra disponible en esta versin 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 versin DEMO

23.20 Limpiar todos los textbox de un Userform


El tema no se encuentra disponible en esta versin DEMO

23.21 Guardar un dato del Userform antes de cerrarlo


El tema no se encuentra disponible en esta versin DEMO

23.22 Agregar un Grafico en un Userform


El tema no se encuentra disponible en esta versin DEMO

23.23 Trabajando con controles Listbox y Combobox


El tema no se encuentra disponible en esta versin DEMO

23.24 Llenar un control ListBox con nombres de hojas


El tema no se encuentra disponible en esta versin DEMO

23.25 Ejecutar una macro segn valor seleccionado en Combobox


El tema no se encuentra disponible en esta versin DEMO

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

116

Captulo

XXIV

24- Trabajando con Tablas Dinmicas

24

24- Trabajando con Tablas Dinmicas

24.1

Comentarios sobre Tablas Dinmicas

118

El tema no se encuentra disponible en esta versin DEMO

24.2

Evitar la actualizacin automtica de TD

El tema no se encuentra disponible en esta versin DEMO

24.3

OBTENER EL TOTAL DE UNA TABLA DINMICA

Conociendo el nombre o nmero 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 dinmica3").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 dinmica3 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 versin DEMO

24.5

Eliminar todas las Tablas Dinamicas de una hoja

El tema no se encuentra disponible en esta versin DEMO

24.6

Uso de variables en TD

El tema no se encuentra disponible en esta versin DEMO

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

Captulo

XXV

121

Manual 400 Macros Plus

25

25- Impresin

25.1

Imprimir hojas

El tema no se encuentra disponible en esta versin DEMO

25.2

Vista previa

El tema no se encuentra disponible en esta versin DEMO

25.3

Establecer rea de impresin:

El tema no se encuentra disponible en esta versin DEMO

25.4

IMPEDIR LA IMPRESIN

En el objeto ThisWorkbook (Este Libro) colocar la siguiente rutina que impide que se ejecute
tanto Vista Previa como la impresin de todo o parte del documento.

Private Sub Workbook_BeforePrint(Cancel As Boolean)


Cancel = True
End Sub

25.5

Enviar informacin al Encabezado y Pi

El tema no se encuentra disponible en esta versin DEMO

25.6

Instrucciones para configurar la pgina

El tema no se encuentra disponible en esta versin DEMO


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

25- Impresin

25.7

Llamar al cuadro de opciones para Imprimir

El tema no se encuentra disponible en esta versin DEMO

25.8

Elegir impresora por medio de cdigo

El tema no se encuentra disponible en esta versin DEMO

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

122

Captulo

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 versin DEMO

26.2

Ocultar Excel por cierto tiempo

El tema no se encuentra disponible en esta versin DEMO

26.3

Quitar la lista de archivos abiertos del men Archivo

El tema no se encuentra disponible en esta versin DEMO

26.4

Importar datos de otro libro Excel

El tema no se encuentra disponible en esta versin DEMO

26.5

Obtener la lista de archivos Excel de una carpeta

El tema no se encuentra disponible en esta versin DEMO

26.6

Ocultar botones de Minimizar y Maximizar

El tema no se encuentra disponible en esta versin DEMO

26.7

Inhabilitar el botn de Cerrar de Excel

El tema no se encuentra disponible en esta versin 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 versin DEMO

26.9

Ejecutar rutinas o funciones de otros libros

El tema no se encuentra disponible en esta versin 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 tambin se puede lograr con otros libros. En ese caso reemplazar el trmino
'ActiveWorkBook' por el nombre del libro que deseamos revisar.
La informacin 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 lneas del primer mdulo hasta el total de lneas
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 versin Excel 2007, para poder tener acceso al objeto VBProyect, se requiere
configurar la opcin desde el Centro de Confianza.
Pasos a seguir:
1- Desde la hoja, botn de Office, Opciones de Excel, Centro de confianza.
2- Presionar botn: Configuracin del Centro de confianza.
3- De la lista seleccionar Configuracin de Macros y tildar la opcin 'Confiar en el acceso
al modelo ......'

26.11 Exportar mdulos


El tema no se encuentra disponible en esta versin DEMO

26.12 Importar mdulos guardados como txt


El tema no se encuentra disponible en esta versin DEMO

26.13 Eliminar cdigo


El tema no se encuentra disponible en esta versin DEMO

26.14 Eliminar codigo de cierto objeto o modulo


El tema no se encuentra disponible en esta versin DEMO

26.15 Saber si un archivo existe en un directorio


El tema no se encuentra disponible en esta versin 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 versin DEMO

26.17 Iniciar una nueva sesin de Excel


El tema no se encuentra disponible en esta versin DEMO

26.18 Quitar colores a la lista de la herramienta Relleno


El tema no se encuentra disponible en esta versin DEMO

26.19 Restablecer la paleta de colores


El tema no se encuentra disponible en esta versin DEMO

26.20 Determinar el tiempo que demora una rutina


El tema no se encuentra disponible en esta versin DEMO

26.21 Fijar las mayusculas para todo el libro


El tema no se encuentra disponible en esta versin DEMO

26.22 Habilitar o no la tecla BLOQNUM


El tema no se encuentra disponible en esta versin 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 versin DEMO

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

128

Captulo

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 versin XP, 12 para 2007) desde el
men Herramientas, Referencias del Editor de macros.
En este ejemplo se selecciona un rango de celdas y a continuacin se ejecuta la rutina, que
puede estar asociada a un botn o atajo de teclado.
Copiar la macro en un mdulo:
Sub ExcelWord()
'copia el rango seleccionado previamente
Selection.Copy
'crea una nueva aplicacin Word
Dim appWord As Word.Application
Set appWord = New Word.Application
'activa la aplicacin Word hacindola 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 versin 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 versin DEMO

27.4

Importar Datos de Outlook

El tema no se encuentra disponible en esta versin DEMO

27.5

Enviar un libro por Mail

El tema no se encuentra disponible en esta versin DEMO

27.6

Enviar un mail

El tema no se encuentra disponible en esta versin DEMO

27.7

Enviar cuerpo de correo con saltos de lnea

El tema no se encuentra disponible en esta versin DEMO

27.8

Importar datos de Access

El tema no se encuentra disponible en esta versin DEMO

27.9

Llamar a la Calculadora

El tema no se encuentra disponible en esta versin DEMO

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

27- Trabajando con otras aplicaciones

27.10 Llamar a la aplicacin WinZip


El tema no se encuentra disponible en esta versin DEMO

27.11 Ejecutar archivo de sonido al cambio en celda


El tema no se encuentra disponible en esta versin DEMO

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

132

Captulo

XXVIII

28- Creando Complementos

28

28- Creando Complementos

28.1

Cmo crear un Complemento

El tema no se encuentra disponible en esta versin DEMO

28.2

Habilitar complementos

El tema no se encuentra disponible en esta versin DEMO

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

134

Captulo

XXIX

29- Funciones definidas por Usuario (UDF)

29

29- Funciones definidas por Usuario (UDF)

29.1

CREAR FUNCIONES PERSONALES

136

Hemos visto hasta ahora cmo 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 botn, por
atajo de teclado o desde men Herramientas, Macros) para que realice alguna tarea especial.
Una funcin en cambio, es cdigo 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 mdulo del libro, solo podr ser
utilizada en este libro.
Atencin: Recomiendo dar un nombre al mdulo para reconocer rpidamente su contenido. Para
ello, seleccionar el mdulo y modificar su propiedad Name.

Cuando son colocadas en mdulos de un libro que luego se guarda como complemento (xla o
xlam) segn lo visto en el captulo anterior, podrn ser utilizadas desde cualquier libro Excel
(ver pasos en captulo anterior)

Para utilizarlas, presionar el botn Funciones, (Ms funciones) y buscar las de la categora
'Definidas por el usuario'

En Excel 2007, buscar en la tira de opciones la ficha Frmulas, y all la primer opcin:
Insertar Funcin . Luego buscar la categora Definidas por usuario.

29.2

Sintaxis de funciones

El tema no se encuentra disponible en esta versin DEMO

29.3

Funcion Numeros a Letras

El tema no se encuentra disponible en esta versin DEMO

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

137

29.4

Manual 400 Macros Plus

Funcion Calculo del NIF (Identificador en Espaa)

El tema no se encuentra disponible en esta versin DEMO

29.5

Funcion Digito Verificador (RUT)

El tema no se encuentra disponible en esta versin DEMO

29.6

Funcion BuscarV en varias hojas

El tema no se encuentra disponible en esta versin DEMO

29.7

Funcion Buscar el ensimo elemento

El tema no se encuentra disponible en esta versin DEMO

29.8

Funcion Encontrar ultimo dato

El tema no se encuentra disponible en esta versin DEMO

29.9

Funcion Sumar rango con error

El tema no se encuentra disponible en esta versin DEMO

29.10 Funcin Contar celdas de cierto color


El tema no se encuentra disponible en esta versin 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 versin DEMO

29.12 Funcion Extraer nmeros a la derecha de una cadena


El tema no se encuentra disponible en esta versin DEMO

29.13 Funcin Contar nmero de vocales en una cadena


El tema no se encuentra disponible en esta versin DEMO

29.14 Funcin Contar nmero de consonantes en una cadena


El tema no se encuentra disponible en esta versin DEMO

29.15 Funcion Contar numeros pares


El tema no se encuentra disponible en esta versin DEMO

29.16 Funcion Contar numeros impares


El tema no se encuentra disponible en esta versin DEMO

29.17 Funcion Fecha creacin del libro


El tema no se encuentra disponible en esta versin 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 versin DEMO

29.19 Funcion Binario (para > 500)


El tema no se encuentra disponible en esta versin DEMO

29.20 Funcion Reconocer numeros Primos


El tema no se encuentra disponible en esta versin DEMO

29.21 Funcion Nombre Dia


El tema no se encuentra disponible en esta versin DEMO

29.22 Funcion Nombre Mes


El tema no se encuentra disponible en esta versin DEMO

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

Captulo

XXX

141

Manual 400 Macros Plus

30

30- Otras Rutinas Interesantes

30.1

MOSTRAR VALORES EN COMBO SEGN SELECCIN EN OTRO

Esta es una tarea frecuente: tener 2 Combobox donde el segundo mostrar valores segn la
opcin elegida en el primero.
En primer lugar ser necesario tener distintas listas por cada categora que mostrar el primer
Combobox.
Estas listas pueden ser colocadas en otra hoja , asignndoles 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 categoras ("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"
'Opcin 2: indicando la hoja donde se encuentra la lista
'ComboBox2.ListFillRange = "Hoja2!H1:H7"
'Opcin 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 segn la
versin:
1- hasta Excel 2003 includo: men Insertar, Nombre, Definir. Escribir un nombre que sea
claro de identificar y Aceptar.
2- para Excel 2007: ficha Frmula, 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 segn valor en celda

El tema no se encuentra disponible en esta versin DEMO

30.3

Colorear celdas por condicion

El tema no se encuentra disponible en esta versin DEMO

30.4

Convertir Monedas

El tema no se encuentra disponible en esta versin DEMO

30.5

Indicar equipos disponibles en un Ciber:

El tema no se encuentra disponible en esta versin DEMO

30.6

Lotera: Ubicar valores ingresados

El tema no se encuentra disponible en esta versin DEMO

30.7

Ordenar una tabla por valores tipo Indice

El tema no se encuentra disponible en esta versin DEMO

30.8

Aplicar parpadeo continuo a celdas

El tema no se encuentra disponible en esta versin 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 versin DEMO

30.10 Restringir uso de hojas


El tema no se encuentra disponible en esta versin DEMO

30.11 Mantener imagen fija en pantalla


El tema no se encuentra disponible en esta versin DEMO

30.12 Estado de progreso de una rutina


El tema no se encuentra disponible en esta versin DEMO

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

FIN DEL MANUAL

Anda mungkin juga menyukai