En este artículo vamos a empezar
a ver algo muy interesante en Excel, el control de objetos, en particulares las
formas o “Shapes”.
Trabajar en Excel es muy poderoso
porque podemos crear formas, gráficos, hacer ejercicios y crear escenarios
bastantes complejos pero no se trata solo de fórmulas y números. Podemos crear verdaderas
aplicaciones comparadas a software creado en algún lenguaje de programación y
esto es porque podemos aprovechar las características visuales que nos ofrece.
Es importante trabajar en lo
visual, en lo estético, en la sencillez de la hoja, en el orden de los
elementos que los componen para que sean accesibles, en lo fácil de utilizar.
En resumen nuestra aplicación debe tener
cierta eficiencia.
En general cuando creamos una
planilla y es usada por otra persona no sabe qué es lo que hace ni cómo hacerlo
pero si utilizamos botones, cuadros de controles, objetos, gráficos, dibujos, imágenes,
etc., como lo haríamos con cualquier soft lo podría usar cualquier persona, lo
podría entender.
Por otro lado utilizando macros y
programación en visual basic podemos mejorarla aún más haciendo tareas más
complejas, acciones automatizadas y podemos trabajar con seguridad creando llaves
o candados que nos permita evitar cometer errores.
El video relacionado está cargado en nuestro canal de YouTube “ExcelminiApps”. Sino directamente a través de este link o click en la imagen.
¿Qué son las formas o Shapes?
En Excel básicamente son los
objetos que se pueden incrustar en la hoja como ser imágenes, dibujos o formas
básicas, cuadrados, rectángulos, líneas, Circulos, etc. De la pestaña insertar
>> Formas.
Las formas es uno de los objetos
de Excel, por ejemplo una tabla dinámica es un objeto pero no una forma. Si
quieren ver todos los objetos de Excel visiten este link.
Si quieren ver todas las formas visiten este otro link.
Control de Formas Introducción
Como en todos nuestros artículos
para ver algo nuevo utilizamos un ejemplo práctico, generalmente una mini
aplicación. En este caso como el tema puede ser tan complejo como queramos, si
bien vamos a utilizar una pequeña mini app que ya habíamos visto vamos a darnos
cuenta que la podemos ir mejorando sustancialmente. En este caso el ejemplo es
el “Control de Estacionamiento”.
En este caso trabajamos con algo
más visual por lo que se nos ocurrió algo así:
Como podemos es bien visual, tenemos un estacionamiento
o parking para 6 autos, coches, cars o lo que sea. En la parte derecha inferior
tenemos un modelo que utilizamos para el ejemplo, es como un icono que
representa un auto. Si un auto esta en un lugar o plaza tenemos el espacio
ocupado y por tanto el icono que representa el auto se encuentra en el dibujo
para ese espacio, en la parte superior podemos anotar la pantente.
Hasta el momento es algo muy simple, podríamos cada vez
que ingresa un auto al parking de forma manual copiar la imagen que tenemos
(plantilla) del auto y copiarla en el lugar correspondiente, y luego escribir o
anotar la patente arriba.
Al parecer muy fácil pero deberiamos ejecutar esta
acción tipo copiar y pegar todas las veces que queremos ingresar un auto.
Si queremos dejar el espacio libre nuevamente, porque
se fue un auto, podemos borrar manualmente la imagen del espacio y tambien el
número de patente. Para esto necesitariamos ejecutar dos acciones ya que no
podemos seleccionar la celda y la imagen a la vez ya que son entidades
diferentes por tanto borramos la imagen y luego vaciamos la celda.
En este ejemplo básico solamente vamos a hacer eso, no
vamos cobrar ni a contar el tiempo transcurrido ni nada parecido. Aunque lo
podemos hacer con una pequeña planilla aparte o a un lago de forma manual.
Incluso lo podriamos anotar arriba de la pantente. Para este ejemplo esto
basta.
En conclusión lo que podemos hacer para que nuestra
tarea sea simple es escribir la patente en una celda arriba de uno de los
lugares de estacionamiento y automaticamente copiar y pegar nuestra imagen de
referencia. Esto es simple, lo hacemos con una macro. Entonces vamos a la
pestaña Programador >> Grabar macro y grabamos la acción, copiar y pegar.
Luego paramos la macro.
Si luego vamos a editar (modificar) la macro veríamos
el siguiente código:
----------
Sub Macro1()
' Macro1 Macro
ActiveSheet.Shapes.Range(Array("1
Picture")).Select
Selection.Copy
ActiveCell.Select
ActiveSheet.Paste
End Sub
----------
En este ejemplo vemos que el código
selecciona una forma “Shape” de la celda “J12”, la copia y luego la pega en la
celda seleccionada. El objeto o forma que está en ese rango se llama o esta
nombrado como “1 Picture” según podemos observar.
Hasta aquí todo fácil, ahora lo
que tenemos que hacer es que el código sea inteligente, que de acuerdo a la
celda de la posición en el estacionamiento que tengamos nos pegue la imagen en
el lugar correspondiente. Esto parece más difícil pero ya lo habíamos visto, se
puede utilizar el evento “Change” en las celdas correspondientes, sombreadas
>> Rango (C14 a E14) y Rango (C27 a E27).
Bueno con el evento “Change” y
utilizando el método “Intersect” o intersección tenemos:
---------
Private Sub
Worksheet_Change(ByVal Target As Range)
'ExcelminiApps
'excelminiapps@gmail.com
' Macro1 Macro
If Not Intersect(Target,
Range("C14:F14,C27:F27")) Is Nothing Then
ActiveSheet.Shapes.Range(Array("1
Picture")).Select
Selection.Copy
ActiveCell.Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 0).Select 'me
muevo una fila para arriba así estoy sobre la selección de patente cuando
presiono enter
End If
End Sub
---------
El evento “Change” se active cada
vez que hay un cambio en la hoja y para acotar a un “Target” o zona determinada
usamos el método “Intersect” como se ve en el código y que se setea o configura
de esa manera con el condiccional if. Si el target coincide con el rango que
nosotros queremos haga algo. En este caso que ejecute la “macro1” por ejemplo y para utilizar todo en un solo
lugar copiamos de la macro el código y lo pegamos dentro del condicional, entre
IF e End IF.
Lo visto aunque parece simple no
mucha gente lo conoce ni lo utiliza, es una herramienta poderosa.
Una vez que tenemos lista nuestra
plantilla cada vez que introducimos la patente en su lugar automáticamente se
muestra ocupado con nuestro auto de ejemplo que nos da a entender que el
parking está ocupado y WUALA! Tenemos nuestra mini app lista.
Es lindo estéticamente, es
eficiente y es fácil de usar. Las características que habíamos nombrado y que
le dan una buena CALIFICACIÓN o índice de calidad a nuestra aplicación.
En un artículo posterior vamos a
seguir viendo un poco más sobre formas.
ÉXITOS!
------
Recuerden que los artículos
algunas veces requieren un mayor o menor nivel de conocimiento en ciertos temas
de Excel, por ejemplo formulas avanzadas, macros o VBA, etc. Sin embargo en los
artículos se nombran todos los elementos y con esta información podemos hacer
nuestras pequeñas investigaciones usando internet. Las mini aplicaciones no son
más que la recopilación de muchos elementos para dar forma a una nueva idea.
Pueden descargar algunos ejemplos
(plantillas/templates) de la zona de Descargas y
también la Tienda Si tienen
alguna duda o consulta pueden hacerlo a través del formulario de Contacto.
Les recomendamos que sigan el blog por alguno de los medios,
mail o por redes sociales, para recibir las actualizaciones y novedades.
¡Éxitos!
Keys:
·
Control
del Objeto Forma en Excel
·
Shapes
Objet VBA
No hay comentarios:
Publicar un comentario