Hacer que funcione una macro con una hoja oculta

22/10/2006 - 04:55 por Edixon | Informe spam
Hola amigos tengo un problemita, espero puedan ayudarme.

Tengo una macro que me hace un autofiltro de un nombre x en la hoja 1
y me trae todos los datos a la hoja 2 lo que necesito es ocultar la
hoja 1(Menu formato-Hoja-ocultar) o de otra forma,pero que la macro me
siga haciendo el procedimiento igual


Nota: Cuando bloqueo la hoja y ejecuto la macro en la hoja 2 me da un
error

Gracias de antemano por su ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/10/2006 - 07:25 | Informe spam
hola, Edixon !

Tengo una macro que me hace un autofiltro de un nombre x en la hoja 1 y me trae todos los datos a la hoja 2
lo que necesito es ocultar la hoja 1... o de otra forma, pero que la macro me siga haciendo el procedimiento igual
Nota: Cuando bloqueo la hoja y ejecuto la macro en la hoja 2 me da un error



[aunque no comentas cual seria la 'utilidad' de los autofiltros en una hoja oculta] -???-

prueba/revisa/adapta/... el siguiente ejemplo:
al abrirse el libro, se protege, se ['super']oculta y se habilita el uso de macros y autofiltros en la hoja1
[nota: los aotufiltros YA estan aplicados/definidos/habilitados/... en la misma]

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

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

en un modulo de codigo 'general ==Sub Autofiltros_Hoja_Oculta()
With Worksheets("hoja1")
.[a1].AutoFilter Field:=1, Criteria1:="xyz"
End With
End Sub
Respuesta Responder a este mensaje
#2 Edixon
22/10/2006 - 16:21 | Informe spam
Perdon por no darte la infomacion completa.

El autofiltro se hace ya que en esa hoja (hoja1) hay varios nombre
iguales pero con diferentes caracteristicas
lo que ella hace es que en la hoja 2 cuando coloco un nombre x y se
ejecuta la macro en la hoja 1 se produce el autofiltro y me trae todas
las diferentes caracteristicas de dicho nombre.

Ahora el problema es que a veces me alteran los datos de la hoja 1 y
cuando busco la caracteristica de un nombre x
me trae datos errados, lo que necesito es o bloquear la hoja y se
ejecute bien la macro o si es mas facil ocultarla pero que ella sepa
que esta oculta ya que cuando la oculto(hoja1) y ejecuto la macro en
(hoja2) me produce un error. de todas formas aqui esta la macro que
estoy usando. Gracias por tu ayuda

Sub Macro1()
Dim Criterio As String
Criterio = Cells(11, 1).Text
Range("B11:D50000").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("hoja1").Select
Selection.AutoFilter Field:=1, Criteria1:=Criterio
Range("C2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("hoja2").Select
Range("B11").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("A4").Select
End Sub
Respuesta Responder a este mensaje
#3 Héctor Miguel
22/10/2006 - 21:56 | Informe spam
hola, Edixon !

El autofiltro se hace ya que en esa hoja (hoja1) hay varios nombres iguales pero con diferentes caracteristicas
lo que ella hace es que en la hoja 2 cuando coloco un nombre x y se ejecuta la macro en la hoja 1
se produce el autofiltro y me trae todas las diferentes caracteristicas de dicho nombre.
Ahora el problema es que a veces me alteran los datos de la hoja 1 y cuando busco... me trae datos errados
lo que necesito es o bloquear la hoja y se ejecute bien la macro o si es mas facil ocultarla pero que ella sepa que esta oculta
ya que cuando la oculto (hoja1) y ejecuto la macro en (hoja2) me produce un error.
de todas formas aqui esta la macro que estoy usando...



1) la macro que usas, se ejecuta bien... siempre y cuando la hoja1 NO este 'oculta' o falla en la linea que dice:
-> Sheets("hoja1").Select <= OJO: no es posibe 'seleccionar' una hoja cuando 'esta' se encuentra oculta :))

2) si revisas la propuesta en el mensaje anterior, notaras la 'diferencia' en la forma de hacer referencia a las hojas [ocultas o no] ;)

3) una 'adaptacion' [entre otras] de la macro que usas y la foma en la propuesta comentada, seria +/- como sigue:
[la ejecutas desde la hoja2]

Sub Macro1()
Application.ScreenUpdating = False
Range("b11:d50000").ClearContents
With Worksheets("hoja1") ' <= esta hoja puede [o no] estar oculta '
.Range("a1").AutoFilter Field:=1, Criteria1:=Range("a11")
.Range(.Range("c2"), .Range("c2").End(xlToRight).End(xlDown)).Copy
End With
Range("b11").PasteSpecial xlValues
Application.CutCopyMode = False
Range("a4").Select
End Sub

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

__ el codigo expuesto __
Sub Macro1()
Dim Criterio As String
Criterio = Cells(11, 1).Text
Range("B11:D50000").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("hoja1").Select
Selection.AutoFilter Field:=1, Criteria1:=Criterio
Range("C2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("hoja2").Select
Range("B11").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("A4").Select
End Sub
Respuesta Responder a este mensaje
#4 Edixon
23/10/2006 - 04:06 | Informe spam
Gracias me funciono perfecto era lo que queria.

Excelente
Respuesta Responder a este mensaje
#5 Ricaurte
23/10/2006 - 19:09 | Informe spam
la verdad yo he tenido el mismo error, al parecer no se puede trabajar con
hojas ocultas, lo que puedes hacer es tenerla oculta, cuando la vayas a usar
es habilitarla y luego de usarla ocultarla.

usate updatescreen o algo asi era, y ponlo en false para no tener lio de que
se muestre y se vea.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida