Modificar este código para obligar a llenar campo

Tengo el sig código el cual pone los datos que hayan en J1

Lo que necesito es que si no hubiese datos en J1 me salga un aviso el cual me diga que se me paso poner la hora

Lo hice la sig manera:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("j1") = "" Then
MsgBox " Se te olvida la Hora base", vbOKOnly + vbExclamation, "ALTO"
Exit Sub
Else
ActiveSheet.Unprotect Password:="123" ''AQUI CONTRASEÑA
If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
Range("K" & Target.Row) = Date
Range("J" & Target.Row) = Range("j1")
ActiveSheet.Protect Password:="123" ''AQUI CONTRASEÑA
End If
End If
End Sub

Según yo entiendo es cuando se intersecta la col. E

El problema esta que cualquier celda de la hoja que ponga un dato y no haya dato en J1 me sale el mensaje que te comento.

Lo que necesito es que solo salga el mensaje exclusivamente solo al momento de llenar datos en la col. E y no hubiese datos en J1

2 respuestas

Respuesta
2

Pobré es código de Dante y no me funciono, pero probé mi código y si funciona:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 Then
If Range("j1") = "" Then
    MsgBox " Se te olvida la Hora base", vbOKOnly + vbExclamation, "ALTO"
    Exit Sub
Else
    ActiveSheet.Unprotect Password:="123" ''AQUI CONTRASEÑA
    If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
        Range("K" & Target.Row) = Date
        Range("J" & Target.Row) = Range("j1")
        ActiveSheet.Protect Password:="123" ''AQUI CONTRASEÑA
    End If
End If
End If
End Sub
Respuesta
1

Quedaría así:

Private Sub Worksheet_Change(ByVal Target As Range)
'Act.Por.Dante Amor
    If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
        ActiveSheet.Unprotect Password:="123" ''AQUI CONTRASEÑA
        If Range("j1") = "" Then
            MsgBox " Se te olvida la Hora base", vbOKOnly + vbExclamation, "ALTO"
            Application.EnableEvents = False
            Target.Select
            Target = ""
            Application.EnableEvents = True
        Else
            Range("K" & Target.Row) = Date
            Range("J" & Target.Row) = Range("j1")
        End If
        ActiveSheet.Protect Password:="123" ''AQUI CONTRASEÑA
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas