Agregar al código una línea coloreada

Tengo esta planilla y este código que al mover el cursor para arriba o para abaja acompaña el color necesito agregar al código que cuando en la columna A aparece la palabra EFECTIVO quede la fila de A hasta F de otro color que yo elija en forma permanente unicamente esa fila que dice EFECTIVO

1 Respuesta

Respuesta
1

Te anexo el código actualizado

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    r = ActiveCell.Row
    c = ActiveCell.Column
    Range("A4:F1048576").Interior.ColorIndex = 0
    Set b = Range("A:A").Find("EFECTIVO", lookat:=xlPart)
    If Not b Is Nothing Then
        Range("A" & b.Row & ":F" & b.Row).Interior.ColorIndex = 6
    End If
    If r < 4 Or r > 1048576 Or c < 1 Or c > 6 Then
        Exit Sub
    Else
        Range("A" & r & ":F" & r).Interior.ColorIndex = 44
    End If
End Sub

Dante esta perfecto el tema es que yo tengo un botón en cada hoja para ir a las ditintas hojas y que el cursor se posiciona con esta línea de código

Range("A13:A1048576").Select
Selection.FindNext(After:=ActiveCell).Select

En la ultima fila libre de la columna A de la hoja que voy

Y desde que cambie el código que me mandaste me tira error

Se ha producido el error 91 en tiempo de ejecución variable del objeto o bloque whit no establecido me lo podrás corregir por favor gracias

Otra cosa dante este código que me mandaste se puede ejecutar con la hoja protegida menos de a4:F1048746 puede ser

En la imagen que pusiste aparecen unas letras que yo no puse, no sé si son variables o comentarios u otras macros. Revisa si le hacen falta esas letras y ponlas nuevamente.

Cómo podrás ver la macro que te envié no altera ningún dato, solamente pinta de color una fila.

Si la hoja está protegida recuerda desproteger la hoja y volver a protegerla

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    ActiveSheet.Unprotect
    r = ActiveCell.Row
    c = ActiveCell.Column
    Range("A4:F1048576").Interior.ColorIndex = 0
    Set b = Range("A:A").Find("EFECTIVO", lookat:=xlPart)
    If Not b Is Nothing Then
        Range("A" & b.Row & ":F" & b.Row).Interior.ColorIndex = 6
    End If
    If r < 4 Or r > 1048576 Or c < 1 Or c > 6 Then
        Exit Sub
    Else
        Range("A" & r & ":F" & r).Interior.ColorIndex = 44
    End If
    ActiveSheet.Protect
End Sub

Dante te estoy mandando el archivo por mail para que lo pruebes y me digas cuando apretó el botón para ir a activos, pendientes, GxDia porque me tira error

Quité las líneas que yo anexé a la macro y tu archivo ya tenía el problema.

El problema lo tienes en estas líneas, en la macro de activo, tienes un FindNext, pero para que funcione, antes debe existir un Find.

Range("A4:A1048576").Select
Selection.FindNext(After:=ActiveCell).Select

Prueba nuevamente tu archivo sin la macro modificada y me comentas.

Si el error ya lo tenías entonces no es problema de la macro que yo actualicé.

Por otra parte, quité esas líneas y ya funciona

Quita esta líneas y todo funciona

Range("A4:A1048576").Select
Selection.FindNext(After:=ActiveCell).Select

Ok pero como reemplazo esas líneas para que cuando vaya a una determinada hoja se posicione en la ultima celda vacías de la columna A

Mi estimado eso corresponde a otra consulta.

Finaliza esta pregunta, porque la modificación que te envié en verdad funciona.

Te envié por correo la respuesta:

u = Range("A" & Rows.Count).End(xlUp).Row + 1
 Range("A" & u).Select

Por favor, no dejes preguntas sin valorar, todas te las he contestado debidamente.

¡Gracias! diculpame dante no es que me haya olvidado lo que sucede es que tuve un problema familiar igualmente te agradezco como siempr tu colaboracion abrazo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas