Jump to content

Colorear facilmente fila activa


Gerson Pineda

Recommended Posts

Posted

Hola

Es casi seguro que hay algo similar por el foro, pero de igual modo adjunto lo siguiente

Colorear facilmente una fila

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
[/PHP]

Espero sea de utilidad

Saludos desde Honduras

Colorear facilmente una fila.zip

Posted

Estimado Gerson,

Gracias por el aporte y también por explicar el código para los mortales que nos vamos iniciando, para que lo podamos estudiar y aplicar.

Saludos.

Posted

muy bien... amigo gerson... pero a raiz de eso te hago una consulta.. el formato de relleno de celdas(relleno), si tengo un color dentro del rango donde se ejecuta la macro, se borra, como seria para que no se borre el color que ya tenia anteriormente, bueno como sugerencia yo trataría de en vez de color de relleno sea un color dado por un formato condicional de relleno de color de celda... lo malo es que no se como... jejje te lo dejo haber si puedes hacerle unas modificaciones...

pero esta muy bien tu aporte...

gracias

Posted

Hola! julio césar (Gerson y Killer).

Por decirlo de algún modo: El título del presente aporte nos exime de mayores comentarios. Es decir:

[DBOX]https://www.ayudaexcel.com/foro/ideas-aportes/19403-colorear-facilmente-fila-activa.html[/DBOX]

Y "fácilmente" excluye la opción formato condicional (jejejejeje).

Sin embargo, como aporte adicionado a lo Gerson con varias de sus líneas tomadas "prestadas", puedes ver la variante formato condicional en el archivo adjunto.

Saludos para todos.

Colorear facilmente una fila.xls

Posted

Julio que tal

Pues ya se me adelanto (gratamente) el gran Cacho... y solo siguiendo con su idea, tambien creo que funciona algo asi:

Option Explicit

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(.Row, "A"), Cells(.Row, "E"))
.FormatConditions.Add Type:=xlExpression, Formula1:=.Row = .Row
With .FormatConditions(1)
.Font.Bold = True
.Interior.ColorIndex = 6
End With
End With
End With
End Sub[/PHP]

[color=#A9A9A9][i]Notaron el pequeño/leve/insignificante cambio en el codigo [/i][/color]:adoration:[color=#a9a9a9][i]jeje[/i][/color]

Abrazos y muchos afectos killer/cacho/julio

Saludos desde Honduras

Posted

Hola! Amigos.

Siempre "algo queda en el tintero", pues la inteligente corrección de Gerson:

Formula1:=.Row = .Row

la podemos llevar a:

Formula1:=True

Ahora bien: se me ocurre útil indagar sobre los parecidos, las ventajas y las desventajas de los métodos propuestos por Gerson (Método G) y por ioyama/KL (Método ioK)

1º) Semejanzas. Ambos métodos se basan en el formato condicional y en macros (el evento Worksheet_SelectionChange).

2º) Ventajas y desventajas.

a) El método ioK es el indicado para una tabla de datos fija, mientras que el método G es dinámico y se acomoda al tamaño de la tabla de datos.

B) El método "ioK" siempre entregará un archivo más grande que el "G", pues el ámbito de las fórmulas condicionales del método "ioK" es toda la tabla, mientras que para el método "G", es sólo la fila activa.

c) El método "ioK" acepta copiar una celda de la tabla (o de la hoja) y pegarla en otra celda de la misma tabla. El "G" falla en ese intento.

¿La razón de ello?... pues que el método "ioK" -por ser estático- ya tiene predefinidos los formatos a aplicar. En cambio, el método "G" lo va redefiniendo en cada selección de celda.

Lo que provoca "la diferencia" es:

.Font.Bold = True

Al quitar esa propiedad ambos métodos permiten copiar y pegar "internamente", salvo que el método "ioK" resaltará las celdas con "negrita" y con color de relleno, mientras que el método "G" sólo lo hará con este segundo efecto.

__________________

En resumen:

El método "ioK" requiere la macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub[/PHP]

más la fórmula de formato condicional:

[color=#ff8c00][b]= Fila() = Celda("fila")[/b][/color]

(no he podido comprobar si esta forma es operativa para Excel en inglés)

mientras que el método "G" requiere de la macro:

[PHP]Private Sub Worksheet_SelectionChange1(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(.Row, "A"), Cells(.Row, "E"))
.FormatConditions.Add Type:=xlExpression, Formula1:=True
With .FormatConditions(1)
.Interior.ColorIndex = 6
End With
End With
End With
End Sub[/PHP]

y -en principio- no requiere "customización".

¡Bienvenido cualquier corrección y/o aporte adicional y/o comprobaciones en distintos idiomas!

Saludos, Cacho R.

Posted

Cacho

Haciendo pruebas a lo que mencionas sobre copy/paste, creo que la diferencia no es ".Font.Bold = True" si no mas bien "Exit Sub", pues con ello perdemos nuestro portapapeles, la cuestion seria como recuperarlo, se te ocurre algo? o alguien mas sabe como?

Y sobre esto

======================================================

= Fila() = Celda("fila")

(no he podido comprobar si esta forma es operativa para Excel en inglés)

======================================================

No va funcionar mas que en version "Español"

pd que interesante se puso este testeo!

Saludos nuevamente

Posted

¡Gracias! Gerson por investigar el tema del cambio de idioma.

Como esa variante para tablas fijas es sencilla de implementar (y por lo tanto práctica), deberíamos encontrar una variante válida y no dependiente del idioma del Excel.

En cuanto a lo del ".Font.Bold = True" sospecho que me quieres confundir... ¡Pero no lo lograrás! (jajajajaaj).

A ver: ¿Intentaste con tu propio archivo y el código del mensaje #8?

(Ojo que está asociado a un inexistente "Worksheet_SelectionChange1")

Saludos, Cacho R.

Posted
¡Gracias! Gerson por investigar el tema del cambio de idioma.

Como esa variante para tablas fijas es sencilla de implementar (y por lo tanto práctica), deberíamos encontrar una variante válida y no dependiente del idioma del Excel.

En cuanto a lo del ".Font.Bold = True" sospecho que me quieres confundir... ¡Pero no lo lograrás! (jajajajaaj).

A ver: ¿Intentaste con tu propio archivo y el código del mensaje #8?

(Ojo que está asociado a un inexistente "Worksheet_SelectionChange1")

Saludos, Cacho R.

Cacho como te va!

Voy por partes...

- La variante tu mismo terminaste de hacerla mas sencilla "Formula1:=True" lo recuerdas? pues funcionara en todos los idiomas

- Con o sin el famoso ".Font.Bold = True" siempre puedo copiar, pero posicionandome con el raton fuera de la tabla y le doy paste/pegar (ojo no copia el formato condicional)

- Y al respecto de ...."Worksheet_SelectionChange1") no me funcionaba hasta que (la tercera vez jaja) mire que me habias hecho una mala jugada jajaja ("me la debes!") y elimine el 1 jajaja

Saludos mi estimado (que pases un feliz/gran fin de semana)

Posted
tranquilos mis amigos... esto parece furia de titanes... jejejej

Hola! Julio (y Gerson).

Ya que mencionas a Furia de Titanes, mira la cara de Gerson después de probar -tres veces- que su Excel ya no respondía al evento SelectionChange:

[ATTACH]25300.vB[/ATTACH]

¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...!

Es que cuando estoy comparando códigos, suelo numerarlos:

Private Sub Worksheet_SelectionChange1(ByVal Target As Range)

Private Sub Worksheet_SelectionChange2(ByVal Target As Range)

Private Sub Worksheet_SelectionChange3(ByVal Target As Range)

y les voy quitando el "numerito" a medida que los voy utilizando.

Obviamente: ¡me olvidé de quitárselo al tiempo de copiar esa versión al mensaje!

¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...! ¡Sorry...!

Del mismo modo: que pasen un muy lindo fin de semana.

Saludos, Cacho R.

post-78958-145877003536_thumb.jpg

Posted

Un momento, un momento que falto yo........


Dim Fila As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = Fila Then Exit Sub
If Target.Rows.Count = 1 Then
If Fila <> 0 Then
Rows(Rows.Count).Copy Rows(Fila)
Rows(Rows.Count).Clear
End If
Fila = Target.Row
Rows(Target.Row).Copy Rows(Rows.Count)
Rows(Target.Row).Interior.Color = vbYellow
End If
End Sub
[/CODE]

Antes de "pintar" la fila de amarillo nos la guardamos en la última fila, y en el siguiente ciclo, si el nº de fila ha cambiado, restituimos la fila anterior.

Saudiños dende Santiago

Archived

This topic is now archived and is closed to further replies.

  • 108 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      184
    • Comments
      96
    • Reviews
      28

    More information about "Un juego solitario en Excel"
    Latest File
    By pegones1

    4    0

  • Crear macros Excel

  • Posts

    • Hola. Tu archivo no tiene macros. Sobre las celdas combinadas, ya que no puedes evitar su uso al no ser tus archivos, lo mejor es "des combinarlas" previo a cualquier cosa, incluso en tu misma macro (que no envías). 
    • Hola buenas tardes tengo un archivo en excel que copia varias tablas y las importa a word de manera automatica. Este selecciona las tablas en base a las filas con datos de mi columna C. pueden ser  diferentes rango de tablas. (Pero siempre mi rango es de celdas continuas y con valores continuas) Funciona muy bien. El problema que ahora tengo es que muchos archivos con tablas  tienen las celdas combinadas ya sea horizontalmento o vertical. Aqui es donde empieza mi problema ya que son formatos de origen no puedo modificarlas. Quisiera ajustar mi macro en la parte de seleccion de rango de tablas y que pueda considerar la celdas combinadas y pegarlos en word sin problema. Ya que actualmente no me pone algunas tablas o rangos, o me repite las tablas y no considera las demas. Todo esto a que en algunas no hay valores o las celdas estan combinadas.   Muchas gracias Seleccion automatica de celdas combis.xlsx
    • por si te sirve: la primera matriz (pivotarpor) al inicio los que no tienen profesor asignado (orden ascendente por omision) la segunda (2 matrices y solo unicos) en el orden de aparicion (no asignados al final) la tercera (2 matrices) omite los no asignados (tambien por orden de aparicion) unicos y suma (ayudaExcel).xlsx
    • No se si este tema va aquí, si no es así, pido disculpas. Llevo varios días dando vueltas a un fallo que me sale al exportar una tabla a xml y que no consigo resolver. El fallo que me da es que no las asignaciones no son exportables y al comprobar la asignación me dice datos no normalizados.     Libro1.xlsx
    • Buenas tardes estimado JSDJSD, muchas gracias por responder. En efecto esta parte quedo perfecta. Pero me falto indicar que la macro se ejecute dependiendo de la celda L1 ( Caliza o Mezcla). Entonces si dice Caliza aplica la macro que me enviaste, pero si dice Mezcla que haga lo siguiente: Busque el  ultimo dato de la columna K de la hoja Mezcla Adición del libro Base de datos Cementos producido 2024, con la condición de que la columna B debe ser igual a 4 y el dato lo coloque en la celda N1 de la hoja Cemento del libro Cemento. Te comento que el libro Prehomo y Base de datos Cementos producidos 2024 están en carpetas diferentes ya que estos los maneja otra área, como se enmendaría este caso por el comentarios que me enviaste de la ruta. Saludos y un fuerte abrazo   Cemento-2.xlsm
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy