Calendario para seleccionar fecha no mayor a 7 días hábiles y mostrar sábados y domingos bloqueados

Quiero poner una fecha en una hoja de excel la cual quiero que sea menor a 7 días hábiles de la fecha actual para que no se equivoquen,

Seleccionarla fecha de un calendario donde estén disponibles solo para elegir los días equivalentes y te muestre blouqeados los días sábados, domingos y los mayores a 7 días hábiles

He probado con la función validar pero no he podido desarrollar la función

1 respuesta

Respuesta
1

Con esta macro, al escribir un día inhábil (sábado o domingo) envía un mensaje y borra el contenido de la celda. Si selecciona una fecha mayor a 7 días que la fecha actual da un mensaje de la fecha máxima a seleccionar y modifica la celda a la fecha máxima.

Espero le sirva si no me comenta y ver la manera de hacerle cambios, saludos.

fechaselec = Range("A1").Value
fechamax = Now + 7
If fechaselec = "" Then
Else
    dia = Weekday(fechaselec)
    If dia = "1" Or dia = "7" Then
        MsgBox "La Fecha no es un dia habil"
        Range("A1").Value = ""
    Else
    End If
    If Range("A1").Value > fechamax Then
        Range("A1").Value = fechamax
        MsgBox "La Fecha maxima es: " & fechamax
    Else
    End If
End If

.

muchas gracias por tu atención

lo estoy probando hay modo que la macro se ejecute automáticamente al cambiarme de celda?

Le mando los pasos para donde debe poner el código para que se ejecute automáticamente

Saludos

Paso 1.- de clic derecho en la hoja y después clic en Ver código como en la imagen

Paso 2.- Se abre el editor de cogido da clic en la ventana donde dice General y se despliegan 2 opciones, selecciona la que dice ""Worksheet"

Paso 3.- Después de dar clic quedara como en la siguiente imagen

Paso 4.- Dentro de esa proceso pega el código que le envié quedando como en la imagen

Con esto ya ejecutara la macro de forma automática al introducir la fecha en la Celda A1, si la fecha se escribirá en otra celda, modifique el código a la celda deseada.

Su archivo debe ser guardado como tipo de archivo habilitado para macros.

excelente !!! mi estimado

un favor como puedo hacerle para que también me valide los siguientes registros que coloqué

(en la misma columna) 

y cambie unos datos  solo que cuando le doy clic en otra celda me carca el mensaje 

La Fecha maxima es:

y donde le de click  me sigue saliendo el mismo error

muchas gracias quedo al pendiente saludos

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
fechaselec = Range("A1").Value
fechamax = Now - 10
If fechaselec = "" Then
Else
    dia = Weekday(fechaselec)
    If dia = "1" Or dia = "7" Then
        MsgBox "La Fecha no es un dia habil"
        Range("A1").Value = ""
    Else
    End If
    If Range("A1").Value < fechamax Then
        Range("A1").Value = fechamax
        MsgBox "La Fecha maxima es: " & fechamax
    Else
    End If
End If
End Sub

No me queda muy claro, puede subir una imagen de sus datos y poner un texto de lo que necesita que valide

Claro este es el formulario que tengo que llenar

Yo ocupo la columna "J " para poner la fecha (y es el que necesito que valide cada que ponga fechas en las celdas )y el primero si me la valida solo que cuando clic en cualquier lado o me cambio de celda me marca el siguiente error

Cambie algunas cosas ya que el que me pasaste me muestra la fecha máxima, y pero yo ocupa la mínima (la fecha puede ser solo menor a 7 días de la fecha actual pero si mayor a la fecha actual el código lo deje así

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
fechaselec = Range("j9").Value
fechamax = Now - 9
If fechaselec = "" Then
Else
    dia = Weekday(fechaselec)
    If dia = "1" Or dia = "7" Then
        MsgBox "La Fecha no es un dia habil"
        Range("j9").Value = ""
    Else
    End If
    If Range("j9").Value < fechamax Then
        Range("j9").Value = fechamax
        MsgBox "La Fecha minima es: " & fechamax
    Else
    End If
End If
End Sub

cambiando

If Range("j9").Value > fechamax Then

por

If Range("j9").Value < fechamax Then

Y verificando si escojo la fecha q me pone en como sugerencia es cuando me marca el error

Espero poder explicarme

Saludos

Con este código nada más valida la columna "J9". ¿Por lo que veo la fecha a validar de la columna J se va capturando hacia abajo y es donde se ira validando la fecha cierto?

Podría subir una copia de su archivo con datos ficticios para buscar la manera que haga la validación en cada línea a capturar de la columna "J9", saludos

Este código valida una celda fija "J9"

fechaselec = Range("J9").Value
fechamax = Now - 9
If fechaselec = "" Then
Else
If ActiveCell.Column = 10 Then
    dia = Weekday(fechaselec)
    If dia = "1" Or dia = "7" Then
        MsgBox "La Fecha no es un dia habil"
        Range("J9").Value = ""
    Else
    End If
    If Range("J9").Value < fechamax Then
        Range("J9").Value = fechamax
        MsgBox "La Fecha minima es: " & fechamax
    Else
    End If
    End If
End If

una disculpa por la tardanza

muchas gracias por el aporte

anexo mi archivo

momomo

disculpa mi ignorancia como subo el arch

Suba a google drive con su cuenta gmail o a onedrive con su cuenta de hotmail, puede enviármelo al correo [email protected]

¡Gracias!

Listo mi estimado ya te lo compartí

¿De qué manera me lo compartió? Por google drive o onedrive si es en una de estas plataformas envíeme el link donde esta alojado el archivo, o si no me puede enviar el archivo a mi correo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas