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
1 comentario:
Do you understand there's a 12 word sentence you can say to your partner... that will induce deep feelings of love and impulsive attractiveness to you deep within his chest?
Because deep inside these 12 words is a "secret signal" that triggers a man's instinct to love, please and look after you with all his heart...
===> 12 Words Will Trigger A Man's Desire Instinct
This instinct is so built-in to a man's brain that it will make him work better than before to build your relationship stronger.
Matter of fact, fueling this influential instinct is absolutely essential to getting the best ever relationship with your man that once you send your man one of the "Secret Signals"...
...You will soon notice him open his soul and mind for you in a way he never experienced before and he will see you as the one and only woman in the galaxy who has ever truly attracted him.
Publicar un comentario