Control de Formas en Excel (Shapes Object in Excel) – Parte2


En este artículo vamos a seguir con lo que vimos en el artículo anterior “Control de Formas en Excel”, el control de objetos, en particulares las formas o “Shapes”.

Habíamos visto cómo utilizar una macro para copiar y pegar las formas, a interpretar los que nos muestra el código, a utilizar el evento Change, entre otros.

En esta oportunidad para seguir el ejemplo planteado del “Control de estacionamiento” vamos a ver cómo podemos controlar el horario de ingreso y el horario de salida, por ejemplo para cobrar el servicio. Para eso vamos a utilizar el evento doble click entre otras cosas que nos servirán.

En síntesis cuando ingresa un auto debemos tomar nota del horario y luego cuando sale, teniendo en cuenta el costo horario y por la diferencia de tiempos, calcular el costo del servicio. De esta manera avanzamos un paso más hasta llegar a la aplicación definitiva y aprendemos algo nuevo en el camino.


El video relacionado está cargado en nuestro canal de YouTube “ExcelminiApps”. Sino directamente a través de este link o click en la imagen.



En la imagen de portada pueden ver el resumen de lo que queremos ver en este artículo. Cuando introducimos un nuevo auto en el garaje o parking además de colocar la imagen del auto en el lugar correspondiente, anotamos o introducimos con la misma macro la hora y fecha de ingreso del auto. Esto es porque a veces tenemos diferentes días y horarios, entonces debemos tener los dos datos.

Funcionamiento
Cuando introducimos la patente o matricula del auto, ingresamos también la hora y la fecha arriba de esta celda. Para eso modificamos la macro que vimos en el artículo anterior y le agregamos una línea para que agregue la fecha y hora arriba de la celda correspondiente. Esta línea tiene la forma “ActiveSheet.Range(C14).FormulaR1C1 = Now()”  como ejemplo.

En la imagen también podemos ver que a la derecha tenemos los datos del costo horario y se muestra el ejemplo de la lectura de una unidad. En este ejemplo vemos el precio a cobrar. Es necesario seleccionar la patente sobre la cual es necesario que calcule el precio. Entonces para señalar la patente utilizamos el evento “Doble Click”. Con este evento al hacer doble click sobre la celda de la patente hacemos que copie la patente en la celda correspondiente para el cálculo. El cálculo lo hacemos con una fórmula que vamos a mostrar más adelante.


Primero vamos a ver el código que utilizamos para este evento.
----------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
‘Excelminiapps
If Not Intersect(Target, Range("C14:F14,C27:F27")) Is Nothing Then

ActiveSheet.Range("J29").FormulaR1C1 = ActiveCell.Value ‘la patente de la celda en la que estamos
ActiveSheet.Range("K29").FormulaR1C1 = "=NOW()-R" & ActiveCell.Row - 1 & "C" & ActiveCell.Column ‘introducimos la formula
ActiveSheet.Range("J29").Select ‘ seleccionamos la celda de manera automática
End If
End Sub
----------
Como pueden ver se utilizo con el evento la misma metodología de la vez anterior con el metodo intersect le decimos que solo ejecute el código cuando pasa arriba de esas celdas, en este caso C14:F14 y C27:F27. Se utiliza dentro de un condicional.

Luego el código dentro del condicional nos dice que copiemos la información de esa celda, donde dimos doble click, y que la copie en la celda que queremos en la parte derecha. Luego introducimos la formula pero con código, ya que debemos comparar la fecha que guardamos en la celda arriba de la matricula con la fecha y hora actuales o del momento en que se ejecuta la acción del doble click. Esto no es absolutamente necesario que se haga así, se puede utilizar solo fórmulas para eso, lo importante solamente es identificar la patente.

La formulas son muy importantes en este caso, necesitamos dos, una que compara la fecha y hora de entrada con la de salida y la otra que le pone precio al tiempo transcurrido.

Formula1: Calculo de Tiempos
Utilizamos la formula “NOW” o “Ahora”, en español este último. Nos da la fecha junto con el día que se puede ver por ejemplo como “15/12/18 12:00” pero realmente para Excel es un número tal como “43449,5”. Es decir un número entero que representa los días correlativamente y luego después de la coma un número que representa la hora del día.
Si tenemos guardada la fecha y hora de ingreso del auto y luego tenemos la fecha y hora de salida solo con restarlas tenemos el tiempo transcurrido que lo podemos mostrar en el formato que queramos. Es decir, como horas o como horas y minutos, etc.

=AHORA()-$E$26
Formula2: Calculo de Precio
Luego para calcular el precio podemos utilizar una formula como la que mostramos. Como es por hora el estacionamiento extraemos de la celda donde está la resta anterior las horas. Y luego aparte extraemos los minutos. Es este último caso establecemos un criterio, en nuestro ejemplo cobramos el proporcional por minuto transcurrido. Es decir, dividimos el costo horario por 60 minutos y lo multiplicamos por los minutos transcurridos que no sean horas completas.
=HORA($K$29)*$K$27+MINUTO($K$29)*($K$27/60)

Aunque utilizamos formulas simples, así como el código, podemos hacer aplicaciones que parecen complejas pero son fáciles y resultan muy útiles.
Ahora podemos llevar la gestión de cobranzas de nuestro estacionamiento, en el artículo siguiente “Control de formas en Excel Parte 3 vamos a terminar con la aplicación para que sea totalmente funcional. Esto sería ver de qué formas una vez que cobramos y que el auto se retira borrar los datos del lugar o del place y WUALA! Tendríamos nuestra mini app lista.
É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 Object VBA
·         Control de Estacionamiento en Excel
·         Parking Management in Excel

No hay comentarios: