Saltar al contenido

Worksheet_calculate + condicionales para formas


Emasd

Recommended Posts

publicado

Hola a todos!

Mi primer tema acá, espero sean comprensivos si se me pasa por alto alguna normativa y desde ya muchas gracias por la ayuda!

Paso a comentarles:

Estoy trabajando sobre unos indicadores de métricas de la empresa y necesito colorear según el resultado de una fórmula en una celda, una forma (en este caso, un círculo).

Ya estuve intentando solucionarlo, usando el evento Worksheet_Change, como estuve viendo en otros post que trataban el tema de una manera similar y en realidad, no era 100% como lo necesito yo, ya que el dato proviene del resultado de una fórmula.

El problema que se me presentó, es que cada vez que quiero que se modifiquen los indicadores, tengo que seleccionar la celda que tiene la fórmula y presionar "Enter" para que se actualice.

El ejemplo de la secuencia sería así:

*Las celdas x, y, z reciben los resultados de sus correspondientes fórmulas que puede variar entre 0 y 1.

*Si el resultado para x es 1, la autoforma correspondiente a la celda, se debería colorear de verde.

*Si el resultado para x es , la autoforma correspondiente a la celda, se debería colorear de rojo.

*Si el resultado para y es 1, la autoforma correspondiente a la celda, se debería colorear de verde.

*Si el resultado para y es , la autoforma correspondiente a la celda, se debería colorear de rojo.

*Si el resultado para z es 1, la autoforma correspondiente a la celda, se debería colorear de verde.

*Si el resultado para z es , la autoforma correspondiente a la celda, se debería colorear de rojo.

Reitero mi agradecimiento, espero que me puedan ayudar y haber sido lo suficientemente claro con la descripción del problema. En caso de que necesiten mas especificaciones, estoy atento para darlas.

Saludos!

publicado

@[uSER=143023]Riddle[/uSER], justamente, en ese ejemplo no habría mucha diferencia entre la celda con formato condicional y la autoforma. Por eso es que en realidad lo hice para que vean a los efectos como es que mas o menos sería. En el trabajo real, si o si necesito que sea una autoforma.

Saludos!

publicado

amigo Emasd, revisando lo que quieres, la solución del amigo (un saludo) Riddle es interesante, sin embargo no me parece muy buena idea tener una macro ejecutandose constatemente buscando cambios que posiblemente ni se den, bueno es mi opinion.

ahora te pregunto, esa formula por lo que veo se va actualizar siempre que se realice un cambio en la hoja 2 (sea de la forma que sea), pues bien, por que no adaptas la macro del amigo Riddle para que se ejecute en el evento Worksheet_Change de la hoja 2?, pienso que sería lo más fácil según lo que quieres; aunque mas fácil es la primera opcion que él planteo pero no te sirve ya que tiene que ser obligatorio una autoforma; suerte y esperemos que el amigo Macro Antonio te aporte una solucion satisfactoria

publicado

_____________________________________________________________________

Pues aquí estamos.

En el adjunto, cada vez que cambies un valor en cualquier celda de las columnas "E" o "G" de la Hoja1, se actualizará la autoforma.

Te dejo una hoja con los códigos de la autoformas por si quieres cambiarla.

También hay una pequeña macro que recompone todas las autoformas.

_____________________________________________________________________

Formato condicional con autoforma.xls

publicado

Muchísimas gracias a todos! La solución con el timer si bien es válida, quizás al ejecutarse un macro cada 1 segundo afecte de alguna manera el desempeño, pero desde ya te agradezco mucho igualmente @[uSER=143023]Riddle[/uSER]

P.D: Muy útil el anexo con los códigos de las autoformas.

publicado

buenas, excelente la solucion Macro Antonio (no podia ser de otra manera jejejeje), sin embargo veo un pequeño problema, según lo que dice el amigo Emasd la columna G (¿Pagó?) es una formula que se actualiza de otra hoja, y si es así, esta solución funcionara solamente si se cambia la info en la hoja2 y luego se hace algun cambio en la columna 5 de la hoja1; si se hace al contrario, se actualiza la hoja1 y luego la hoja2, los colores de las autoformas NO cambiaran, me equivoco??.

ahora, si el dato de la columna G se coloca manualmente, perfecto, la solución funcionara perfectamente cada vez que se haga un cambio sobre la columna G sin problemas.

por eso yo platie en mi mensaje anterior que se podía usar el evento Worksheet_Change de la hoja 2, así cuando se actualice la columna 2 de esa hoja, se hace el proceso de actualizar las autoformas.

nota: excelente los codigos de las autoformas y las forma de agregarla, yo lo hacia de una manera diferente jejeje, gracias nuevamente amigo Macro Antonio

publicado

Tal cual, me quedé observando bien la fórmula una vez que comenté, y acá se me presenta el mismo problema que tenía antes. Que es que para actualizar las autoformas se tiene que hacer "Enter" en la celda de la que la autoforma toma el valor.

Gracias @[uSER=133908]bigpetroman[/uSER] por notar ese detalle!

publicado

De hecho, me gustaría agregar, que en lo que estuve investigando yo, mas que el evento "worksheet_change" se necesitaría el de "worksheet_calculate" que técnicamente, cada vez que se realiza un cálculo nuevo en la hoja, se dispara.

Saludos!

publicado

.

@[uSER=164605]Emasd[/uSER], la solución no pasa por usar el evento Calculate, si no, que debería ir en la línea que apunta @bigpetroman, es decir, utilizar el evento Change de la Hoja2.

Ya tienes la macro que genera la autoforma, solo debes adaptarla.

Saludos a todos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.