Usar autofiltro en hoja portegida por vusla basic

25/04/2006 - 19:00 por Daniel Padilla Cañamero | Informe spam
Tengo este codigo q resalta las filas de la hoja en la q trabajo pero le
acabo de poner autofiltro para una mejor busqueda pero no se puede usar porq
la hoja esta protegida y debe de estar asi me podrian ayudar para q la hoja
trabajara bien estando protegida, con resalte de filas y q se pueda usar el
auto filtro, gracias de antemano...


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Union(Selection, Range("b15:ip37")).Address =
Range("b15:ip37").Address Then
Resalta
End If
End Sub

Private Sub Resalta()
Dim R As Long
Dim C As Long
Dim X As String
R = ActiveCell.Row
C = ActiveCell.Column

ActiveSheet.Unprotect "indesign2004creativedanyel"

Range("b15:ip37").Interior.ColorIndex = 0
Range("b" & R & ":ip" & R).Interior.ColorIndex = 19
ActiveSheet.Protect "indesign2004creativedanyel"

End Sub


Saludos Cordiales
Daniel Padilla Cañamero
Lima-Perú
 

Leer las respuestas

#1 Héctor Miguel
26/04/2006 - 03:08 | Informe spam
hola, Daniel !

1) aunque no mencionas la version de excel que estas usando, es posible que de haberse 'aprovechado' [p.e.]
la carcteristica de habilitar [o permitir al usuario] el uso de los autofiltros en una hoja protegida [xp o 2003]...
-> el estar [el codigo] des/re/protegiendo la hoja, se pierde [por omision] la asignacion de esta caracteristica :-((

2) [creo que] seria mejor si proteges la hoja Y 'autorizas' el uso de los autofiltros en el evento '_open' del libro ;)

3) el codigo que estas usando para 'colorear' la fila correspondiente [toma muy en cuenta que]...
esta 'vaciando' la pila de niveles para un des-hacer [undo, ctrl+Z] y estas 'perdiendo' esta caracteristica :-((

4) prueba a usar en su lugar una combinacion entre formatos condicionales y un 'ligerisimo' codigo en el evento '_selectionchange'

5) van las 'propuestas' :)) [suponiendo que estamos hablando de 'hoja1' en el libro en cuestion...

A) en el modulo de codigo del libro [ThisWorkbook]...
Private Sub Workbook_Open()
With Worksheets("Hoja1")
.Protect PassWord:="indesign2004creativedanyel", UserInterfaceOnly:=True
.EnableAutoFilter = True
End With
End Sub

nota: si se trata de varias hojas... habria que modificar 'igeramente' este codigo ;)

B) en el modulo de codigo de 'esa' hoja...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub

C) en 'esa' hoja, -> selecciona el rango al que se aplicara el color a la fila por formatos condicionales [B15:IP37]
-> usa [menu] formato / formato condicional...
-> pon una condicion 'de formula' y utiliza la siguiente: -> =celda("fila")=fila()
-> aplica el formato de tu preferencia [p.e. el color de trama amarillo-bajito #19, bordes, fuente, etc.]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

___ la consulta original ___
... este codigo... resalta las filas de la hoja en la q trabajo
... le acabo de poner autofiltro para una mejor busqueda pero no se puede usar porq la hoja esta protegida
... q la hoja trabajara bien estando protegida, con resalte de filas y q se pueda usar el auto filtro...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Union(Selection, Range("b15:ip37")).Address = Range("b15:ip37").Address Then
Resalta
End If
End Sub
Private Sub Resalta()
Dim R As Long
Dim C As Long
Dim X As String
R = ActiveCell.Row
C = ActiveCell.Column
ActiveSheet.Unprotect "indesign2004creativedanyel"
Range("b15:ip37").Interior.ColorIndex = 0
Range("b" & R & ":ip" & R).Interior.ColorIndex = 19
ActiveSheet.Protect "indesign2004creativedanyel"
End Sub

Preguntas similares