Marcar fila en función de columna

17/06/2006 - 13:31 por Eloy | Informe spam
Hola, necesito una función macro VB que se ejecute automáticamente en una
página donde se tiene que marcar cambiando de color una filar en función de
un valor de columna. Lo he conseguido mediante formato condicional, pero es
demasiado lento tener que ir marcando configurando las casilla, aparte que
solo se pueden 3 condiciones y necesito más

Ejemplo: Marcar de color rojo la fila B12:F12 en la que la casilla B12 es el
número mayor de la columna B6:B20

Gracias de antemano por vuestra ayuda. Un saludo

Preguntas similare

Leer las respuestas

#1 KL
17/06/2006 - 14:41 | Informe spam
Hola Eloy,

Hola, necesito una función macro VB que se ejecute automáticamente en una
página donde se tiene que marcar cambiando de color una filar en función de
un valor de columna.
Lo he conseguido mediante formato condicional, pero es
demasiado lento tener que ir marcando configurando las casilla, aparte que
solo se pueden 3 condiciones y necesito más
Ejemplo: Marcar de color rojo la fila B12:F12 en la que la casilla B12 es el
número mayor de la columna B6:B20



El Formato Condicional es cualquier cosa menos lento comparado con un procedimiento hecho en VBA :-) Casi diria que si FC es un relampago comparado con VBA. Creo que simplemente deberias estar haciendolo mal. P.ej. eb base a tu ejemplo prueba hacer lo siguiente:

1) selecciona el rango [B6:F20] desde arriba hacia abajo y de izquierda hacia derecha
2) ve al menu Formato> Formato Condicional...
3) en el 1er desplegable de la Condicion1 elige: "Formula es"
4) en el cuadro de formula pon la siguiente formula:
=Y($B6=MAX($B$6:$B$20);$B6<>"")
5) pulsa el boton 'Formato' y elige el color de trama rojo
6) pulsa Aceptar, Aceptar
7) prueba

Lo que si es verdad que FC solo tiene 3 posibles combinaciones de formatos (XL2007 tendra mas que suficientes FCs), pero el uso del codigo VBA para emular el FC trae sus efectos secundarios como p.ej. la perdida de la posibilidad de des/rehacer los ultimos cambios en la hoja, parpadeo, lentitud, posibles errores de codigo, complicaciones con detectar el cambio del valor en formulas, necesidad de habilitar macros, etc.

Si para tu aplicacion es vital (!!!) tener mas de un formato condicional y no es un simple capricho sacrificable en pro de la eficiencia, entonces revisa las siguientes conversaciones: http://tinyurl.com/j5z4j

Saludos,
KL
Respuesta Responder a este mensaje
#2 Eloy
17/06/2006 - 19:15 | Informe spam
La verdad es que con lo que he hecho con el formato condicional ya me es
suficiente (resulta que con las tres ya me vale) era por saber como hacerlo
con macro, y suponia que con un procedimiento seria mas comodo. En cuanto a
lento me referia a que tienes que andar marcado columnas y columnas, porque
lo hacia de una manera mas rudimentaria (algo asi como
=$B63=MAX($B$52:$B$67) en cada fila) que como me has dicho. Gracias por la
ayuda, me ha sido muy util. Un saludo.
Respuesta Responder a este mensaje
#3 Eloy
17/06/2006 - 19:23 | Informe spam
Igual es mucho pedir, pero alguien puede explicarme el significado de
=Y($B6=MAX($B$6:$B$20);$B6<>""), me supongo es que el resultado sea
verdadero si se cumple que alguna celda en la misma fila en la columna $B6
es maximo, pero no acabo de comprender el signifocado de $B6<>"" y en la
ayuda no consigo encontrarlo. Gracias de todas maneras. Un saludo.
Respuesta Responder a este mensaje
#4 KL
17/06/2006 - 20:53 | Informe spam
Hola Eloy,

La parte $B6<>"" devolveria VERDADERO si la celda no estuviera vacia. Esta condicion la he anadido para evitar que se te pinten todas las filas en rojo en caso de que todas las celdas en el rango B6:B20 esten vacias o contengan valores no numericos.

Saludos,
KL


"Eloy" wrote in message news:
Igual es mucho pedir, pero alguien puede explicarme el significado de
=Y($B6=MAX($B$6:$B$20);$B6<>""), me supongo es que el resultado sea
verdadero si se cumple que alguna celda en la misma fila en la columna $B6
es maximo, pero no acabo de comprender el signifocado de $B6<>"" y en la
ayuda no consigo encontrarlo. Gracias de todas maneras. Un saludo.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida