Problema con Macro

25/09/2005 - 12:14 por Savrinor | Informe spam
Tengo el siguiente Macro:



Sub ocultaporfechas()

Dim mihoja As String

Dim mifecha As Date

mifecha = Format(Now(), "dd/mm/yy")

Sheets("AVISO").Range("A24").Select

While ActiveCell <> ""

If mifecha >= ActiveCell.Offset(0, 1).Value Then

Sheets(ActiveCell.Value).Visible = xlVeryHidden

End If

ActiveCell.Offset(1, 0).Select

Wend

End Sub



si la fecha actual supera a la de la lista oculta la hoja, el problema es
que si la hoja esta renombrada por ejemplo 2003 no funciona, me interesa
tener las hojas renombras en el año. Hay alguna solución. Gracias.



Saludos Pau.

Preguntas similare

Leer las respuestas

#1 KL
25/09/2005 - 20:01 | Informe spam
Hola Pau,

si la fecha actual supera a la de la lista oculta la hoja, el problema es
que si la hoja esta renombrada por ejemplo 2003 no funciona, me interesa
tener las hojas renombras en el año.



No se si te he entendido bien y es esto lo que buscas:

Sub ocultaporfechas()
Dim mifecha As Date, mihoja As Worksheet
mifecha = Date
Sheets("AVISO").Range("A24").Select
On Error Resume Next
While ActiveCell <> ""
If mifecha >= ActiveCell.Offset(0, 1).Value Then
On Error Resume Next
Set mihoja = Sheets(ActiveCell.Value)
If mihoja Is Nothing Then _
Set mihoja = Sheets( _
Format(ActiveCell.Offset(0, 1).Value, "YYYY"))
If Not mihoja Is Nothing Then _
mihoja.Visible = xlVeryHidden
End If
ActiveCell.Offset(1, 0).Select
Wend
End Sub

Saludos,
KL
Respuesta Responder a este mensaje
#2 Savrinor
26/09/2005 - 19:21 | Informe spam
No me acaba de funcionar. Intentare explicar lo mejor posible mi problema,
el libro se compone de 2 Hojas visibles, la primera el nombre es Aviso, la
segunda tiene como nombre el año (por ejemplo 2001, 2002, 2003) que
incorpora datos de esos ejercicios, quisiera que solo estuviera visible 2003
y los otros años ocultos. Si transformo el nombres de las hojas como 1,2,3
etc. la macro actual si que me funciona, pero seria magnifico que fuero con
el nombre de los años. Adjunto las macros que estoy utilizando.

Este código va situado en el modulo normal:

Sub ocultaporfechas()
Dim mihoja As String
Dim mifecha As Date
mifecha = Format(Now(), "dd/mm/yy")
Sheets("AVISO").Range("A24").Select
While ActiveCell <> ""
If mifecha >= ActiveCell.Offset(0, 1).Value Then
Sheets(ActiveCell.Value).Visible = xlVeryHidden
End If
ActiveCell.Offset(1, 0).Select
Wend
End Sub

Este otro va situado en ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("2003").Visible = xlVeryHidden
End Sub

Private Sub Workbook_Open()
ocultaporfechas
Worksheets("2003").Visible = xlSheetVisible
Application.Goto [AVISO!A1], True
Application.Goto [2003!A1], True
Worksheets("2003").Protect _
Password:="************", _
UserInterfaceOnly:=True
End Sub

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