Vba para ocultar y desocultar filas
danielc0 Mensajes publicados 2180 Fecha de registro Estado Miembro Última intervención -
Hola,
Me gustaría obtener ayuda para un código VBA que permita ocultar y revelar filas en Excel.
Ver archivo adjunto.
La idea es que para cada sección (Recetas, Gastos y subcategorías de gastos), cuando el usuario haga clic en la flecha hacia abajo:
- se revelen las filas de detalle de la sección, pero solo las filas que no estén en la columna E en cero ni en la columna G en cero.
- se oculte la flecha que apunta hacia abajo.
Y cuando el usuario haga clic en la flecha que apunta hacia arriba:
- se oculten las filas de detalle de la sección
- se oculte la flecha que apunta hacia arriba
- se muestre la flecha que apunta hacia abajo
- se muestre la flecha que apunta hacia arriba
Tengo algunos conceptos de VBA (principiante) pero ahora mismo no sé cómo hacerlo.
2 respuestas
-
Hola Thibault,
He hecho un borrador para las recetas, solo hará falta hacer lo mismo para lo demás
https://www.transfernow.net/dl/20260702Mt7AgUg5/dHq5r4Ps
Saludos
-
Hola,
Modificando ligeramente la hoja, para simplificar el código VBA
https://www.swisstransfer.com/d/127480ef-6685-4330-84c7-2cd9f3887591
Daniel
-
Gracias.
Haa, eso tampoco está mal. El código parece más sencillo.
¿Es posible obtener algunas explicaciones por fragmento de código para que pueda apropiármelo y intentar reproducirlo?
Quizá una impresión errónea de mi parte, pero tengo la impresión de que si de 0€ pasamos a un monto en la columna G o I... la fila sigue siendo oculta... que VBA no tiene en cuenta que ya hay un monto y que por tanto no debe ocultar la fila.
¿No?
Pregunta tonta... ¿Cómo volver a mostrar una imagen cuando ha sido ocultada por el código VBA?
He agregado las columnas que contienen las flechas. He corregido (creo) los montos a 0. Verifica.
Pondré comentarios en el código para explicarlo cuando haya corregido posibles errores.
No sé cómo hacer visible un objeto de otra forma que no sea por macro. Selecciona la flecha y ejecútalo:
Sub test() Selection.Visible = True End Sub
https://www.swisstransfer.com/d/ea292767-8234-498e-9f22-7302fbc86ba1
Daniel
-