Como puedo ocultar y mostrar ciertas filas a través de un botón de chek

Quiero el apoyo de ustedes como expertos tengo un archivo en Excel, en la imagen hay una pregunta que dice ¿realiza operaciones de exportación?, si se activa el check entonces que muestra las filas de la 26 a la 36 y de la 53 a la 68, y al momento de desactivar el chek que las oculte, pero también deseo que ciertas celdas queden bloqueadas para que no se puedan modificar algunas formulas

Respuesta
2

Sería algo así me parece

Sub Ocultar()
Dim rg As Range
Set rg = Range("A26:A36")&("A53:A68")
cell.EntireRow(rg).Hidden = True
If CheckBox1.Value = True Then 
Ecell.EntireRow(rg).Hidden = False
End If
Next
End Sub

Prueba y me dices 

La E de la última línea de hidden no va

Donde dice Ecells bórrale la E je je

Ignora el otro código que no funciona, te pido mil disculpas es que justo estaba en la calle y no lo había probado je je, usa este que si funciona, pégalo dentro del Checkbox

Private Sub CheckBox1_Change()
 If CheckBox1 = True Then
   Range("a26:a36,a53:a68").EntireRow.Hidden = False
   MsgBox "FILAS VISIBLES"
  Else
   CheckBox1 = False
   Range("a2:a6,a10:a18").EntireRow.Hidden = True
   MsgBox "FILAS OCULTAS"
   End If
End Sub

MIL DISCULPAS DENUEVO , PRUEBA ESTE Y ME AVISAS QUE TAN SALIO

SALUDOS =)

¡Gracias! 

Gracias, lo probare y te comento a la vez quería consultarte como puedo hacer para este mismo código que cuando desactive el checkbox borre los datos que ingrese en ese rango que oculta y muestra

Private Sub CheckBox1_Change()
  If CheckBox1 = True Then
   Range("a4:a9,a14:a21").EntireRow.Hidden = False
   MsgBox "FILAS VISIBLES"
  Else
   CheckBox1 = False
   Call ocultar
End If
End Sub
Sub ocultar()
    Dim OutPut As Integer
    OutPut = MsgBox("Esta seguro que desea ocultar las filas? Perdera todo su contenido.", vbInformation + vbYesNo, "OCULTAR FILAS")
    If OutPut = 6 Then
        'Output = 6(Yes)
    CheckBox1 = False
   Range("a4:a9,a14:a21").EntireRow.ClearContents
   Range("a4:a9,a14:a21").EntireRow.Hidden = True
    Else
        'Output = 7(No)
        CheckBox1.Value = True
    End If
End Sub

Ahi lo tienes con mensaje preguntando si esta seguro de ocultar, sino quieres el mensaje simplemente remplaza la linea "call ocultar" por estas 2 lineas

 Range("a4:a9,a14:a21").EntireRow.ClearContents
   Range("a4:a9,a14:a21").EntireRow.Hidden = True

 y borra el "sub ocultar" =)

Perdón remplaza los rangos por los tuyos que seria

 Range("a26:a36, a53:a68")

porque yo los cambie para probar la macro je je

Yo tengo este código y me funciona bien me oculta las filas y las muestra según el checkbox, pero ahora necesito que cuando desactive el checkbox se borren los datos que ingresen en las celdas P27:P34 y K55:K62, podrías ayudarme

Private Sub CheckBox1_Click()
    ActiveSheet.Unprotect "regional2018"
    If CheckBox1.Value = True Then
        Rows("26:36").EntireRow.Hidden = False
        Rows("53:68").EntireRow.Hidden = False
        Range("L17").Select
    Else
        Rows("26:36").EntireRow.Hidden = True
        Rows("53:68").EntireRow.Hidden = True
        Range("L17").Select
    End If
    ActiveSheet.Protect "regional2018", DrawingObjects:=True, Contents:=True, Scenarios:=True ' las protege
End Sub

Para limpiar esas celdas desde K55 A K62 y P27 a P34 al quitar el checkbox simplemente debajo del "ELSE" tiene que estar estas 2 líneas

Range("P27:P34", "K55:K62"). ClearContents
       Range("26:36,53:68").EntireRow.Hidden = True

Private Sub CheckBox1_Click()
    ActiveSheet.Unprotect "regional2018"
    If CheckBox1.Value = True Then
        Range("26:36,53:68").EntireRow.Hidden = False
        Range("L17").Select
    Else
       Range("P27:P34, K55:K62").ClearContents
       Range("26:36,53:68").EntireRow.Hidden = True
       Range("L17").Select
    End If
    ActiveSheet.Protect "regional2018", DrawingObjects:=True, Contents:=True, Scenarios:=True ' las protege
End Sub

Pruebalo asi y me dices =)

Recuerda que al darle los parámetros

ActiveSheet. Protect
ActiveSheet.UnProtect

lo que haces es que al desmarcar el checkbox estas bloqueando la hoja con la contraseña "regional2018" , si quieres hacer alguna modificacion en la hoja tendras que marcarla o por defecto ir a la pestaña "Revisar" y a la opcion "Desproteger Hoja" =)

ya lo intente y da error te adjunto imagen del error no se que estoy haciendo mal

Quizás sea porque tu tienes el excel 2016 y yo tengo el 2010 por eso ami me funciona así supongo yo ...

Pruébalo de esta forma haber si te funciona

Private Sub CheckBox1_Click()
    ActiveSheet.Unprotect "regional2018"
    If CheckBox1.Value = True Then
        ActiveSheet.Unprotect "regional2018"
        Rows("26:36").EntireRow.Hidden = False
        Rows("53:68").EntireRow.Hidden = False
        Range("L17").Select
    Else
       CheckBox1.Value = False
       Range("P27:P34").ClearContents
       Range("55:64").ClearContents
       Rows("26:36").EntireRow.Hidden = True
       Rows("53:68").EntireRow.Hidden = True
       Range("L17").Select
    ActiveSheet.Protect "regional2018", DrawingObjects:=True, Contents:=True, Scenarios:=True ' las protege
End If
End Sub

probalo asi haber si te funciona, te paso el bloqueo de hoja para adentro del checkpara que bloquee y desbloquee cuando lo marcas o lo desmarcas

¡Gracias! por el apoyo me funciona bien

Gracias por cada uno de tus aportes 

De nada compañero, hay que ayudarse entre todos.. ¿de qué nos sirve el conocimiento sino lo compartimos con otros?   =)

Aunque mi conocimiento es muy básico pero bue je je yo aporto mi granito

1 respuesta más de otro experto

Respuesta
1

b. Dia esta funcion te puede ser de mucha ayuda:

Rows(“12:12”).Hidden = True

MsgBox “Se ha ocultado la Fila 12”

Rows(“12:12”).Hidden = False

MsgBox “Se ha mostrado la Fila 12”

Cambia la palabra rows por columns

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas