Saltar de una celda a otra dependiendo de un rango de datos

Me explico con detalle, digamos que si le ingreso dígitos manualmente a la celda h2 con valores 1 a 4 debe saltar a celda i2, pero si son valores de 5 a 99 debe saltar a la celda j2, espero haberme explicado, gracias.

1 respuesta

Respuesta
1

Te dejo el código que puede ayudarte en tu caso, debes pegarlo en la hoja de código de la hoja actual. Quedo pendiente de tu éxito. Saludos

Private Sub Worksheet_Change(ByVal Target As Range)
''Creada por FSerrano en 120222
''Para leoflixe en TodoExpertos.com
''Evalua el valor ingresado en la celda H2 y se mueve a la celda especificada
If Target.Address(False, False) = "H2" Then
    If Application.WorksheetFunction.IsNumber(Range("h2")) = False Then
        a = MsgBox("Dato no admitido, debe ingresar números", , "DATO INVALIDO")
    ElseIf Range("h2").Value > 0 And Range("h2").Value < 5 Then
        Range("i2").Activate
    ElseIf Range("h2").Value >= 5 And Range("h2").Value <= 99 Then
        Range("j2").Activate
    End If
End If
End Sub

 NO OLVIDES FINALIZAR Y PUNTUAR LA PREGUNTA

Hola de nuevo, quedó muy bien Serrano, sólo me quedaría molestarte con la solución para que se aplique en toda la columna h, muchas gracias.

Una respuesta rápida (aunque espero que efectiva)

Prueba a cambiar esta linea

If Target.Address(False, False) = "H2" Then

 por esta otra

If Target.column = 8 Then

 Debería funcionar (si no he pasado algo por alto).

Hola de nuevo, como me dijiste, dejé el código así pero con cualquier valor en las demás celdas de la columna 8 (h), me salta a la celda i2 o j2 dependiendo del valor en h2:

If Target.Column = 8 Then
If Application.WorksheetFunction.IsNumber(Range("h2")) = False Then
a = MsgBox("Dato no admitido, debe ingresar números", , "DATO INVALIDO")
ElseIf Range("h2").Value > 0 And Range("h2").Value < 5 Then
Range("i2").Activate
ElseIf Range("h2").Value >= 5 And Range("h2").Value <= 99 Then
Range("j2").Activate
End If
End If
End Sub

Te agradezco tus comentarios, gracias.

Tal vez se me pasó decirte que necesito que no cambie de renglón, es decir, si estoy en la columna 8, (celda h5) los saltos los de a i5 o j5, gracias.

Para lo que necesitas, prueba con este código. Quedo pendiente de tu éxito. Saludos

Private Sub
Worksheet_Change(ByVal Target As Range)
''Creada por FSerrano en 120222
''Para leoflixe en TodoExpertos.com
''Evalua el valor ingresado en la columna H y se mueve a la celda especificada
If Target.Column = 8 Then 
    If Application.WorksheetFunction.IsNumber(Cells(Target.Row, 8)) = False Then
        a = MsgBox("Dato no admitido, debe ingresar números", , "DATO INVALIDO")
    ElseIf Cells(Target.Row, 8).Value > 0 And Cells(Target.Row, 8).Value < 5 Then
        Cells(Target.Row, 9).Activate
    ElseIf Cells(Target.Row, 8).Value >= 5 And Cells(Target.Row, 8).Value <= 99 Then
        Cells(Target.Row, 10).Activate
    End If
End If
End Sub

NO OLVIDES FINALIZAR Y PUNTUAR LA PREGUNTA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas