Saltar al contenido

Recommended Posts

publicado

Hola amigos. Tengo un problema. Os adjunto el archivo. Quiero establecer formatos condicionales basados sobre 7 posibilidades (excel 2003 solamente permite 3 posibilidades). Quiero poner color de fondo a las celdas de las columnas A,B,C y D, según sea el valor de la misma fila en la columna E.

He leido en varios foros y los que son buenos de verdad (yo no lo soy) lo hacen gracias a VBA.

En el archivo adjunto, tengo grabada la macro "FORMATO_COND", esta macro tiene guardadas las ejecuciones de excel para crear 3 formatos condicionales, y ampliar manualmente a 7 el sistema falla con el código de error 1004 (avisado que seria así por la ayuda en línea de excel).

He encontrado otras opciones en algunos foros, al parecer válidas, cuyas lineas de programación os reproduzco en las otras fichas del archivo, pero yo no se aplicar estas opciones a mi programa.

¿Alguien sabe como hacerlo? ¿Alguien es tan amable de echarme una mano? ¿Es complicadillo o qué? espero vuestras noticias. Gracias amigos.

Listado_colores.zip

publicado

En las versiones anteriores a Excel 2007 sólo es posible tener 3 formatos condicionales en la misma celda.

Si necesitas 7 debes hacerlo de otra forma. La única solución que se me ocurre es una macro que se ejecute cada vez que cambia una celda de la hoja.

Por otra parte, en los formatos que tienes actualmente, la condición hace referencia a la fila siguiente a la que está. P.e. La fila 3 está en azul (color que corresponde a la fila 4) en lugar del amarillo que marca.

Esperamos tu respuesta. Un saludo.

publicado

Gracias por tu ayuda, amigo. Sí, me he equivocado en la aplicación del formato condicional. En este post (para no liarlo más) adjunto el archivo arreglado, o sea, agradeceré a los foreros que tomen como punto de partida el archivo de este post y no el anterior. Gracias a todos.

Comentas que lo mejor seria una macro que se ejecutara cada vez que se cambia el valor de una celda... bien... planteamiento bueno. Solamente una cosa, los datos de este listado corresponden a una vinculación con bases de datos externa y se actualiza cada vez que se abre el archivo. No pasa nada, sigue siendo bueno ¿No?.

¿Cómo seria esta macro que planteas? ¿No sirven las macros planteadas en los foros indicados en el archivo?

Gracias amigo. Espero tu ayuda.

Listado_colores.zip

publicado

Te adjunto un fichero en el que he cambiado algunas cosas:

La hoja CódigoColor tiene los colores y el texto que busca en la misma celda. Este es el patrón de color que va a buscar, o sea, que si quieres cambiar el color o la descripción a mostrar, deberás hacerlo aquí. A partir de entonces, tomará este nuevo color (los anteriores conservarán el que tuvieran, si quieres cambiar pulsa F2 sobre la celda de colores).

La hoja relación continúa igual, cuando indiques el código, las celdas anteriores cambiarán.

El módulo VBA está comentado, para si quieres cambiar algo.

No sé si he sabido explicarme. Si tienes alguna cuestión o comentario, no dudes en decírmelo. Espero que te pueda haber ayudado.

Un saludo.

Ps. El fichero es .rar renombrado como .zip, puesto que no permite subirlo de esta forma.

Listado_colores_comprimido.zip

publicado

Hola Emilio

A lo largo del hilo me ha acompañado continuamente la necesidad de saber cuál es la base de aplicar un color u otro, es decir el texto en negrita indicando un color (columna E9 es lo que aparece en tus hojas, o lo que quieres es que las columnas (A a D) correspondientes a cada color se coloreen en el color indicado.

Si es así y sabiendo cúal es el criterio de asignación de colores las macros que adjuntas en tu ejemplo se podrían modificar para tu caso. En el caso contrario la solución del compañero efmc podría serte válida.

Un saludo desde Vitoria

publicado

"ioyama":

Gracias por tu interés en ayudarme. El rango de datos se recupera de una base de datos externa donde uno de los campos de esa base de datos es el campo "color" donde anoto el nombre del color con el que quiero que se pinte la fila de datos en las consultas de excel; ahora hay que traducir "la palabra en hechos" y hay que conseguir pintar el resto de celdas de la fila con el color que indico en esta celda. Aunque la opción planteada por efmc sea también válida, me gustaría madurar un poco lo que me planteas tú. Trabajo muchísimo con formatos y me gustaría aprender y entender todo aquello que tú en este caso me puedas enseñar, tendiendo en cuenta por supuesto, que soy bastante pardillo. ¿Te he contestado a lo que preguntas? Creo que sí. Espero tus noticias, si puedes. Gracias

"efmc" :

Me doy cuenta de lo pardillo que soy en temas de programación con el trabajo que me has enviado. En el archivo que me has enviado funciona de maravilla, pero intento trasladar tu trabajo al archivo original donde lo quiero llevar a cabo y tengo problemas para implantarlo. De todas formas no he podido dedicarme a esto todo el tiempo que quiero, casi seguro que hasta mañana no podré llegar a alguna conclusión. Mañana te digo algo, y confio en tu ayuda una vez sepa decirte por qué no me ha llegado a funcionar, seguro que me lo indicas en un momento. Gracias.

publicado

Hola Emilio

Entiendo como lo haces, yo a lo que me refería es que si una fila determinada debe ir en amarillo (por ejemplo) será debido a algún criterio (espero que no artístico o de presentación). Por ejemplo la fila 3 va en amarillo porque el valor de la celda B3 es mayor de 25 y menor de 50, o porque en la celda C3 se indica que el responsable es Pepe o etc., etc. es decir sabiendo los criterios se puede tener una tabla de asiganación de colores y mediante una macro (ya que hasta Excel 2007 el formato condicional sólo admite 3 condiciones, con 2007 no sé cuántos exactamente) similar a cualquiera de las que aportabas en tu ejemplo hacer que las filas se coloreen según los criterios marcados.

Un saludo desde Vitoria

P.S. Te adjunto un fichero que preparé hace tiempo para otro foro, verás que en la 3ª hoja hay unos nombres coloreados y un rango de fechas. En función de ese rango se colorean en la hoja principal los días afectados. No es exactamente tu caso sino un ejemplo de lo que te digo.

Como ya he comentado en otro mensaje, si este hilo se va a alargar quizás fuese interesante sacarlo de PRESENTACIONES y pasarlo a Macros, Funciones o General, creo que quedaría al alcance de más gente (las presentaciones no es lo que más se suele consultar en los foros, por lo menos yo)

CalendarioColoreado_io_7768_02.zip

publicado

Apreciado ioyama:

El criterio del color se basa en los valores de la celda "D", los registros de la relación tienen asignado un valor (en texto, está claro) en la columna D. Opté por crear un campo aparte denominado "color" que es el de la columna "E" en base a que hay diferentes valores de la columna "D" que van con el mismo color; como ves, solamente es por una simple cuestión de simplicidad, a la hora de hacer la macro pretendo trabajar con "un valor=un color" en vez de que un color abarque a dos o más valores, por eso creé este campo con el nombre del color. Y todos los datos/registros de la lista provienen de una base de datos externa, excel solamente los consulta, calcula totales si procede, y formatea según condicionantes (más de tres en este caso).

por otra parte, estoy de acuerdo contigo en traspasar este hilo a "macros", pero recuerda lo "pardillo" que soy. ( ¿Cómo se traspasa? )

Gracias amigo. Saludos desde Lleida.

publicado

Hola Emilio

Entendido. A medida que vayas avanzando si necesitas ayuda .... Por aquí estaremos.

En cuanto a lo de pasar el hilo al apartado adecuado .... creo que debería hacerlo el moderador del foro (no sé si es proper).

Un saludo desde Vitoria

publicado

Amigo efmc:

En primer lugar, igual que a ioyama, GRACIAS por ayudarme, sois estupendos.

Te explico: He aplicado todo lo que tú me has dicho en mi archivo y va perfectamente bien. Creo que lo he aplicado bien, los colores se me aplican a la perfeccion. En la ficha original las columnas a la izquierda no son 3, son diez; he modificado el valor en cuestión y va perfectamente. Creo que va genial tu planteamiento.

Solamente hay un problema: Tu trabajo funciona si yo voy a la columna donde está el nombre del color y allí le escribo manualmente un color de la lista; entonces se activan la macros y las se colorean tal y como yo pretendo. Pero si estos datos se recuperan de una consulta externa NO SE COLOREA NADA una vez la consulta se ha actualizado.

La solución a este problema tiene pinta como si solamente hubiera que cambiar la manera de ejecutarse esta macro... ¿NO?. También se le puede indicar a la misma macro que primero actualice la consulta en cuestión y luego pinte todos los registros según el valor de la columna del color... cierto ¿NO?

Gracias.

publicado

Hola Emilio

En el adjunto tienes una posibilidad (se ejecuta al abrir el fichero, o bien llamando a la macro Colorear, puedes poner un botón o un acceso desde teclado).

Quizás a efmc se le ocurra algo más ágil (he probado el evento Worksheet_Activate, pero no me ha convencido, probablemente no habré estado suficientemente hábil)

Un saludo desde Vitoria

Listado_colores_io_fae.zip

  • 3 months later...
publicado

Colores Formato Condicional

Buenos días, lleva varios días rompiendome la cabeza para asignar colores a las celdas cuando introduzco un dato y no me sale del todo bien o si hubiera otra forma que se pudiera hacer se lo agradecería.

Ejemplo.

Tengo que utilizar las celdas de la A1 B1 C1 D1 E1 F1 G1

* Introduzco un valor en A1 -> la celda cambia a color rojo

* Introduzco un valor en B1 -> cambia a color azul y la A1 a azul tambien

* Introduzco un valor en C1 -> cambia a amarillo, y a su vez B1 y A1 amarillo

* Introduzco un valor en D1 -> cambia a verde, y a su vez C1, B1 y A1 verde

* Introduzco un valor en E1 -> cambia a rosa, y a su vez D1, C1, B1 y A1 rosa

Si introduzco un valor en F1 (aqui sera texto 3 letras) la celda cambia color blanco

Si meto un valor en G1, color negro y que cambie a color negro a la vez F1, E1, y D1.

Un saludo y espero su ayuda. Gracias.

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
  • 109 ¿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
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      97
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    1    0

  • Crear macros Excel

  • Mensajes

    • Buenos días estimados, Tengo la siguiente consulta como obtener el promedio del rango de datos la ultima y penúltima fecha de la columna K. Ósea si tengo datos en la columna K con fecha 13-03-2025 y 12-03-2025 haga el promedio de los datos de esas fechas, pero si hay datos en la columna K con fecha 13-03-2025 y 11-03-2025 solo haga el promedio del dia 13-03-2025. El promedio debe ir en la celda M1 Anteriormente tenia en la macro la consulta del ultimo y penúltimo dato solamente sin tener en cuenta la fecha. Aqui compara los dos datos si el ultimo es menor toma ese dato si es mayor realizar el promedio. Sub Cemento() Dim Valor_1 As Single, Valor_CALIZA As Single, _ Dim Book_Moliend As Workbook, _ Book_BBDD As Workbook, _ Book_PREH As Workbook Dim Hoja_CalCto As Worksheet, _ Hoja_Caliza As Worksheet, _ Hoja_Cemento As Worksheet Dim Ruta_1 ' --- Fichero: MOLIENDA DE CEMENTO Y DESPACHOS FISICOS.xlsx Ruta_1 = "E:\Claudio\Cemento\" Application.ScreenUpdating = False Set Hoja_Cemento = ThisWorkbook.Sheets("CEMENTO") Set Book_PREH = Workbooks.Open(Ruta_1 + "PREHOMO.xlsx", ReadOnly:=False) Set Hoja_CalCto = Book_PREH.Sheets("CALIZA ADICIÓN CTO") ' --- Busca la ultima fila con datos y captura el valor With Hoja_CalCto Fila = .Cells(4, "A").End(xlDown).Row Valor_1 = 0 ' --- Ultimo dato Valor_2 = 0 ' --- Penultimo dato While Valor_1 = 0 Or Valor_2 = 0 If .Cells(Fila, "K") > 0 Then If Valor_1 = 0 Then Valor_1 = .Cells(Fila, "K") Else Valor_2 = .Cells(Fila, "K") End If End If Fila = Fila - 1 Wend End With Book_PREH.Close ' ---&--- Si el ultimo es mayor toma el ultimo If Valor_1 < Valor_2 Then Valor_CALIZA = Valor_1 Else Valor_CALIZA = (Valor_1 + Valor_2) / 2 End If Hoja_Cemento.Range("M1") = Valor_CALIZA End Sub Saludos Promedio.xlsm PREHOMO.xlsb
    • Hola mis amigos, como se encuentran, Antes que nada, gracias por tomarte el tiempo de leer mi situación. Tengo una tabla en donde se surte mercancía, el detalle esta:  Como son varios pedidos entonces, es donde se me complica un poco, a veces el cliente me pide cierta cantidad de mercancía, como no es el único, entonces quiero ver la posibilidad de mejorar este proceso, me gustaría ver si hay la posibilidad de combinar estas dos opciones, en donde si mi stock de acuerdo al pedido no cumple, entonces que surte a ciertos clientes, y la otra opción sería si de mi stock no cumple entonces que me distribuye en partes iguales la mercancía. Adjunto un archivo de ejemplo para mejor apreciación. De antemano, muchas gracias. SURTIDO DE MERCANCIAS.xlsx
    • Gracias de  todas formas, pero busco hacerlo con VBA. Son 12.000 filas a filtrar
    • Hola a ambos, @Gigi74, si te es igual conseguirlo en un rango aparte,  puedes aplicar: =APILARV(A4:D4;FILTRAR(A5:.D999;(A5:.A999=B2)+(B5:.B999=B3))) Saludos,
    • Hola de nuevo. voy a complicarlo un poco más. Si añado un segundo filtro nuevo. Me da igual que ambos filtros condicionen o no a la hora de seleccionar ambos. Si condicionan mejor, si es posible. Gracias por antelación Libro2A.xlsx
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.