Sabes si puedo lograr que los usuarios usen el autofiltro mientras están bloqueadas las hojas de un libro de excel?

Sebas, me ayudaste recién con una super macro muy buena; pero sabes que cuando ingreso de nuevo las hojas bloqueadas no me dejan usar el filtro. ¿Tendrás algo que me ayude?

1 Respuesta

Respuesta
1

Jaja te acabo de responder esto en la otra pregunta

Bloqueando la hoja activa

 ActiveSheet.Protect "hola", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True  'Desde la misma hoja

Bloqueando otra hoja

Sheets("Hoja1").Protect "hola", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True  'Desde la misma hoja

La segunta no le cambie la descripcion pero es desde otra hoja jeje

Muchísimas gracias. Voy a probar y te cuento. Un Abrazo.

Prueba el archivo que te envie si es eso lo que necesitas y le agregamos el filtro habiliado si deseas, un abrazo.

Si puedes ayudarme dándome la macro completa donde las tres hojas queden con contraseñas  distintas cuando salga del libro y que en cada una me permita usar filtros. 

@ereselmejor

Tenes las contraseñas en el codigo VBA es poco seguro, ya que todos que sepan entrar a VBA las pueden ver..

Aqui el codigo con las claves en VBA

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim NumHojas As Integer
    Dim i, Pass As Integer
    a = 1
    Pass1 = "Clave1" ' Coloca aqui la clave de la hoja 1
    Pass2 = "Clave2" ' Coloca aqui la clave de la hoja 2
    Pass3 = "Clave3" ' Coloca aqui la clave de la hoja 3
    NumHojas = Worksheets.Count
        For i = 1 To NumHojas
            If i = 1 Then
                Sheets(i).Protect Pass1, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
                AllowFiltering:=True
            ElseIf i = 2 Then
                Sheets(i).Protect Pass2, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
                AllowFiltering:=True
            ElseIf i = 3 Then
                Sheets(i).Protect Pass3, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
                AllowFiltering:=True
            End If
        Next i
    ThisWorkbook.Save
End Sub

Si agregas mas hojas solo agrega otra clave y otra linea en el IF

Aqui un ejemplo de hoja 4

Agrega esta linea para la clave

    Pass4 = "Clave4" ' Coloca aqui la clave de la hoja 4
   

Y esta linea para bloquear

            ElseIf i = 4 Then
                Sheets(i).Protect Pass4, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
                AllowFiltering:=True

esta ultima linea iria antes del  END IF

¡Gracias! muy útil. bendiciones

Saludos Sebas. ya probamos la macro y corre fabuloso; pero tengo un problema. No requiero que la macro guarde cambios automáticamente, es decir, necesito que excel pregunte por defecto si el usuario quiere guardar los cambios.  

Elimina esta linea

ThisWorkbook. Save

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas