Esta es una forma facil de pintar la fila activa en Excel mediante VBA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Rem conseguimos la ultima celda ocupada de la columna A
uf = Range("A" & Rows.Count).End(xlUp).Row
Rem trabajaremos con Target/Objetivo
With Target
Rem si la columna activa se localiza despues de la columna E
Rem si la fila activa es menor que 5
Rem si la fila activa es mayor que uf (ultima fila ocupada)
Rem >>> entonces salir de la rutina
If .Column > 5 Or .Row < 5 Or .Row > uf Then Exit Sub
Rem trabajando con el rango Range("A5:E" & uf)
With Range("A5:E" & uf)
Rem ningun color
.Interior.ColorIndex = xlNone
Rem negrita desactivada
.Font.Bold = False
End With
Rem trabajar con la celda/fila activa
With Range(Cells(.Row, 1), Cells(.Row, 5))
Rem color a 6 (amarillo)
.Interior.ColorIndex = 6
Rem negrita activada
.Font.Bold = True
End With
End With
End Sub
Espero que sea de mucha utilidad
Saludos desde Honduras
muy gueno, podria hacerse lo mismo pero para las columnas? y para ambas columna y fila de la celda activa, hay muchos datos que se al macenan en columnas de año y seria un buen metodo para las presentaciones, un saludo y reitero la felicitación
ResponderEliminarHola
ResponderEliminarPrueba para columna con:
With Range(Cells(5, .Column), Cells(16, .Column))
.FormatConditions.Add Type:=xlExpression, Formula1:=.Column = .Column
With .FormatConditions(1)
.Interior.ColorIndex = 6
.Font.Bold = True
End With
End With
nota: aqui se aplica formato condicional y NO color de relleno
Saludos desde Honduras
Hola
ResponderEliminarPara las columnas si funciona pero tengo que poner como comentario
' With Range(Cells(.Row, 1), Cells(.Row, 5))
' Rem color a 6 (amarillo)
' .Interior.ColorIndex = 6
' Rem negrita activada
' .Font.Bold = True
' End With
'End With
sino da error en column ycomo comentario tambien estas dos lineas
'.FormatConditions.Add Type:=xlExpression, Formula1:=.Column = .Column
'With .FormatConditions(1)
a la vez no funcionan no?
un saludo
Hola no se si me explico bien, perdón , copio todo el código para que me funcionen las columnas en mi archivo
ResponderEliminarPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
Rem conseguimos la ultima celda ocupada de la columna A
uf = Range("A" & Rows.Count).End(xlUp).Row
Rem trabajaremos con Target/Objetivo
With Target
Rem si la columna activa se localiza despues de la columna E
Rem si la fila activa es menor que 5
Rem si la fila activa es mayor que uf (ultima fila ocupada)
Rem >>> entonces salir de la rutina
If .Column > 5 Or .Row < 5 Or .Row > uf Then Exit Sub
Rem trabajando con el rango Range("A5:E" & uf)
With Range("A5:E" & uf)
Rem ningun color
.Interior.ColorIndex = xlNone
Rem negrita desactivada
.Font.Bold = False
End With
Rem trabajar con la celda/fila activa
' With Range(Cells(.Row, 1), Cells(.Row, 5))
' Rem color a 6 (amarillo)
' .Interior.ColorIndex = 6
' Rem negrita activada
' .Font.Bold = True
' End With
'End With
With Range(Cells(5, .Column), Cells(16, .Column))
'.FormatConditions.Add Type:=xlExpression, Formula1:=.Column = .Column
'With .FormatConditions(1)
.Interior.ColorIndex = 6
.Font.Bold = True
End With
End With
End Sub
un saludo
Hola
ResponderEliminarEste es el correcto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim uf As Long
uf = Range("A" & Rows.Count).End(xlUp).Row
With Target
Range("A5:E" & uf).FormatConditions.Delete
If .Column > 5 Or .Row < 5 Or .Row > uf Then Exit Sub
With Range(Cells(5, .Column), Cells(16, .Column))
'''Range(Cells(.Row, "A"), Cells(.Row, "E"))
.FormatConditions.Add Type:=xlExpression, Formula1:=.Row = .Row
With .FormatConditions(1)
.Interior.ColorIndex = 6
.Font.Bold = True
End With
End With
End With
End Sub
Saludos desde Honduras
hola Gerson
ResponderEliminarMuy bueno tu aporte.. permiteme un comentario, esta macro, y otras que he visto en la web. .. no mantienen el formato de color de celda.. y tampoco permiten pegar.., seria bueno si se pudiera hacer.. :), igual esta muy bueno tu aporte, es de mucha utilidad; me parece que deberia venir con la propia hoja excel... con algo asi como activar y desactivar.. creo que voy a sugerir en Excel..jajaja.. y tambien que las validaciones acepten mas condiciones y que aparezcan con la validacion tipo google..jajaja..
gracias...
y que estes muy bien, un maravilloso y muy feliz dia para ti..
Silvia
Hola Silvia
ResponderEliminarLeete estos temas completos para ver si te sirven
http://www.ayudaexcel.com/foro/ideas-aportes-64/colorear-facilmente-fila-activa-19403/
Tambien este
http://www.ayudaexcel.com/foro/macros-programacion-vba-10/solucionado-desactivar-activar-macro-boton-20943/
Saludos
hola Gerson, :)
ResponderEliminarveré si puedo ver lo que me recomiendas, gracias. (me parece que tenian un problema en su página..)
que estés muy bien..
saludos
Silvia
Gerson!!!
ResponderEliminarcomo estas? espero que muy bien..
Por fin tuve tiempo de ver lo que me recomendaste, (activar y desactivar el botón de ayudaexcel) y listo, era lo que necesitaba, quizás podrías colgar la solución acá en tu página ¿? ;)
Saludos,
Silvia
nota: quedo a la espera de mas novedades tuyas... :b
Hola Silvia!
ResponderEliminarEse tema ya lo publique aqui, revisalo
http://gerson-pineda-el-catracho.blogspot.com/2010/11/prueba_17.html
Sera ese al que te refieres?
Saludos
no lo veo¿? buuu
ResponderEliminarme refiero a la solución que le das activando y desactivando la macro con el botón.. agregaste un módulo..
la dirección que me diste me manda al de colorear facilmente la fila activa..
saludos
Silvia