Botón Añadir Fila en última fila con algún dato - Macro

Estoy algo perdido en el trabajo y no logro resolver este problema que me ha planteado mi jefe.

Tengo una GANTT con filas que representan fases de color azul y cada fase tiene tareas asociadas tareas (hay varias fases y cada fase tiene varias tareas).

Necesito una macro, que me permita lograr, que en la última fila que haya datos aparezcan de forma automática dos botones que me permitan crear nuevas filas o bien de fase o bien de tarea, según me interese un tipo u otro.

En el caso de clicar en el botón para crear la fila de tarea, esta tendrá un fondo blanco.

En el caso de clicar en el botón para crear la fila de fase, esta tendrá un relleno de color azul y necesito que esta fila tenga varias fórmulas predefinidas (si por ejemplo la fila 9 de excel es de fase):

En la celda D9 necesitaré que aparezca una fórmula para saber la fecha de inicio de esa fase, es decir el MIN de todas las fechas de inicio ingresadas en las Tareas de esa fase.

En la celda E9 necesitaré que aparezca una fórmula para saber la fecha de fin de esa fase, es decir el MAX de todas las fechas de fin ingresadas en las Tareas de esa fase.

En la celda F9 necesitaré que aparezca una fórmula para saber la fecha de fin real de esa fase, es decir el MAX de todas las fechas de fin reales ingresadas en las Tareas de esa fase.

En la celda H9 necesitaré que aparezca una fórmula para saber el %progreso de esa fase, es decir el PROMEDIO de todos los porcentajes ingresados en las Tareas de esa fase.

No sé cómo puedo poner todas estas fórmulas de forma que los valores de la fila fase se vayan actualizando automáticamente conforme vaya creando tareas nuevas en esa fase. Así mismo, en el caso de que una fase no tenga ninguna tarea aparecerá todo vacío.

Adjunto una imagen de cómo quedaría la GANTT con los botones:

Muchísimas gracias de antemano. Ojalá podáis ayudarme, os estaré eternamente agradecido.

1 Respuesta

Respuesta
2

En primer lugar te recomiendo no insertar los botones entre las filas, porque te aseguro que te traerá más problemas que beneficios. Los objetos se colocan por encima de las celdas y eso hará que si eliminas o insertar otras en algún momento, los objetos quedan ... y se les pierde de vista y de control.

Por lo tanto, podrías utilizar algunas de las siguientes opciones:

1- Una barra con botones de tareas en fila 1 (ver img1)

2- Una Ribbon o barra personalizada (ver img2)

3- Llamar a las diferentes macros desde el menú Programador/Desarrollador (img 3)

4- Utilizar un atajo de teclado. Desde la misma ventana de la img 3, botón Opciones, asignar una letra a cada macro.

Te dejo la macro para el botón para Crear Tareas. Entiendo que solo debe quitar relleno a la primera fila libre. Si requiere de algún otro ajuste puedes agregarlo allí mismo o comentame para agregarte la instrucción necesaria.

Sub CrearTarea()
'x Elsamatilde
'obtener la última fila ocupada
filx = ActiveSheet.UsedRange.Rows.Count
'siempre solicitar confirmación antes de Insertar/Eliminar filas
sino = MsgBox("¿Confirmas crear una nueva fila para Tareas?", vbQuestion + vbYesNo, "Confirmar")
'si no es SI cancela
If sino <> vbYes Then Exit Sub
'es TArea, solo fondo blanco y se posiciona en col A de la nueva fila
Range("A" & filx + 1).EntireRow.Interior.Pattern = xlNone
Range("A" & filx + 1).Select
End Sub

Como son muchas las tareas para una sola consulta, por favor analiza, resuelve y comenta ésta primero. Luego podrás dejar una nueva consulta en el tablón para el segundo botón.

Nota: Para crear una ribbon te invito a mirar los videos N° 4 y 5 (32 bits) y N° 52 (64 bits) desde mi canal.

Muchísimas gracias Elsa, está muy clara la explicación. Voy a tomar tu recomendación y voy a crear las tareas con botones, los cuales tendrán asignada la macro que has creado.

Para añadir fila, he creado un botón con tu macro y funciona perfectamente, el problema que tengo es que la fila que necesito añadir, tiene campos con fórmulas y un formato concreto. Te defino lo que necesito, a ver si es factible hacerlo o no.

Cuando clique en crear tarea, me interesa que se cree una fila nueva con relleno azul y bordes blancos desde la columna D hasta la T.

A poder ser también sería ideal que en la columna C (que voy a ocultar) me escribiera un "1" ya que así puedo identificar esta fila y darle formato para otra parte que he diseñado con condicionales, donde pondré el GANTT con barras (ver imagen más abajo). 

Por último, y esta es la parte que no sé si es factible, tendría que poner fórmulas en cada campo de la fila. Me explico mejor. Esta fila azul, es una especie de fase y que está compuesta por tareas. Por lo tanto, esta fila azul se autocompleta con lo que vaya rellenando en cada una de las tareas que vaya añadiendo. Las fórmulas son MAX, MIN, PROMEDIO, etc. no son complejas, pero el problema es que no sé cuántas tareas tendré asociadas a esa fase, por lo tanto debe estar vivo e ir tomando todos los valores de todas las tareas asociadas a esa fase que vaya añadiendo. Las tareas asociadas a una fase terminan cuando empieza otra fase (otra fila azul) o bien cuando finaliza el proyecto (esa sería la última fase del proyecto).

Te pongo un listado con las fórmulas que he diseñado para cada campo:

Fecha Inicio: =SI(MIN(E10:E14)=0;"";MIN(E10:E14))

Fecha Fin: =SI(MAX(F10:F14)=0;"";MAX(F10:F14))

Fecha Fin Real: =SI(MAX(G10:G14)=0;"";MAX(G10:G14))

% Progreso: =SI.ERROR(PROMEDIO(I10:I14);"")

Retraso (días): =SI.ERROR(SI(DAYS(G9;F9)=0; ""; DIAS.LAB(F9;G9));"")

Esas son todas las fórmulas, el resto son campos a rellenar de forma manual. 

Te pongo una imagen de lo que tengo ahora, para que te hagas una idea de lo que estoy trabajando:

Muchísimas gracias por tu apoyo¡¡¡ Es de gran ayuda¡

Como te comenté antes, son muchas tareas para una sola consulta.

Hasta aquí ya te resolví los siguientes temas ( ya veo que marcaste una valoración ;(

- El tema de la ubicación de los botones.

- La macro para el botón de Tareas, que parece que resuelve lo que solicitaste antes:

En el caso de clicar en el botón para crear la fila de tarea, esta tendrá un fondo blanco.

Y la del color azul era para el botón de fase, a la que hay que agregar formatos y fórmulas.

En el caso de clicar en el botón para crear la fila de fase, esta tendrá un relleno de color azul .

Como es mucha la tarea para una sola consulta y a mí no me dan los tiempos, te había solicitado que dejes una nueva consulta en el tablón. Seguramente alguien más podrá aportar un tiempo para tu caso.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas