Tengo esta Macro, muy buena por cierto, es si se puede lograr que no actúe los sábados y domingos.

En esta macro, la pregunta es si se puede lograr que no actúe los sábados y domingos.
Esta colocada en ThisWorkbook, para la apertura del día:
Set h = Sheets("Hoja1")
ActiveSheet.Unprotect Password:="1"
If h.[A1] = "" Then
Diario
h.[A1] = Date
h.[A2] = "x"
ElseIf h.[A1] < Date Then
h.[A2] = ""
Diario
h.[A1] = Date
h.[A2] = "x"
ElseIf h.[A1] = Date Then
If h.[A2] = "" Then
Diario
h.[A1] = Date
h.[A2] = "x"
End If
End If

2 Respuestas

Respuesta

Podrias agregar una condicion asi:

Private Sub Workbook_Open()
Dim hoy As Date
Dim nombredia As String
hoy = Now()
nombredia = WeekdayName(Weekday(hoy), True, vbSunday)

If nombredia = "dom" Or nombredia = "sáb" Then

Else

Set h = Sheets("Hoja1")
ActiveSheet.Unprotect Password:="1"
If h.[A1] = "" Then
Diario
h.[A1] = Date
h.[A2] = "x"
ElseIf h.[A1] < Date Then
h.[A2] = ""
Diario
h.[A1] = Date
h.[A2] = "x"
ElseIf h.[A1] = Date Then
If h.[A2] = "" Then
Diario
h.[A1] = Date
h.[A2] = "x"
End If
End If

End If

End Sub

¡Gracias! Por contestar

Lo he probado y no funciona

Si me puedes indicar cual error tienes por que yo la probé y si me funciona. Si es sábado o domingo la fecha actual no se ejecuta y no pasa nada. Si es de lunes a viernes si se ejecuta.

Respuesta
2

Te anexo la macro actualizada

    dia = Format(Date - 1, "dddd")
    Select Case LCase(dia)
        Case "sábado", "domingo"
        Case Else
            Set h = Sheets("Hoja1")
            ActiveSheet.Unprotect Password:="1"
            If h.[A1] = "" Then
                diario
                h.[A1] = Date
                h.[A2] = "x"
            ElseIf h.[A1] < Date Then
                h.[A2] = ""
                diario
                h.[A1] = Date
                h.[A2] = "x"
            ElseIf h.[A1] = Date Then
                If h.[A2] = "" Then
                    diario
                    h.[A1] = Date
                    h.[A2] = "x"
                End If
            End If
    End Select

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas