lunes, 11 de febrero de 2013

VBA: Verificando un formato de fecha en Excel.

Aunque no es muy frecuente, podría ocurrir que necesitáramos una 'alarma' que nos indicara que una celda tiene o no un formato 'reglado' y definido previamente. Yo diría que controlar que el formato introducido en una celda corresponde o sigue una regla particular es imposible desde la hoja de cálculo (salvo mejor opinión). Así que para dar respuesta a la cuestión planteada por un lector expondré la explicación de esta entrada:
... busco es solamente una señal de alerta sobre la misma celda (sin utilizar otra celda o columna), que aparezca cuando el usuario introduce un formato distinto al deseado....


Supongamos que el formato requerido es uno de tipo fecha, pero muy específico, por ejemplo:
"dd/mm hh:mm"
y para cualquier formato diferente a este en nuestro rango de análisis queremos una 'alarma' que se configurará posteriormente con el Formato condicional.


Nuestro trabajo comienza por generar una función personalizada (muy sencilla) en VBA que detecte si el formato de una celda concreta responde o no a ese formato buscado.
Por lo que generamos nuestra function 'formatofecha', que incorporamos a un módulo del Explorador de proyectos del Editor de VBA:

Function formatofecha(celda As Range)
'actualizamos el resultado de la función
Application.Volatile

'comprobamos que el formato de la celda es el deseado
'si cumple obtendremos 'VERDADERO' y 'FALSO' en caso contrario
If celda.NumberFormat = "dd/mm hh:mm" Then
    formatofecha = True
    Else
    formatofecha = False
End If
End Function



Realmente con esta función ya podemos averiguar qué celda cumple o no con la regla de fecha personalizada:

VBA: Verificando un formato de fecha en Excel.



Completaremos algo más la propuesta, combinando esta función 'formatofecha' con un Formato condicional con fórmula:
=formatofecha(B2)
sobre el rango seleccionado B2:B8 y siendo la celda activa B2.

VBA: Verificando un formato de fecha en Excel.



Sin duda una manera rápida y sencilla de verificar el formato de una celda.

No hay comentarios:

Publicar un comentario en la entrada