Excel - Macro para Parte diario de Bomberos

 
Vista:
Imágen de perfil de Sergio
Val: 16
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Sergio (5 intervenciones) el 13/02/2021 20:20:26
Hola a todos.

Estoy intentando actualizar una hoja de calculo que utilizo en trabajo para realizar el parte diario de guardia, en el parque de bomberos en el que trabajo. Es una hoja de excel, muy sencilla, en la que todos los días de guardia, voy colocando a los compañeros en sus lugares correspondientes. Para el trabajo diario, tenemos un software de gestión en el servicio, pero es lento, y complejo, y esta hoja de excel me facilita mucho el orden de los bomberos en los respectivos vehículos. La hoja la he simplificado, en cuanto a nombres y vehículos, para que no sea muy grande.

Bueno al lio...os cuento.

foroexcel2

El libro de Excel (os la adjunto), tiene dos hojas, una llamada "2021" y otra "parte diario". La mecánica es muy sencilla, en la hoja 2021, hay grupos de filas, que son las diferentes posiciones, "Conductor de primera", conductor de segunda, Bombero 1, etc. En cada uno de esos grupos, yo voy colocando la fecha de la próxima guardia, una por bombero y posición. En esa hoja 2021, tengo una macro, que cuando yo pongo una fecha en la celda A2, sale el nombre de todos los bomberos en sus respectivas posiciones en la fila 2. Podéis probarlo, poniendo por ejemplo, las fechas 12/02/2021. 07/02/2021. Hasta ahí lo fácil.

forotodoexcel4

Esa Macro (2021) funciona perfectamente y ahí no tengo nada que tocar, el problema reside en la hoja "parte diario".

La hoja "Parte diario", básicamente es el parte, como un documento de word, donde salen todas las posiciones de los compañeros, que previamente salen en la fila 2, en la hoja 2021. Lo he podido hacer sin macro, con unas formulas muy sencillas, pero he tropezado en lo siguiente, y es ahi, donde creo que no doy con la macro. Hay días donde hay posiciones, que están vacías, esas posiciones, me salen en el parte diario, con el valor 0 (la he configurado, para que no se vea el cero, pero vamos, que es valor 0), lo podéis comprobar en las posiciones Bombero 5, y bombero 6. Pues bien, yo lo que quiero, es una macro, que cuando una posición su valor sea cero, me esconda la fila entera. Cuando vuelva a crear otro parte diario, y en esa celda de valor cero, aparezca un nombre, entonces que si que se vea.

foroexcel3

Donde he dibujado un recuadro azul, si es cero, que toda la fila desaparezca (se oculte) y no se imprima.

He probado infinidad de macros que hay en la red, las cuales sirven para esconder una fila cuando el valor de una celda es cero, pero, no se en que me estoy equivocando, que no logro que ninguna me funcione.

Creo que es algo sencillo, pero no he podido dar con la tecla, y me va a estallar la cabeza, espero que me podáis ayudar, si necesitáis algo más de información, no tenéis mas que pedirla.

Muchas gracias por vuestro tiempo ;)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Antoni Masana (2478 intervenciones) el 15/02/2021 00:34:58
Hay varias formas de hacerlo y esta es una de ellas

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Activate()
    Dim Fila As Byte
    For Fila = 12 To 31
        If Not Cells(Fila, "A") = Empty Then
            Rows(Fila & ":" & Fila).Select
            If Cells(Fila, "B") = Empty Then
                Selection.EntireRow.Hidden = True
            Else
                Selection.EntireRow.Hidden = False
            End If
        End If
    Next
End Sub

Se ejecuta al activar la hoja Parte diario. Adjunto libro de ejemplo. Seguro que necesita algún ajuste.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sergio
Val: 16
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Sergio (5 intervenciones) el 15/02/2021 11:13:43
Muchísimas gracias Antoni, es justo lo que quería. Funciona a la perfección.

Voy a terminar de ajustar la hoja con otros detalles que tengo en mente, para dejarla como tengo pensado. Si no os importa y espero no tener que molestar demasiado, si tengo alguna otra pega, utilizare este mismo post para preguntaros alguna duda que me pudiera surgir.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sergio
Val: 16
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Sergio (5 intervenciones) el 18/02/2021 11:44:12
Buenos días a todos.

Lo primero, dar las gracias de nuevo a Antoni por su macro ya que funciona a la perfección.

He implementado la macro en la hoja de excel buena, y cuando le he dado a "Proteger la hoja" me ha salido un error. Este error no es de la macro, el error es mío, ya que no tiene sentido bloquear unas celdas (para protegerlas) y que la macro la este intentado ocultar.

El error es este:

errorexcel1

errorexcel2

El motivo de proteger unas celdas que tienen unas formulas, es porque mi otro compañero mando del turno, pues todavía tiene menos idea que yo de excel y claro, siempre corremos el riesgo de tocar y borrar algo que no debemos, así que pensé en bloquearlas y luego proteger la hoja, pues bien, cuando hago eso, salen los mensajes de error que he puesto arriba.

¿Hay forma de que pueda tener la macro de Antoni puesta y proteger la hoja? ¿Habría que incluir algo en la macro de Antoni?

Un saludo ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Antoni Masana (2478 intervenciones) el 18/02/2021 16:26:13
Se puede.

Hay que desproteger la hoja al inicio de la macro y protegerla al finalizar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Activate()
    Dim Fila As Byte
    ActiveSheet.Unprotect "Patata"
    For Fila = 12 To 31
        If Not Cells(Fila, "A") = Empty Then
            Rows(Fila & ":" & Fila).Select
            If Cells(Fila, "B") = Empty Then
                Selection.EntireRow.Hidden = True
            Else
                Selection.EntireRow.Hidden = False
            End If
        End If
    Next
    ActiveSheet.Protect "Patata" _
        DrawingObjects:=False, _
        Contents:=True, _
        Scenarios:=False
End Sub

El texto en negrita "Patata" es la palabra clave para proteger la hoja, se ha de cambiar por la que corresponda.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sergio
Val: 16
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Sergio (5 intervenciones) el 18/02/2021 18:26:35
Gracias Antoni.

Acabo de terminar de poner la macro, y me sale un error de sintaxis:


errorexcel3
errorexcel4

Justo al copiar la macro, (antes de que me saliera el error), ya me salía el texto en rojo, el mismo que ves en la imagen resaltado en rojo.

¿A que se puede deber?

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Antoni Masana (2478 intervenciones) el 18/02/2021 18:55:56
Siempre se me olvida, falta una coma,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Activate()
    Dim Fila As Byte
    ActiveSheet.Unprotect "turnoc"
    For Fila = 12 To 31
        If Not Cells(Fila, "A") = Empty Then
            Rows(Fila & ":" & Fila).Select
            If Cells(Fila, "B") = Empty Then
                Selection.EntireRow.Hidden = True
            Else
                Selection.EntireRow.Hidden = False
            End If
        End If
    Next
    ActiveSheet.Protect "turnoc", _
        DrawingObjects:=False, _
        Contents:=True, _
        Scenarios:=False
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sergio
Val: 16
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro para Parte diario de Bomberos

Publicado por Sergio (5 intervenciones) el 18/02/2021 19:00:35
Muchas gracias Antoni, ahora si

Muy agradecido, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar