Ocultar o mostrar filas según valor de celda

Estoy haciendo una hoja de excel que funcionara de la siguiente forma, en las siguientes celdas capturare la cantidad de filas que quiero que se muestren o se oculten por ejemplo.

En la fila 5 (B5) capturare el nombre del producto y en la celda (C5) de esa misma fila quiero que haya un botón como un (SpinButton1), el cual me dejara seleccionar desde el 0 al 5, de manera que el resultado (linkedcell) seria en la celda (D5) entonces las filas 6,7,8,9,10 están ocultas (estas filas me servirán para capturar el contenido del producto) y si yo selecciono el valor 3, entonces ocupo que las siguientes tres filas se muestren osease D5 = 3 (el cual proviene de SpinButton1) con esto se mostrarían las filas 6,7,8 (las siguientes 3 después de la fila 5) y asi según sea el caso, si el valor es igual a 0 entonces las filas 6,7,8,9,10 se oculten, ¿cómo podría hacer esto con una macro? Para empezar supongo que debo de guardar el valor de D5 en una variable o no

1 Respuesta

Respuesta
2

Te envío una macro, para ocultar las filas 6 a 10.
Instrucciones
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / UserForm
4. Crea un botón de ComboBox, llamado ComboBox1
5. En el panel del UserForm le das dobleclik (en cualquier parte del Userform, no en el combo), y copias la macro.
6. Para ejecutarla presiona F5

'***Macro***
Private Sub ComboBox1_Change()
'Oculta el número de líneas seleccionadas
'Por.Dam
Range("C5").Value = ComboBox1.Value
linea = Range("C5").Value
    Rows("6:10").Select
    Selection.EntireRow.Hidden = True
Select Case linea
    Case 0
        Rows("6:10").Select
       Selection.EntireRow.Hidden = True
    Case 1
        Rows("6").Select
        Selection.EntireRow.Hidden = False
    Case 2
        Rows("6:7").Select
        Selection.EntireRow.Hidden = False
    Case 3
        Rows("6:8").Select
        Selection.EntireRow.Hidden = False
    Case 4
        Rows("6:9").Select
        Selection.EntireRow.Hidden = False
    Case 5
        Rows("6:10").Select
        Selection.EntireRow.Hidden = False
End Select
End Sub
Private Sub UserForm_Activate()
' Carga de números de 0 a 5 en el combo
For i = 1 To 6
    j = i - 1
    With Me.ComboBox1
    .AddItem j
    .List(.ListCount - i, 1) = i
    End With
Next
End Sub
'***Macro***

Saludos.dam

Gracias Dam

Funciono a la perfección, te agradezco mucho tu acertada, útil y rápida respuesta, esto me servirá mucho para mi archivo, te lo agradezco tanto.

Atentamente.

Ramon

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas