No de celdas dependiendo de opción en lista despegable

Muy buenas tardes:
Estoy trabajando en un archivo cuya función principal pretende ser enlistar las pruebas que se deben hacer a un material dependiendo de la Norma que elijas, por ejemplo en una lista despegable tengo tres diferentes opciones, si elijo la No. 1 deben se van a realizar 14 pruebas, pero si elijo la No 2. Solo se van a realizar 7.
1.- Los nombres de las pruebas son diferentes, entonces necesito cambiar el texto de las celdas dependiendo si elijo la opción 1 o la opción 2 (hecho)
2.-Pero existe alguna forma en que pueda ocultar las celdas que no se están utilizando, es decir que cuando cambie a la opción 2 (7 Pruebas) las 7 filas restantes dela opción 1 se oculten y cuando se elija nuevamente la opción 1 nuevamente aparezcan
Agradezco de antemano tu ayuda
Espero tu respuesta

1 respuesta

Respuesta
1
Poder se puede hacer, pero seria necesario programar una macro y siempre intento evitarlas en la medida de lo posible :-).
Te sugeriría, por que quedara más simple, que usaras la opción de 'autoformato', así si el valor de la opción por es 'A' por ejemplo, las celdas que no necesites en vez de ocultarse se pongan en gris y se tache la letra por ejemplo.
Me gusta más este sistema por que siempre se ve la misma hoja y se sabe lo que aplica y lo que no en otro caso. Lo de ocultar filas me ha pasado que después alguien las descubre y me llega un correo diciendo que faltan pruebas o información.
De todas formas si prefieres lo de ocultarlos dímelo y vemos la macro.
Primero que nada muchas gracias por tu pronta respuesta, la verdad yo estoy de acuerdo contigo sobre que es mejor usasr siempre la misma hoja, pero lamentablemente mi jefe no, entonces si me puedes ayudar con lo de la macro te lo voy a agradecer
Saludos
Pega este código en la hoja (abre el editor de VB) y cambia las cosas que te comento en CompruebaValor, el los otros no hay que tocar nada.
Si tienes problemas me lo comentas.
Saludos.
Sub OcultaFilas(ByVal pRow1 As Integer, ByVal pRow2 As Integer)
'Variables para controlar el programa
Dim Cont As Integer
'Ocultamos
    For Cont = pRow1 To pRow2
        If Sheet1.Rows(Cont).Hidden = False Then Sheet1.Rows(Cont).Hidden = True
    Next Cont
End Sub
Sub MuestraFilas(ByVal pRow1 As Integer, ByVal pRow2 As Integer)
'Variables para controlar el programa
Dim Cont As Integer
'Mostramos
    For Cont = pRow1 To pRow2
        If Sheet1.Rows(Cont).Hidden = True Then Sheet1.Rows(Cont).Hidden = False
    Next Cont
End Sub
Sub CompruebaValor()
'Comprueba el valor de la celda y oculta o muestra las columnas en función del mismo
While 1 < 2 'Esto es un bucle infinito nunca para
    Select Case Sheet1.Cells(2, 2) 'Cambia estas coordenadas para la celda que quieras comprobar
        Case "1" 'Cambia este valor para cuando quieras ocultar
            OcultaFilas 3, 8     'Indica el rango de filas de la 2 a la 8 en este caso
        Case "2" 'Idem pero para mostrar
            MuestraFilas 3, 8     ' Debe ser igual que arriba.
        Case Else
            'no hace nada
    End Select
DoEvents 'Esto dejalo que es necesario para que no bloquee la máquina
Wend
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas