Macro para dar formato a celdas

Tengo una planilla donde en algunas celdas se darán cantidades de días (10, 15 ó 5, etc). AL lado de ellas a modo de una Gantt, colocaré celdas
Para cada día del mes. Entonces me gustaría una Macro que revisara las celdas que contendrán las cantidades de días y luego vaya a las celdas de los días y marque coloreándolas exactamente la cantidad de días que corresponde. ¿Es posible? ¿Hay alguna otra sugerencia que me dieran, quizá usar automatizado con Project también?

1 Respuesta

Respuesta
No acabo de entender del todo lo que quieres hacer, ¿podrías ser algo más explicito?
Deseas buscar un valor que habrá escrito en una celda POR que nos indicará un número Y de días.
Después vaya a las celdas donde están los días (supongo que a modo calendario o algo así) y pinte ese número de días en las celdas, por ejemplo si fuesen n días, pues que pintases las serie de celdas n=A1+Zn (A1, B2, C3,...).
Es una macro sencilla pero necesito saber que necesitamos para podértela pasar y explicártela.
Estimado es exacto lo que dices. Preciso lo que pido.
¿Qué exactamente necesitas que te de como info?
Ya he realizado la macro que me pedías (he estado un poco ocupado estos días, disculpa). A continuación te voy a explicar la macro que espero que entiendas cuando te la explique porque la verdad es que no es algo muy convencional esto que me pedías y he tenido que hacer algunas "maracatusas" para conseguirlo ya que era similar a realizar una especie de gráfica con las celdas de Excel.
El código es este (sólo lo que está en negrita, la cursiva es una explicación):
Dim celda As Object 'Creamos una var donde guardaremos el obj. de tipo celda
Dim i,j As Integer 'Definimos 2 variables que nos contaran el num de fila y columna recorridas
Range ("F5:AI27").ClearFormats 'Limpiamos los formatos del rango donde colorearemos
i = 4 'La posición de la fila donde empezaremos a colorear
j = 6 'La posición de la columna donde empezaremos a colorear
   For Each celda In Range ("C4:C28") 'Recorremos el rango donde estarán las cantidades de días
         If celda.Value <> Empty Then 'Comprobamos si la cantidad no está vacia en la celda
                  Do While celda.value + 5 >= j  'Si no está vacia entonces hará lo siguiente: mientras j (numero de columnas) no supere el valor de la cantidad de días + 5, que son las 5 posiciones que nos hemos movido respecto de la primera columna, por ejemplo si estamos en la B sería + 1, si fuese la C +2 y así.
Cells(i, j). Interior. Color = RGB (102, 204, 255) 'Coloreamos la celda en la que estamos actualmente en las posiciones i, j (Fila 4, Columna 6).
j = j +1 'Aumentamos una columna hasta que pintemos toda la cantidad de días, que entonces saldremos del While
                   Loop 'Cerramos el While
            End If 'Cerramos el If de arriba
            j = 6 'Volvemos a colocar la j en la primera columna a pintar
            i = i + 1 'Aumentamos la i para bajar una fila
  Next 'Cerramos el For abierto más arriba, que se irá repitiendo hasta que no recorra todas las cantidades en el rango puesto de C4:C28

End Sub 'Finalizamos la función
Y eso es todo. Si lo deseas puedes darme tu correo y te puedo enviar el archivo excel que yo he realizado y así entenderlo mejor y o modificarlo y de esta forma también cerciorarte que lo que yo he hecho era lo que tu me pedías (francamente creo que sí).
De todas formas si copias todo lo que está en negrita al realizar la macro y escribes valores dentro del rango C4, C5,..., C28 y ejecutas la macro, verás lo que hace.
Todo esto está dentro de las celdas que a mi me ha apetecido hacerlo, pero para eso te lo he explicado e intentado que lo entendieses, para que una vez con la base, el esqueleto tu lo hagas como quieras y en los rangos que quieras.
PD: Lo de RGB (102, 204, 255) ha sido un color mio al azar pero puedes poner el que quieras. La tabla la encontraras en: Colores -> Más Colores -> Personalizado
PD2: Si quieres ponerle también lineas a las celdas encima, abajo, bla bla bla, coméntamelo (si es posible en otra pregunta) que el mío está hecho así (quedaba más bonito para mi gusto :P).
Se me olvidaba, es simplemente una idea pero si creas un botón para ejecutar la Macro será mucho más cómodo ;-) que ir todo el rato a macros -> ver macros -> <seleccionar macro> ejecutar que es un rollo xD.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas