Excel. Volver cursor a celda derecha con Macro

Hola. Estoy haciendo en una hoja de calculo un macro que haga lo siguiente:

Cuando escribo algo en una celda me tiene que poner la fecha en otra celda y la hora en otra celda. Escribo en el rango B:E me pone en la J la Fecha y en la K la Hora. Además cuando escribo en el rango L me pone en la M la Fecha y en la N la hora. Este es el código que llevo.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B:E")) Is Nothing Then ActiveSheet.Unprotect Range("J:K").Select Selection.Locked = False Range("J" & Target.Row) = Date
Range("K" & Target.Row) = Format(Now, "hh:mm") Range("J:K").Select Selection.Locked = True Selection.FormulaHidden = False ActiveSheet.Protect
End If If Not Application.Intersect(Target, Range("L:L")) Is Nothing Then ActiveSheet.Unprotect Range("M:N").Select Selection.Locked = False Range("M" & Target.Row) = Date
Range("N" & Target.Row) = Format(Now, "hh:mm") Range("M:N").Select Selection.Locked = True Selection.FormulaHidden = False ActiveSheet.Protect
End If
End Sub

Además como veréis, lo que hace es que desbloquea la hoja, bloquea las celdas donde ha puesto la fecha y la hora y vuelve a bloquear la hoja

PROBLEMA:

Ahora lo que necesito y no consigo es que cuando termino de escribir en el rango B:E o en L que el cursor se vuelva a la celda siguiente a la derecha.

Ejemplo:

Si escribo algo en la celda B2 o C2 o D2 o E2 (pone la fecha y hora como he dicho) pero debería volver a la celda F2 para seguir escribiendo en esta celda y si escribo algo en la L2 (pone la fecha y hora como he dicho) debería irse al la celda O2

Espero haberme explicado bien.

Gracias

1 Respuesta

Respuesta
1

Prueba con lo siguiente

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B:E")) Is Nothing Then
        ActiveSheet.Unprotect
        Range("J:K").Select
            Selection.Locked = False
        Range("J" & Target.Row) = Date
        Range("K" & Target.Row) = Format(Now, "hh:mm")
        Range("J:K").Select
            Selection.Locked = True
            Selection.FormulaHidden = False
        Cells(Target.Row, "F").Select
        ActiveSheet.Protect
    End If
    If Not Intersect(Target, Range("L:L")) Is Nothing Then
        ActiveSheet.Unprotect
        Range("M:N").Select
        Selection.Locked = False
        Range("M" & Target.Row) = Date
        Range("N" & Target.Row) = Format(Now, "hh:mm")
        Range("M:N").Select
        Selection.Locked = True
        Selection.FormulaHidden = False
        Cells(Target.Row, "O").Select
        ActiveSheet.Protect
    End If
End Sub

Saludos.DAM
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas