Abre el adjunto y pulsa el botón GENERAR HOJAS y luego pulsa sobre cualquier fecha del calendario para ir a la hoja deseada.
Observa que he añadido 2 botones en la hoja CALENDARIO, uno para generar las hojas y otro para eliminarlas.
También he añadido una flechita azul en las hojas generadas para volver a la hoja CALENDARIO.
Estas son las macros:
En la hoja CALENDARIO:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim d As Integer, m As Integer, a As Integer
On Error Resume Next
If IsNumeric(Target) Then
If Not Target = "" Then
x = Int((Target.Row - 6) / 9)
y = Int((Target.Column - 5) / 8) + 1
m = x * 6 + y
d = Target
a = Right([E3], 4)
Sheets(Format(d, "00") & "-" & Format(m, "00") & "-" & a).Activate
End If
End If
End Sub
En el Módulo1:
Sub GenerarHojas()
Application.ScreenUpdating = False
Application.CopyObjectsWithCells = True
Dim a As Integer
a = Right([E3], 4)
With Sheets("ORIGI")
For fecha = CDate("01/01/" & a) To CDate("31/12/" & a) '<-- Periodo a generar
.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(fecha, "dd-mm-yyyy")
[B4] = [B4] & " " & fecha
Next
End With
Volver
End Sub
'--
Sub EliminarHojas(): On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim a As Integer
a = Right([E3], 4)
For fecha = CDate("01/01/" & a) To CDate("31/12/" & a) '<-- Periodo a eliminar
Sheets(Format(fecha, "dd-mm-yyyy")).Delete
Next
End Sub
'--
Sub Volver()
Sheets("CALENDARIO").Activate
End Sub
Libro1 (15).xlsm