Corregir código para que comience a aplicar desde la columna 10 y fila 17 según descripción

Actualmente tengo este código y necesito regularlo para que aplique desde la columna 10 y fila 17 en adelante según la condición.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next

fila = Range("D" & Rows.Count).End(xlUp).Row

If Target.Column = 4 And Target.Value = "Resuelto" Then
Sheets("Registro").Cells(Target.Row, 10) = Format(Now(), "mm-dd-yyyy")
End If

End Sub

1 respuesta

Respuesta
1

No está claro: si debe aplicar desde la columna 10 y fila 17 en adelante, entiendo que se controla todo lo ingresado a partir de J17 hacia derecha y hacia abajo.

¿Es eso lo que necesitas? Si es correcto, así te quedará el código:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
'solo controla lo ingresado a partir J17 (fila 17 y col 10)
If Target.Row < 17 Or Target.Column < 10 Then Exit Sub
'controla si el texto es 'Resuelto'
If Target.Value = "Resuelto" Then
    'se coloca fecha en la misma fila y col 10
    Sheets("Registro").Cells(Target.Row, 10) = Format(Now(), "mm-dd-yyyy")
End If
End Sub

Si esto no resuelve tu consulta debieras dejar una pequeña imagen con un ejemplo.

Y si la resuelve, no olvides valorarla.

Sdos.

Muy agradecido por su atención. Estuve intentando adaptar el código e igualmente prefiero realizar la aclaración.

Explicando de otra manera cual es la idea que necesito que el código realice:

Si en alguna celda de la columna 4 y siempre partiendo de la fila 17 en adelante figura la palabra "Resuelto", entonces en esa misma fila pero en la columna 10 (J), se coloque la fecha actual.

Desde ya muy agradecido.

Bien, así quedará entonces el código:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
On Error Resume Next
'solo controla lo ingresado en col 4 a partir de fila 17
If Target.Row < 17 Or Target.Column <> 4 Then Exit Sub
'controla si el texto es 'Resuelto'
If Target.Value = "Resuelto" Then
    'se coloca fecha en la misma fila y col 10
    Cells(Target.Row, 10) = Format(Now(), "mm-dd-yyyy")
End If
End Sub

Notas:

1- La macro se coloca en el objeto HOJA donde vayas a hacer este control, en tu caso parece ser la hoja Registro. Por lo tanto el nombre de la hoja no hace falta mencionar ;)

2- Este evento Change solo se ejecuta al ingresar algún dato de modo manual o enviado desde otra macro. No como resultado de fórmulas ni como recorrido de la col 4 en la hoja en cuestión.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas