Celdas que permitan solo fechas dentro del mes actual

Requiero de su valiosa colaboración para buscar la solución para el control de asistencia a capacitaciones; que dentro de un rango Columna PD; PE... (son varias columnas cada una con la misma condición ya que en cada columna se controla una capacitación), solo se pueda insertar determinada información, esta limitada a una lista de despliegue pero permite insertar otros valores, o sea no tiene el mensaje de error activado, por lo que si no se necesita una opción de la lista, se debe inserta una fecha, pero acá tengo el problema: necesito que esa fecha al ser insertada solo permita que sea el mes actual, no puede ser de meses anteriores, jugando con la fecha del pc.

La solución puede ser mediante alguna formula en el formato condicional que la coloree de rojo si es anterior, porque a medida que se generan más capacitaciones se irán insertando mas columnas adicionales, lo que limitaría la opción si se hiciera una macro.. Bueno esto último lo digo sin total conocimiento... Les dejo a ustedes los expertos la mejor forma de solucionarlo..

1 Respuesta

Respuesta
1

Prueba con la siguiente macro. Valida que sea una columna de la "PD" en adelante, valida que la celda tenga lista de validación, valida que se haya introducido una fecha, si se introduce una fecha, el mes deberá ser igual al mes de la PC .

Pon la macro en los eventos de Worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Column >= Columns("PD").Column Then
        For Each c In Target
            If c.Validation.Value = False Then
                If IsDate(c) Then
                    mesactual = Month(Date)
                    mesfecha = Month(c)
                    If mesfecha <> mesactual Then
                        MsgBox "Fecha no se permite"
                        Application.EnableEvents = False
                        c.Value = ""
                        c.Select
                        Application.EnableEvents = True
                    End If
                End If
            End If
        Next
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro


Si quieres evitar que cambien la fecha de la PC, realiza lo siguiente, selecciona Inicio, Ejecutar, en la ventana escribe gpedit. Msc y Aceptar

En la siguiente ventana, busca asignación de derechos de usuario y doble click a Cambiar la hora del sistema

En la siguiente ventana elimina a todos o a los que no quieres que cambien la fecha.


Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas