Documente Academic
Documente Profesional
Documente Cultură
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
DESPLAZAMIENTO Y SELECCIÓN
Desplazamientos.
Saberse desplazar por la hoja de cálculo, encontrar los datos que se requieren, gestionar o
administrar hojas y libros son habilidades que un buen usuario de hoja de cálculo debe
desarrollar.
Pero cuando se trata de una hoja que contiene una lista que desborda los límites de la
pantalla con varias decenas de columnas y con varios cientos o incluso miles de filas, o
sencillamente porque de manera voluntaria el diseño de la hoja contiene datos dispersos en
varias regiones de la hoja, el desplazamiento con las teclas de dirección puede resultar una
tarea sumamente tediosa y desgastante.
Para ello, Excel dispone de varios recursos que le ayudarán en el desplazamiento hacia
aquello que usted está buscando.
De la misma manera como con AvPag y Repag logra desplazarse una pantalla hacia abajo o
hacia arriba, puede hacerlo horizontalmente si combina estas mismas teclas con la tecla Alt.
Emplee Alt+AvPág para desplazar la celda activa tantas columnas a la derecha como
columnas tiene ahora mismo su hoja de trabajo. Esto es equivalente a desplazarse hacia la
derecha un pantallazo cada vez. Redimensione la hoja y Alt+AvPág recalculará el número de
columnas que se desplazará la celda activa hacia la derecha. El empleo de la combianación
Alt+RePág la desplazará en el sentido contrario.
Basta con digitar las coordenadas de la celda donde quiere ir y presionar la tecla Enter. En
fracciones de segundo estará exactamente donde quiere estar.
Los nombres de las celdas y de los rangos de celdas pueden incluirse perfectamente dentro
de una fórmula como sustitutos de referencias a celdas, en otra u otras celdas calculadas en
la misma hoja o entre las hojas de un mismo libro como se verá en el capítulo dedicado a la
formulación en Excel.
El grupo nombres definidos de la pestaña Fórmulas contiene los comandos para asignar un
nombre, crear desde una selección, utilizar en un fórmula y administrar los nombres definidos
en una hoja de cálculo.
Pero ahora nos ocupa el tema de los desplazamientos. Recuerde entonces que escogiendo de
la lista de nombres aquel que representa el lugar o la región que está buscando podrá ir hasta
ella seleccionándola inmediatamente.
Cuando todas las hojas del libro son visibles en pantalla, la selección con el ratón es bastante
cómoda. No obstante cuando el número de hojas supera el límite de las que puede ver a
simple vista, la navegación con las puntas de flecha a izquierda y a derecha es necesaria. De
la misma forma, hacer click sobre los tres puntos de la izquierda o de la derecha le permitirá
ver las hojas ubicadas en esa dirección.
Aún existe otro recurso adicional para poder navegar entre las hojas de un mismo libro, se
trata de combinar las teclas Ctrl con AvPág - para seleccionar hojas a la derecha - y con
RePág - para seleccionar hojas a la izquierda.
entonces la celda activa será ahora la celda de coordenadas A1048576. Lea las coordenadas
de la celda activa en el cuadro de nombres.
Pero, que significa: si es que antes, nada se hubiera interpuesto en su camino?.... Sucede que
si en la trayectoria del desplazamiento que se pretende realizar con la combinación Ctrl+flecha
de dirección, existieran datos en una o varias celdas, el desplazamiento se efectuará sólo
hasta encontrar la primera celda en esa dirección que contiene un dato. Si repite la
combinación de teclas Ctrl+flecha de dirección, la celda activa se ubicará en la última celda
con datos si es que lo que encontró fue un rango de celdas con datos. Si no fue un rango de
celdas con datos lo que encontró, la celda activa saltará hasta la siguiente celda que contenga
un dato en esa dirección o encontrará el borde la hoja en la misma fila o en la misma columna
de la celda activa.
Esta lógica funciona exactamente igual en la dirección contraria y también en sentido vertical.
2. La flecha Inicio llevará la celda activa hasta la primera celda en la misma fila de la
celda activa.
Sin embargo, una de las aplicaciones fundamentales de los desplazamientos vistos es aquella
relacionada con el movimiento de la celda activa al interior de un rango de datos como una
tabla o una lista de datos.
Esta vez analizaremos las diferentes formas de seleccionar un rango de celdas continuo o
discontinuo.
La selección de una celda o rango de celdas se efectúa con uno o varios propósitos. Quizá
desee copiar, cortar, mover o eliminar un rango de datos total o parcialmente. Si lo copia o lo
corta, posteriormente podrá pegarlo en otro lugar en la misma hoja, o en otra hoja del mismo
libro o en alguna ubicación de un segundo libro. Podrá asignarle un nombre, agregar un
formato especial al rango de celdas seleccionado o utilizarlo para insertar una tabla dinámica
sobre los datos seleccionados, etc..
Para seleccionar un rango de filas adyacentes, siga los mismos pasos del procedimiento
anterior pero esta vez haga un click sostenido mientras arrastra el ratón seleccionando así
varias filas a la vez. O seleccione la primera fila del conjunto de filas que desea seleccionar,
presione la tecla Mayús – cualquiera de las dos que se encuentran justo encima de la tecla
Ctrl-, y mientras lo hace seleccione la última fila del conjunto de filas que desea seleccionar.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Para seleccionar rangos de filas no adyacentes, seleccione la primera fila o el primer grupo de
filas según se indicó anteriormente. Suelte o deje de presionar la tecla Mayús si la ha utilizado
para seleccionar un rango de filas adyacentes. Presione la tecla Ctrl y mientras lo hace, vaya a
la siguiente fila o conjunto de filas no adyacentes que desea seleccionar.
Para seleccionar una columna en una hoja de cálculo, o para seleccionar un rango de
columnas adyacentes o no adyacentes siga los mismos pasos que se utilizan para seleccionar
filas, sólo que esta vez lleve el puntero hacia la letra que identifica la columna o columnas que
desea seleccionar. Notará que el puntero adopta la forma de una flecha negra que apunta
hacia abajo.
Para ello seleccione la pestaña INICIO de la cinta de opciones. Vaya al grupo Celdas, el cual
agrega tres tipos de comandos: Insertar, Eliminar y Formato. Recorra y pruebe con todas y
cada una de las opciones.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Un método alterno para provocar los mismos resultados consiste en hacer click con el botón
secundario del ratón sobre cualquier área dentro de la selección. Aparecerá un menú
emergente con varias, sino todas, las opciones que encontraría en el grupo Celdas del menú
INICIO.
Lo mismo ocurrirá si lo que tiene seleccionado es una fila o un conjunto de filas. Podrá
eliminarlas, crear nuevas filas desplazando a las que ya están hacia abajo o modificando el
alto de las mismas a un número especificado.
Opciones de teclado rápido. Seleccione una fila o columna completa. Presione Ctrl + o Ctrl –
para crear o eliminar filas o columnas.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Generalmente, cualquiera que sea la función que inserte en una celda, uno o más de sus
argumentos harán referencia a otras celdas de la misma hoja, de otra hoja del mismo libro y/o
de una hoja de otro libro.
Hacer referencia significa que los argumentos de la función tomarán para el cálculo de la
misma, los valores contenidos en otras celdas.
Si la función debe insertarse en una sola celda y no se requiere que a partir de ella se rellenen
rangos de celdas adyacentes, los términos referencia absoluta, referencia relativa y referencia
mixta podrían no revestir mayor importancia.
Sin embargo, es muy frecuente que una vez insertada una fórmula o una función en una
celda, necesitemos copiarla o rellenar con ella un rango de celdas adyacentes y es entonces
cuando referencias absolutas, relativas y mixtas deben ser tenidas muy en cuenta.
Considere por ejemplo el siguiente ejercicio. Se trata de calcular los precios para cada uno de
los productos de una lista teniendo en cuenta el precio base, el iva, el descuento por escala y
el impoconsumo.
Al Precio Base debe sumarse el IVA, al resultado se le restará el descuento por escala y
finalmente se sumará el valor del impoconsumo.
La columna del precio base, la columna C, podrá permanecer “libre” - Así: C, sin el signo $
precediéndola - si una vez ingresada la fórmula que hace referencia a ella en la celda E7 …
=C7*(1+C4)*(1-E5)+D7… se copia nada más de manera vertical (E8, E9, …, E18), sólo para
la Escala 1. Pero como necesita copiar la fórmula de manera horizontal para obtener los
precios de las Escalas 2 y 3, la columna C debe permanecer “fija” - Así: $C, con el signo $
precediéndola -para que el cálculo de la fórmula siempre haga referencia a esa columna, la
columna del precio Base… =$C7*(1+C4)*(1-E5)+D7…. Si no lo hace, todo el sistema de
referencias a celdas comprometido en la fórmula se moverá en la misma dirección que efectúe
el proceso de copiado de la misma.
Pero no es C la única columna a tener en cuenta como “libre” o “fija” dentro del sistema de
referencias a celdas de este ejemplo. La columna del Impoconsumo, la columna D, debe ser
objeto del mismo análisis. Si escribo entonces $C7*(1+C4)*(1-E5)+D7 en la celda E7 y
copio la fórmula a la celda F7 para calcular el precio del producto AG200001 para la segunda
escala, y sin tener en cuenta el resultado sino la fórmula nada más, esto es lo que veríamos.
$C7*(1+D4)*(1-F5)+E7 . $C7 haciendo referencia a la columna del Precio Base como debe
ser; D4, haciendo referencia a una celda vacía!!!, que no debería ser; F5 haciendo referencia a
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Al copiar la fórmula insertada en la celda D7 a las celdas F7 y G7, las referencias a celdas se
mueven o se mantienen fijas convenientemente de tal manera que los valores se calcularán
correctamente en forma horizontal.
Pero qué sucede si trata ahora de copiar las celdas hacia abajo? a la fila 8 de la lista de
precios?
celda C5, es decir una celda por debajo de la celda que contiene el porcentaje del IVA. El
signo de $ antes de la letra C en la referencia $C4 de la fórmula en la celda E7 “fija” la
columna más no la fila, que también debería estar “fija”. Así que para permitir que esta
referencia apunte siempre a la celda C4 al copiar la fórmula verticalmente, deberá anteponer
también un signo $ al indicador de fila, así: $C$4.
Por otra parte, la entrada en la fórmula que debería apuntar a la celda con el
descuento para la Escala 1, es decir, a la celda E5, lo está haciendo hacia la celda
E6. Si la fórmula se copia hacia abajo, el sistema de referencia de la misma en
esa entrada se seguirá moviendo, a: E6, E7… etc. Para impedir que esto ocurra,
debe “fijar” el indicador de fila en la entrada E5 de la fórmula insertada en la celda
E7 antes de empezar a copiar verticalmente.
Si el libro que acaba de crear contiene dos o más hojas, elimínelas haciendo clic
con el botón secundario del ratón – clic derecho - sobre la hoja que desea eliminar
y seleccionando el comando Eliminar dentro de las opciones del menú emergente.
Nota: Cuando hace clic con el botón secundario del ratón sobre una hoja, se
despliega un menú que le ofrecerá diferentes opciones para trabajar con la hoja
actual y algunas para trabajar con el conjunto de hojas.
2. Renombre la única hoja que se ha dejado en el libro. Para ello, haga clic derecho
sobre la pestaña de la hoja y elija esta vez el comando Cambiar nombre. El
nombre por defecto asignado a la hoja aparece sombreado, instándole a
modificarlo. Escriba Consolidado y pulse la tecla Aceptar para validar la entrada.
3. Abra enseguida el libro Contoso200801 que se encuentra en la misma carpeta de
ejercicios Diplomado Excel 2013. Observe que el libro Contoso200801 contiene
una sola hoja con la etiqueta 200801.
4. Haga clic derecho sobre la etiqueta. Seleccione la opción Mover o copiar… para
desplegar el cuadro de diálogo Mover o Copiar.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Observe que los reportes de ventas de Contoso Electronics contiene una infinidad de
celdas en blanco. Qué valor deberían tener? Justamente el miso valor de la primera celda
que no está vacía en la misma columna de la celda en blanco. Claro que podría rellenar
una celda escribiendo un igual y el valor de la celda justo encima de ella y después copiar
para el resto de celdas en blanco; pero el conjunto de celdas vacías o en blanco es
irregular, y rellenarlas manualmente puede implicar un esfuerzo de enorme proporciones.
Afortunadamente, Excel tiene una herramienta incorporada que selecciona grupos de
celdas irregulares con contenidos y formatos especiales, como las celdas en blanco,
dentro de una región determinada.
Observe con atención y note como algunas de las letras de cada opción del cuadro Ir a
Especial se encuentran subrayadas. La o, en la opción Comentarios, la f en Celdas con
formatos condicionales, la R en Región actual y la b en Celdas en blanco.
2. Haga clic en una celda que contenga datos o en una celda en blanco en el interior
de la tabla, que esté próxima a una celda que no esté vacía. Presione la
secuencia de teclas Alt+E, I, Alt+E, R y haga clic en Aceptar. Se seleccionará la
región actual
3. Haga click en una celda de la hoja para desactivar la región actual o cualquier tipo
de selección especial que haya aplicado sobre la hoja. Pulse la combinación de
teclas Alt Shift + para seleccionar nuevamente la región actual.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
2. Seleccione la región actual. Utilice para ello uno de los métodos descritos con
anterioridad. - Quizá le resulte más cómodo para efectuar la selección, emplear la
combinación de teclas Ctrl Shift +.
3. Seleccione las celdas en blanco. Use cualquiera de los métodos descritos con
anterioridad. Sin embargo, la combinación de teclas Ctrl+E, I, Ctrl+E, b
puede resultarle más cómoda para llevar a cabo la tarea. Cuando lo haga la celda
activa debería ser la celda I2.
4. Introduzca la fórmula que calcula el valor de la venta (cantidad * precio unitario).
Escriba el signo = y haga click en la celda G2, escriba el signo de multiplicación (*)
y luego haga click en la celda H2. NO haga clic en aceptar. El secreto para llenar
todo el conjunto de celdas seleccionado está en utilizar la combinación de teclas
Ctrl+Enter. Presione Ctrl+Enter.
Todas las celdas de la selección se rellenan automáticamente con la misma
fórmula utilizando para el cálculo las celdas correspondientes.
Si por error presionó la tecla Ctrl en vez de Ctrl+Enter en el paso 3, la selección de
celdas debería permanecer aún activa. Pero usted se encontrará una celda por
debajo de la celda que acaba de calcular. Para volver a ella y no tener que repetir
toda la operación, presione simultáneamente Shift+Enter para seleccionar la celda
I2 sin desactivar la selección. Luego presione la tecla de función F2 para ver la
fórmula en lugar de su valor. Presione ahora la combinación de teclas Ctrl+Enter.
5. Seleccione la región actual. Haga click con el botón secundario del ratón y elija
copiar. Haga click nuevamente con el botón secundario del ratón y esta vez elija
pegado especial Valores(V). Presione la tecla Esc.
6. Haga click en la celda A1.
2. Pulse nuevamente la flecha a la derecha. (Sin Ctrl). Deberá estar ahora en la celda J1.
Escriba Canal como encabezado de la columna y presione la tecla Aceptar para
validar la entrada.
Canales
ReferenciaGeográfica
Almacenes
Categorías
Subcategorías
Productos
Seleccione la hoja con el nombre Canales y observe que este catálogo en particular tiene
dos columnas: CanalID y Canal_descripción. Es la descripción del canal la que
precisamente necesita asociar a la columna CanalID, pero en la tabla del libro Informe
Ventas Contoso.
3. Restaure las ventanas de los dos libros de tal manera que pueda verlos
simultáneamente. Active el libro Informe Ventas Contoso.
4. Seleccione la celda A1 y presione la combinación de teclas Ctrl Shift + para
seleccionar la región actual. En seguida seleccione las celdas en blanco con la
combinación Alt+E, i, Alt+E, b. Esta acción seleccionará las celdas en blanco
dentro de la región actual. Observe que la selección corresponde justamente a la
columna de celdas debajo del encabezado Canal.
5. Haga clic en la pestaña FORMULAS de la cinta de Opciones. En el grupo Diccionario
de Funciones pulse en el comando Búsqueda y referencia. Se desplegará un menú
con todas las funciones de la categoría.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
matriz que se ha definido para la búsqueda. De hecho, el catálogo de canales tiene solo estas
dos columnas, es por ello que, en el tercer argumento, Indicador_columnas del cuadro de
diálogo Argumentos de función escribimos el número 2, pues este argumento lo que está
pidiendo es que se le señale cuál es la columna de la matriz que contiene la información que
debe asociar tan pronto se haya encontrado una coincidencia entre el dato buscado y los
valores de la primera columna de la matriz.
El cuarto argumento: Ordenado, recibe un valor lógico que permite especificar si la búsqueda
admite una coincidencia aproximada del valor buscado y los datos de la primera columna de la
matriz, en cuyo caso se dejará el argumento omitido o con el valor 1 (VERDADERO); o si se
por el contrario, se requiere una coincidencia exacta, en cuyo caso el argumento debe
rellenarse con un 0 (cero) o la palabra FALSO
[CatálogosContosoElectronics.xlsx]Canales!$A:$B
9. Pulse la tecla Tab para poner el cursor en el cuadro de texto del argumento
Indicador_columna y digite el número 2. Corresponde a la segunda columna de la
Matriz_buscar_en que contiene los datos que deseo asociar en la columna Canal del
libro Informe Ventas Contoso. Observe que ya se ha encontrado un resultado parcial
de la búsqueda, justo en la siguiente línea debajo de los argumentos, esta es: =
“Almacén”.
10. Pulse la tecla Tab una vez más para seleccionar el cuarto argumento de la función –
Ordenado -, y escriba FALSO o digite el número 0; pues se requiere una coincidencia
exacta entre el valor buscado y los datos de la primera columna de la
Matriz_buscar_en. En este momento, el resultado = “Almacén”, se ha confirmado.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Si presiona la tecla Enter nada más, la función se resolverá para la celda activa. Con la
combinación Ctrl +Enter validará la entrada para toda la selección. Es decir, para la
selección de celdas en blanco debajo del encabezado Canal.
Así entonces, en las columnas J, K, L y M de la misma tabla, las cuales rotularemos con los
encabezados Continente, Ciudad, ProvinciaEstado y País respectivamente, asociaremos la
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
5.
b. Haga clic en la punta de flecha que apunta hacia abajo en el cuadro de lista O
seleccionar una categoría. Escoja la categoría Búsqueda y referencia y
seleccione de la lista la función BUSCARV.
7. Haga referencia a la celda B2 de la hoja 200801 del libro Informe Ventas Contoso.xlsx
haciendo clic sobre sobre ella o simplemente escribiendo sus coordenadas.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
10. Pulse Tab una vez más y en el argumento Ordenado, escriba un cero. El resultado =
“North America” se confirma.
11. NO HAGA CLIC EN ACEPTAR… Valide la entrada en la región seleccionada con la
combinación de teclas Ctrl+Enter.
12. Seleccione la celda A1.
Para insertar cada uno de los campos Ciudad, ProvinciaEstado y País, deberá recorrer los
pasos anteriores teniendo en cuenta las siguientes variaciones.
Ahora bien, si observa la tabla 200801 del Informe Ventas Contoso, no encontrará a primera
vista un código ID que diga algo como CategoríaProductoID o SubcategoríaProductoID tal
como ocurrió con CanalID, ReferenciaGeográficaID o AlmacénID. Sin embargo, la hoja
200801 del libro Informe Ventas Contoso tiene un campo ProductoID y en su interior cientos
de códigos como cadenas de texto de 7 caracteres. Debe saber entonces que: los dos
primeros caracteres de la cadena definen la categoría del producto y que, los cuatro primeros
caracteres de la misma definen la subcategoría.
Por otra parte, en los catálogos de Contoso va a encontrar un catálogo Categorías y otro
Subcategoría que en su interior tienen los campos CategoríaProductoID en el primero y
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Existe una función de Excel, dentro de la categoría de Texto, llamada IZQUIERDA, la cual
devuelve el número especificado de caracteres del principio de una cadena de texto. La
siguiente es la sintaxis de la función =IZQUIERDA(Texto;Núm_de_caracteres). El primer
argumento, debe señalar la cadena de texto que contiene los caracteres de los cuales se
extraerán algunos comenzando desde la izquierda. El segundo, especifica el número de
caracteres que se desea que la función extraiga. Si se omite, se asumirá que el valor deseado
es 1.
Anidaremos la función IZQUIERDA dentro del primer argumento de la función BUSCARV para
extraer desde la izquierda los dos primeros caracteres del código del producto que se
encuentra en el campo ProductoID.
Cuando se anida una función dentro de otra, el cuadro de diálogo Argumentos de función
cambia para mostrar los argumentos de esa función. No obstante, detrás de lo que se ve, la
función con la que comenzó trabajando estará latente esperando a que usted diligencie las
entradas de los argumentos de la función anidada. Cuando termine de hacerlo, tenga presente
que no podrá validar la entrada con la tecla Aceptar a menos que esté diligenciando el último
argumento de la función contenedora. Si no es así, el truco está en hacer clic en el extremo
derecho de la función anidada en la barra de fórmulas. De esta manera, el cuadro con los
argumentos de la función contenedora se hará visible nuevamente para que pueda
completarlo.
8. NO haga clic en aceptar, pues como se advirtió, podría hacerlo siempre y cuando
estuviera completando el último argumento de la función contenedora. Pero este no es
el caso; estamos diligenciando el primer argumento Valor_buscado de la función
BUSCARV. Así que haga clic sobre la barra de fórmulas, del lado derecho de todo lo
que por ahora aparezca escrito en ella. Con esta acción, los argumentos de la función
BUSCARV volverán a estar visibles para que pueda continuar diligenciándolos.
9. Pulse la tecla TAB para colocarse en el segundo argumento de la función:
Matriz_buscar_en. Vaya al libro CatálogosContoso y seleccione la hoja Categorías.
Es aquí donde necesitará una especial atención. No podrá seleccionar la columna A
para definir la Matriz_buscar_en. Observe que la columna A tiene un campo que no
corresponde al mismo tipo de información que está buscando. En cambio la columna
B, no le parece que contiene el mismo tipo de datos que el que está buscando?, un
texto de 2 caracteres. Así que seleccione las columnas B y C para definir la matriz de
búsqueda.
10. Pulse la tecla TAB nuevamente para seleccionar el argumento Indicador_columna y
escriba el número 2. Recuerde que el indicador de columna hace referencia a la
columna que contiene la información que desea asociar contando las columnas de la
matriz de búsqueda que usted definió y no el sistema de referencia de la hoja de
cálculo.
11. Vaya al último argumento y escriba un 0 para generar una coincidencia exacta.
12. Presione Ctrl+Enter para validar la entrada en toda la selección.
13. Haga clic en la celda A1.
Inserte usted el campo Subcategoría, siguiendo los mismos pasos que se definieron en la
inserción del campo Categoría. Deberá reflexionar sin embargo, en algunas de las entradas en
los argumentos de la función anidada y de la función contenedora.
Las fechas en Excel se almacenan como números enteros (positivos) y todas las horas como
fracciones decimales. Con este sistema, Excel puede sumar, restar o comparar fechas y horas
como cualquier otro número, y todas las fechas se manipulan utilizando este sistema.
En este sistema, Excel reconoce todas las fechas posteriores a 1/1/1900. Es por eso que el
primer día del año 1900 tiene asignado el número 1. Por el contrario, el último día que Excel
reconoce es el 31/12/9999 el cual tiene asignado el número 2958465.
Las horas se almacenan como números decimales entre 0,0 y 0,99999, donde 0,0 es 00:00:00
y 0,99999 es 23:59:59. Los enteros de fecha y las fracciones decimales de hora pueden
combinarse para crear números que tengan una parte decimal y una parte entera. Por
ejemplo, el número 32331,06 representa la fecha 7/7/1988 y la hora 1:26:24 a.m.
Para ayudarle a realizar cálculos complejos con fechas y horas, Excel incluye numerosas
funciones integradas de fecha y hora que trataremos más adelante.
Por ahora basta saber que la cadena de caracteres en el campo Fecha.txt no es algo que
Excel reconozca como una fecha. La tarea consiste en obtener una entrada que Excel
reconozca como tal pero que coincida con la interpretación que se le da a lo que está
contenido en cada una de las celdas del campo Fecha.txt.
Para ello deberá saber que Excel cuenta con una función llamada Fecha.
La función FECHA es muy útil en situaciones en que el año, el mes y el día se proporcionan
mediante fórmulas o referencias de celda. En su caso usted cuenta con un campo que simula
contener fechas en un formato que Excel no reconoce, AAAAMMDD. Puede usar la
función FECHA junto con otras funciones para convertir las esas “fechas” a un número de
serie que Excel reconozca.
Año Obligatorio. El valor del argumento año puede incluir de uno a cuatro dígitos.
Excel interpreta el argumento año según el sistema de fechas que usa el equipo. De
forma predeterminada, Microsoft Excel para Windows usa el sistema de fechas 1900.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Mes Obligatorio. Número entero positivo o negativo que representa el mes del año,
de 1 a 12 (de enero a diciembre).
Día Obligatorio. Número entero positivo o negativo que representa el día del mes, de
1 a 31.
Utilizaremos el concepto de función anidada, el que vimos con anterioridad, para proveerle a
la función Fecha, argumentos que pueda interpretar como datos válidos.
8. No haga clic en Aceptar puesto que la función contenedora, la función FECHA, aún
necesita que se diligencie en dos más de sus argumentos: Mes y Día. Así que haga
clic en el extremo derecho de lo que por ahora aparece en la barra de fórmulas.
Cuando lo haga, verá nuevamente el cuadro con los argumentos de la función FECHA.
9. Pulse la tecla Tab nuevamente para ir hasta el segundo argumento de la función, el
argumento Mes. Vaya al Cuadro de nombres y despliegue la lista de funciones
disponibles. Busque la función EXTRE. Si la función EXTRAE no se encuentra en la
lista desplegada, vaya a la opción Más funciones… para abrir el cuadro de diálogo
Insertar función. Busque y seleccione la función EXTRAE dentro de la categoría
Texto. Cuando inserta la función EXTRAE, se despliega un cuadro de diálogo
pidiéndole rellenar los argumentos de la nueva función.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
10. Con el cursor en el argumento Texto, haga clic en la celda E2, la celda que contiene el
texto del cual extraeremos algunos caracteres.
11. Pulse la tecla Tab para ir al segundo argumento, Posición inicial. Digite el número 5.
Corresponde a la posición dentro de la cadena de caracteres en la que se empieza a
hacer referencia al mes.
12. Pulse la tecla Tab una vez más para ir al tercer y último argumento de la función,
Núm_de_caracteres. Digite el número 2. Corresponde al número de caracteres que se
extreaerán a partir de la posición que le marcó el argumento anterior.
13. Todavía no haga clic en Aceptar, puesto que la función contenedora, la función
FECHA, aún tiene un argumento por diligenciar, el argumento Día. En vez de esto
haga clic sobre la barra de fórmulas, justo a la derecha de todo lo que aparezca hasta
este momento. Con esto, sabe que volverá al cuadro de los argumentos de la función
FECHA.
Ahora lo que necesita es referenciar dentro del argumento Día, los dos últimos caracteres
de la cadena de texto que se encuentra en la celda E2. Para seleccionar caracteres desde
la derecha de un texto utilizará la función DERECHA()
14. Pulse la tecla Tab para seleccionar el último argumento de la función, Día. Vaya al
Cuadro de nombres y despliegue la lista de funciones. Busque y seleccione la
función DERECHA. Si la función DERECHA no se encuentra en la lista desplegada,
seleccione la opción Más funciones… y pulse en ella para abrir el cuadro de diálogo
Insertar función. Despliegue la lista de categorías y seleccione la opción Texto.
Dentro de las funciones filtradas en el cuadro Seleccionar una función: Busque y
seleccione la función DERECHA para abrir el cuadro Argumentos de función.
15. En el primer argumento, Texto, haga referencia a la celda E2 pulsando sobre ella o
escribiendo directamente sus coordenadas.
16. Pulse la tecla Tab para seleccionar el siguiente argumento, Núm_de_caracteres. Digite
el número 2. Corresponde a los dos caracteres de la cadena de texto que definirán el
día.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
17. Puesto que lo que desea es rellenar la selección con el resultado de la función, deberá
validar la entrada presionando simultáneamente Ctrl+Enter.
18. Seleccione la celda A1.
Usted deberá insertar los campos Año, Mes y Día. Para cada uno de ellos siga la secuencia
de pasos para insertar un campo. Cuando haya seleccionado el rango de celdas en el que se
introducirán el resultado de la función, vaya a la pestaña FÓRMULAS, al grupo Biblioteca de
funciones y despliegue las funciones de la categoría Fecha y hora. Allí encontrará las
funciones AÑO, MES Y DIA. Cada una de estas funciones despliega un cuadro Argumentos
de función en el que se requiere diligenciar un solo argumento: Núm_de_serie. El número de
serie es el número con formato de fecha que insertó en el paso anterior.
No olvide validar la entrada de los datos para toda la selección presionando Ctrl+Enter.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Finalmente seleccione la región actual una vez más. Elija el botón copiar del grupo
Portapapeles del menú INICIO. Despliegue las opciones del botón Pegar y seleccione
Pegado especial… Se abrirá el cuadro de diálogo Pegado especial. Seleccione la opción
Valores y haga clic en Aceptar.
Tenga en cuenta además que no ha estado trabajando directamente con el reporte de ventas;
sino que lo ha movido al libro Informe Ventas Contoso.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Una vez allí ha insertado suficientes campos dotando a la tabla de información que será
relevante a la hora de aplicar sobre ellas herramientas de análisis tales como Tablas
Dinámicas. Pero antes deberá hacer el mismo ejercicio para al menos 5 reportes más.
Registre los tiempos que le toma diligenciar cada una de las tablas. En el siguiente módulo
aprenderá a automatizar esta tarea de una manera muy eficiente.
Definición:
Una macro es un conjunto de instrucciones secuenciales escrito en un lenguaje de
programación conocido como Microsoft Visual Basic para Aplicaciones (VBA).
VBA es un código que permite acceder y tratar con todas las funcionalidades de Excel; y
aunque usted podrá trabajar con Excel sin necesidad de VBA, existen muchas funcionalidades
que no se pueden alcanzar directamente desde la interfaz de usuario estándar.
Entonces, una macro es un programa personalizado, que los usuarios pueden escribir por sí
mismos, para ejecutar un conjunto de instrucciones secuenciales de manera automática.
Por otra parte, VBA trabaja con un modelo de objetos, una manera lógica de organizar todos
los comandos que se pueden ejecutar en una aplicación. En un modelo de objetos, cada parte
de la aplicación (por ejemplo un libro de trabajo, una hoja, una celda o rango de celdas) es un
objeto y cada objeto tiene su propia lista de funciones.
Más adelante veremos en qué consiste un objeto y cómo se relaciona con las funcionalidades
de Excel.
Por ahora sólo bastará con saber que un modelo de objetos organiza cientos de miles de
posibles comandos, según cómo utilice cada uno de ellos. Gracias al modelo de objetos, VBA
no necesita ningún acceso interno especial a Excel. Por el contrario, Excel demuestra todo su
potencial a través del modelo de objetos y es VBA quien se comunica con él.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
La mejor manera de saber cómo interactúa VBA y los objetos de Excel es empezar creando
algunas macros sencillas con la grabadora de macros. Más adelante podrá trabajar en las
limitaciones que comporta la grabadora.
Crear una macro para importar los reportes de ventas de Contoso Electronics, los transforme
convenientemente y los agregue a una tabla de ventas consolidada.
1. Es preciso que sepa exactamente qué es lo que desea hacer y cómo lo hará.
2. Sepa de antemano cuál será la rutina o la secuencia de pasos que deberá llevar a
cabo en la realización de una tarea. Practique con anticipación cuál será el
procedimiento.
3. Es igualmente importante reconocer los comandos, las combinaciones y atajos de
teclado y las demás funcionalidades utilizadas para llevar a cabo su tarea.
4. Recuerde que una vez activa la grabadora de macros, todo quedará registrado en
código de máquina. Si lo que desea es obtener una macro fácil de entender, muy
eficiente en su ejecución y que cumpla con su misión, evite la improvisación. No
obstante, siempre tenga en cuenta que podrá editar el código convenientemente
en un proceso paso a paso.
3. Si al crear el libro, se incluyeran dos o más hojas, deje sólo una de ellas
eliminando las demás. Haga Clic derecho sobre la pestaña de la única hoja, elija la
opción Cambiar nombre y escriba Consolidado. Pulse la tecla Enter para
continuar.
Cualquiera que sea el camino que utilice, activará el cuadro de diálogo Grabar
macro.
5. En el recuadro Nombre de la macro: reemplace el nombre predeterminado por el
de ImportarArchivo. Tenga en cuenta que el nombre de la macro debe empezar
siempre con una letra, no debe contener caracteres especiales ni espacios en
blanco. Haga Clic en Aceptar.
6. La grabadora está lista para comenzar. Usted está Al Aire y podrá saber que esto
es así, siempre que observe que el botón de Grabación de macros en la barra de
estado aparece como un cuadrado blanco ; o si el ícono del botón
Grabar macro en el grupo Código de la pestaña Desarrollador ha cambiado a un
cuadrado enteramente azul.
Un mensaje indicando que se está grabando una macro en este momento emerge
cuando usted apunta sobre el botón de grabación de macros.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
9. En el campo Al libro: haga Clic en la punta de flecha que apunta hacia abajo.
Seleccione ProyectoContosoElectronics.xlsm. Asegúrese de que la opción Crear
una copia está desactivada y haga Clic en Aceptar.
Con estas acciones, la hoja 200801 se habrá movido del libro Contoso200801 al
libro ProyectoContosoElectronics.xlsm. El libro Contoso200801 se cierra
automáticamente, pues ha perdido la única hoja que contenía. No obstante, el
archivo estará en la carpeta cuando lo requiera nuevamente.
Ejecutar la macro.
Ahora ensayemos la macro y veamos cómo funciona.
teclas Alt+E (la letra subrayada del botón). Después de algunos instantes
observará que ahora tiene dos copias de la hoja 200801. Lo que realmente ocurrió
es que al ejecutar la macro ImportarArchivo, la macro fue en busca del archivo
Contoso200801 a la carpeta donde guardó los archivos de ejercicios de este
diplomado; lo abrió y movió la única hoja que contiene – 200801 - hacia su libro
ProyectoContosoElectronics. La nuevas copias aparecerán como 200801(2),
200801(3), según el número de veces que ejecute la macro ImportarArchivo.
6. Haga Clic en Aceptar dos veces para cerrar los dos cuadros de diálogo abiertos.
7. Pruebe a ejecutar la macro desde el botón que acaba de agregar a la cinta de
herramientas de acceso rápido.
8. Pruebe también si el botón que ejecuta la macro está disponible sólo para el libro
ProyectoContosoElectronics. Abra un nuevo libro y échele un vistazo nuevamente
a la cinta de opciones de acceso rápido. El botón que ejecuta la macro no debe
aparecer.
Pues bien, la respuesta es que las macros se guardan en módulos dentro de algo que se
conoce como un proyecto VBA (VBA Projects).
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Para acceder a un módulo de VBA primero tendrá que acceder al proyecto y después elegir el
módulo donde se guardan las macros. Para acceder a VBA Projects, debe acceder primero al
editor de VBA. Esto puede sonar muy enrevesado, pero pronto lo entenderá y se familiarizará
con ello. Recuerde siempre que las macros son las aliadas más poderosas con que cuenta
para ayudarle a usted con gran parte de la carga y de las rutinas extenuantes que entraña la
generación todo tipo de modelos y reportes de hoja de cálculo.
Todos los caminos que conducen al Editor de VBA. Pruebe con una de las siguientes
opciones:
EL CÓDIGO
La estructura de una macro comprende una primera línea que comienza con la
partícula Sub seguida del nombre de la macro y un juego de paréntesis. La última
línea, End Sub, señala el final de la macro. Por defecto, la grabadora de macros
colocará líneas después del nombre de la macro destinadas a los comentarios. Los
comentarios se identifican porque comienzan con una comilla sencilla de color verde y
pueden contener información sobre el trabajo o la tarea que desempeña la macro. Los
comentarios entre líneas - o mejor, entre instrucciones -, ofrecen información particular
sobre la ejecución y la finalidad de ciertos apartes de la macro. Todo lo que no es un
comentario es una instrucción. Algunas instrucciones podrían ser bastante simples,
intuitivas y fáciles de comprender pero otras podrían revestir algo de complejidad y
quizá lo que hacen no pueda resultar tan evidente para el usuario de Excel NO
Programador. Insisto no obstante, en que no es necesario ser Programador de VBA
para obtener macros bastante bien estructuradas e inteligentes y, ante todo,
extremadamente útiles con un poco de trabajo.
efecto sobre el libro. Para restaurar o redimensionar las medidas de la ventana puede
hacer Clic sostenido sobre el título de la misma y moverla a fin de que pueda ver los
bordes de la ventana. Lleve el puntero hacia esos bordes y notará que llegado a los
límites de la ventana, éste cambiará de forma sugiriendo que podrá tomar del borde
para redimensionar la ventana mediante un Clic sostenido.
Ahora veremos cómo recorrer un macro ejecutando una a una cada una de sus
sentencias.
La primera línea que contiene el nombre de la macro aparecerá resaltada con color
amarillo y a su izquierda una flecha que apunta hacia ella del mismo color. La flecha
funciona como selector de instrucciones. Podrá hacer clic sostenido sobre ella y
desplazarla verticalmente, hacia arriba o hacia abajo, para seleccionar una instrucción
en particular incluida la instrucción End Sub. Cuando ejecuta esta última instrucción
finalizará la ejecución de la macro.
Sub ImportarArchivo()
2. Pulse la tecla F8 para seleccionar la siguiente instrucción y empezar a
ejecutar la macro conforme la recorre. Observe que la selección apunta
ahora a la Instrucción Workbooks.Open que contiene la ruta completa de
acceso al archivo Contoso200801.xlsx. La instrucción Open abre el
archivo.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Sheets(“200801”).Select
Esta instrucción activa la hoja de cálculo Contoso200801, aun cuando ya
estaba activa, por tanto es redundante y la borrará de la macro un poco
más adelante.
7. Pulse F8 para mover la hoja de cálculo y recuerde hacer una nota para
modificar la macro de manera que funcione para cada uno de los archivos
de ventas de Contoso.
miArchivo = Application.GetOpenFilename
Tan pronto como pone el punto después de la palabra Application, Visual Basic
desplegará la lista de métodos y propiedades que puede utilizar con este objeto. A
este recurso se le conoce como Auto List Members o Miembros de lista
automática. (La palabra Miembros se refiere tanto a métodos como a las
propiedades). Luego, cuando empieza a escribir el nombre del método
GetOpenFileName, sólo bastará teclear la letra G, para generar un sublistado de la
lista automática de miembros que comienzan con esa letra. Conforme continúa
escribiendo el nombre del método que desea alcanzar, el listado se refina todavía
más.
Sub ImportarArchivo()
miArchivo = Application.GetOpenFilename
Workbooks.Open Filename:=miArchivo
ActiveSheet.Move Before:=Workbooks("ProyectoContosoElectronics.xlsm"). _
Sheets(1)
Range("A1").Select
End Sub
Si desea, podrá copiarla y pegarla directamente en el Editor de Visual Basic
crear una macro que rellene las celdas en blanco con los rótulos correspondientes a fin de que
la tabla contenga el valor indicado en todas y cada una de sus celdas. Recuerde que esta
tarea la realizó en el módulo anterior; esta vez, automatice la tarea con el uso de una macro.
IMPORTANTE: Recuerde que una vez que encienda la grabadora de macros debe
procurar limitarse a hacer lo estrictamente necesario, reduciendo el número de
acciones y movimientos de los objetos de la interfaz de usuario a fin de no sobrecargar
el código con instrucciones redundantes. Evite por ejemplo, abrir o crear nuevos libros,
desplazarse haciendo uso de las barras de desplazamiento vertical u horizontal,
moverse a otras hojas innecesariamente o seleccionando celdas, rangos u otro tipo de
objetos que nada tienen que ver con la tarea que pretendemos realizar. Si lo hace,
cuando revise la macro, podría sorprenderle la cantidad de instrucciones que en
principio en nada ayudaría a una comprensión clara de lo que está consignado en su
macro y lo que ve en la hoja de cálculo.
a. Haga clic sobre la flecha amarilla que está ahora mismo seleccionando
la instrucción Sub RellenarCeldas() en el encabezado de la macro.
Arrástrela hasta que la flecha apunte a la instrucción End Sub.
Suspenda el clic de arrastre para seleccionarla. Presione la tecla F8
para ejecutar la instrucción y así suspender la ejecución de la macro.
Cierre el editor de Visual Basic. Pulse la secuencia de teclas Alt+F8
para abrir el cuadro de diálogo Macro; seleccione la macro
RellenarCeldas y luego haga clic en el botón Eliminar.
b. Asegúrese de que se encuentra en una nueva hoja a la que le haga
falta rellenar las celdas en blanco. Si no encuentra una, ejecute la
macro ImportarArchivo un par de veces más para que tenga hojas
disponibles para practicarse.
c. Repita los pasos del 1 al 4 de este apartado y compare nuevamente el
código de la macro que usted obtiene con la que aquí se le presenta. Si
tanto la una como la otra son exactamente iguales, continúe con el
numeral 5; de lo contrario, borre la macro que grabó tal como se le
indicó y grábela de nuevo.
5. Redimensione las ventanas del Editor de VBA y la ventana del libro Proyecto
Contoso Electronics tal manera que pueda verlas simultáneamente. Con la
ventana del Editor de VBA activa, pulse la tecla F8 para empezar a recorrer la
macro paso a paso. Observe como cada instrucción provoca una acción en el
libro de Excel.
Instrucción Acción
Range(“A1”).Select Selecciona la celda A1
Selection.CurrentRegion.Select Selecciona la región actual a partir de la selección
(Celda A1)
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Recuerde antes de comenzar, que usted ya efectuó el procedimiento manual que le permitió
insertar los campos que ahora mencionamos. Revise el módulo 2 si tiene dudas respecto a
cuáles eran las tareas que debía realizar para tal fin.
Grabaremos inicialmente las macros que corresponde a la inserción del campo Ventas$ y
Canal para luego comparar su estructura y contenido. Quizá no sea necesario grabar
enteramente las macros para insertar los demás campos y tan sólo baste con copiar y
modificar unas cuántas instrucciones del código original y obtener los resultados que
deseamos.
En el apartado: Campo Ventas$ del Módulo 2, a este procedimiento, seguía uno que
consistía en presionar la tecla a la derecha una vez más para seleccionar la celda I1.
Si así lo hiciera en este momento, la macro grabaría precisamente eso, la selección de
la celda I1. No obstante, lo que deseamos es grabar un movimiento relativo. Es decir
que la instrucción quede grabada como la selección de la celda que está vacía
inmediatamente a la derecha de la celda activa, NO necesariamente la celda I1.
Cuando revisemos el código de la macro terminada volveremos a hacer énfasis en
esto.
Nota: Si valida la entrada con la tecla Enter, hará que la grabadora de macros
grabe la selección de la celda I2 (código superfluo e innecesario). En tanto que
al introducir el dato con el botón señalado, la entrada se efectúa en la celda I1
evitando el desplazamiento de la celda activa.
7. Mientras sigue grabando, continúe ejecutando los pasos que siguió a partir del
numeral 2 del procedimiento de inserción del campo Ventas$ en el Paso 3 del
Módulo 2.
8. Una vez haya finalizado, detenga la grabación de la macro.
Ahora vamos a probar la macro que acaba de crear ejecutándola desde el cuadro de
diálogo Macros. En el libro de trabajo, borre o elimine el campo que acaba de insertar,
el campo Ventas$. Debe hacerle espacio a la macro para que sea ella la que inserte el
campo Ventas$ por usted. Pulse F8 para activar el cuadro de diálogo Macros.
Seleccione la macro Ventas y presione el botón Ejecutar. La macro grabada insertará
el campo Ventas$ automáticamente.
Sub Ventas()
Range("A1").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "Ventas$"
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=RC[-1]*RC[-2]"
Range("A1").Select
End Sub
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A1").Select
Es esta la instrucción que se grabó cuando usted activó el botón Usar referencias
relativas justo antes de que presionara la tecla Flecha a la derecha para seleccionar lo
que aparentemente fue la celda I1. No obstante, lo que hace esta instrucción es algo
más general: selecciona una celda a la derecha de la celda activa. La propiedad
Offset (0,1) es quien permite el desplazamiento de la celda activa (ActiveCell), en la
misma fila - (0 - , una columna a la derecha - 1) -. Veremos la utilidad de esto cuando
intentemos escribir las macros que insertan los campos restantes en su reporte de
ventas.
ActiveCell.FormulaR1C1 = "Ventas$"
Esta instrucción escribe el encabezado del campo que estamos insertando, el campo
Ventas$.
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=RC[-1]*RC[-2]"
Eh aquí la instrucción que se grabó cuando usted efectuó el cálculo de las ventas en
cada una de las celdas de la columna Ventas$
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
La Ventana INMEDIATO
La ventana Inmediato es una herramienta muy eficaz para el aprendizaje básico de la
interacción entre VBA para aplicaciones y Excel. Entre otras cosas la ventana Inmediato le
permitirá depurar y evaluar expresiones, ejecutar instrucciones, imprimir valores de variables,
etc.
Con el libro Proyecto Contoso Electronics abierto, en una hoja con el reporte mensual de
ventas 200801, pulse la combinación de teclas Alt+F8 para abrir el Editor VBA. La ventana
Inmediato podría aparecer “acoplada” o “desacoplada” en algún lugar de la ventana del editor
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
con el título Inmediato. Sin embargo, si la ventana Inmediato no se encuentra visible deberá
abrirla. Para ello, vaya al menú Ver y seleccione la opción Ventana Inmediato. Observe que de
manera opcional podrá abrir la ventana Inmediato con la combinación de teclas Ctrl+G
mientras se encuentra en el Editor de VBA.
Podrá desacoplar la ventana Inmediato para poder desplazarla por encima del editor
de VBA, incluso podría sacarla y organizar todas las ventanas de tal manera que
pueda ver simultáneamente su libro de Excel, el Editor VBA y la ventana Inmediato.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Se trata de que pueda observar lo que ocurre en su libro de trabajo de Excel mientras
ejecuta las instrucciones en la ventana Inmediato.
Range(“A1”).End(xlToRight).Select
Sin embargo, lo insto a que pruebe cambiando los argumentos de la propiedad Offset,
y analizando lo que ocurre. Luego vuelva a cambiar los argumentos a 0 y 1 y proceder
con las siguientes sentencias de la macro.
Range(“A1”).End(xlToRight).Offset(0,1).Select
Note además que esta instrucción resume en una sola las tres primeras instrucciones
de la macro Ventas. Las recuerda?
Sub Ventas()
Range("A1").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A1").Select
Range(“A1”).End(xlToRight).Select
Range(“A1”).End(xlToRight).Offset(0,1). Select
Cuando graba una macro, el grabador sigue obedientemente todas sus instrucciones,
incluso las que seleccionan rangos antes de trabajarlos. Si quiere hacer que su macro
trabaje menos, y que sea más fácil de leer, elimine los cambios superfluos. La técnica
consiste en buscar las instrucciones que terminan en Select y que están seguidas de
las instrucciones Selection o ActiveCell.
Cuando una única instrucción Selection aparece después de una instrucción Select,
pude unir las dos instrucciones en una sola como lo hizo con el par de instrucciones
que encabezaban la macro Ventas.
Antes de borrar una combinación Select…Selection, asegúrese de que sea una sola
instrucción la que use Selection. Si no es así, sino que hay dos o más instrucciones
que utilizan Selection, debe proceder de otra manera.
Pero no es nuestro caso ahora. Fíjese!. No hay más de dos instrucciones Selection
precedidas de UNA SÓLA instrucción Select. Dicho de otra manera, cada instrucción
que comienza con Selection o ActiveCell está precedida de una instrucción que
termina en Select. Así que podrá proceder como se le indicó para simplificar el código
de la macro.
Sub Ventas()
Range("A1").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "Ventas$"
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=RC[-1]*RC[-2]"
Range("A1").Select
End Sub
Sub Ventas()
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Si todo ha ido bien, lo que debe ver ahora mismo en pantalla es lo siguiente:
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
La respuesta es la siguiente:
La macro trabajará menos, requerirá menos tiempo para ejecutarse y será más fácil de leer.
Previamente deberá borrar todo el contenido de la columna Canal, incluyendo el Rótulo. Esto
con el fin de que sea la macro Canal la que ahora haga el procedimiento por usted. La macro
necesitará la misma columna que usted utilizó como espacio para grabarla.
Quitando las líneas de los comentarios, así es como se vería la macro Canal:
Sub Canal()
Range("A1").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "Canal"
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = _
"=VLOOKUP(RC[-9],[CatálogosContosoElectronics.xlsx]Canales!C1:C2,2,0)"
Range("A1").Select
End Sub
Ahora eliminaremos el código superfluo con el fin de que la su macro trabaje menos, y que
sea más fácil de leer. Usted ya conoce la técnica. Reemplace las secuencias Select Selection
o Select ActiveCell y deje un punto en su lugar.
Sub Canal()
Range("A1").End(xlToRight).Offset(0, 1).Range("A1").FormulaR1C1 = "Canal"
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Selection.CurrentRegion.SpecialCells(xlCellTypeBlanks.FormulaR1C1 = _
"=VLOOKUP(RC[-9],[CatálogosContosoElectronics.xlsx]Canales!C1:C2,2,0)"
Range("A1").Select
End Sub
10. Pulse la combinación de teclas Alt+F11 para abrir el Editor de VBA. Seleccione el
módulo que contiene la macro Continente y elimine de ella el código superfluo; es
decir, elimine las combinaciones Select Selection y Select ActiveCell. La macro
grabada debe verse así:
11. Elimine el código superfluo eliminando las secuencias Select Selection y Select
ActiveCell como se le indicó anteriormente. La macro revisada debe verse así:
6. En la celda activa escriba Año y valide la entrada haciendo clic en el botón Introducir
7. Seleccione las celdas en blanco de la región actual.
8. Inserte la función BUSCARV y diligencie los argumentos según se ilustra a
continuación:
Con lo hecho hasta ahora, estamos en capacidad de importar cualquier reporte de ventas
de Contoso, rellenar las celdas del informe convenientemente e insertar los campos
necesarios para complementarlo. Pero aún nos queda una tarea por ejecutar.
Asociación Colombiana de la Micro, Pequeña y
Mediana Empresa
ACOPI – REGIONAL NARIÑO
NIT: 800.147.621-8.
Crearemos una macro que nos permita copiar el reporte previamente diligenciado y
pegarlo en otra hoja del documento, una hoja que llamaremos Consolidado. La macro
debe permitirnos encontrar el lugar adecuado para efectuar el pegado bien sea que se
trate del primer reporte de ventas o que se trate de reportes sucesivos que se añaden a
otros previamente ubicados en el informe consolidado.
El reporte consolidado debe mostrar en la línea de encabezados todos los rótulos que
contiene un reporte cualquiera que generemos. Estos encabezados los escribiremos
manualmente. Significa esto que la macro que “consolida” los diferentes reportes debe
copiar el cuerpo del informe correspondiente SIN LOS ENCABEZADOS.
Pero, ¿cómo hacer que una macro pueda seleccionar exactamente el rango de celdas
debajo de los rótulos?
Le mostraré.
Por una parte, la propiedad Offset de la 6a instrucción desplaza hacia abajo el rango
seleccionado para no incluir el encabezado. Por la otra, Resize, redimensiona el rango
final. El primer argumento de la propiedad Resize equivale al número de filas y el segundo,
a la cantidad de columnas que tendrá el rango final.
Ahora ya tiene la instrucción que seleccionará el rango adecuado para ser copiado y
pegado luego en el consolidado.
Una observación final. Luego de que haya copiado y pegado el reporte de ventas en el
informe consolidado, querrá borrar la hoja del archivo que importó. Para esto deberá crear
una variable que llamaremos miHoja en la cual capturaremos el nombre de la hoja que
borrará. Al querer eliminar la hoja, Excel emitirá un mensaje pidiendo confirmación,
crearemos entonces una instrucción para desactivarlo. Veamos como:
En la primera línea debajo de la última instrucción EndSub escriba Sub Consolidar y haga
clic en Aceptar. Automáticamente, VBA complementará el cuerpo de la macro colocando
unos paréntesis a la derecha y la instrucción End Sub en la parte de abajo. Igualmente se
trazará una línea que divide ésta, de la macro anterior.
Sub Consolidar()
Dim miHoja As String
miHoja = ActiveSheet.Name
Range("A1").CurrentRegion.Offset(1, 0).Resize(Range("A1").CurrentRegion.Rows.Count - 1, _
Range("A1").CurrentRegion.Columns.Count).Copy
Sheets("Consolidado").Activate
Range("A1000000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Range("A1").Select
Application.DisplayAlerts = False
Sheets(miHoja).Delete
End Sub
Esto es lo que hace la macro: