14.03.17
Buenas noches, Sandra
Como no mencionaste cómo saber qué semana ocultar, la rutina que te comparto inicia preguntándote ese dato. Bastará que le digas sólo el número.
Accede al Editor de VBA (Atajo: Alt + F11), allí inserta un módulo (Insertar-Módulo) y pega el siguiente código:
Sub OcultaSem()
LaLinea = 5 ' SANDRA, indica numero de línea donde buscar el título de cada semana
'
QueHago = InputBox("Indicar el # de semana a ocultar: " & Chr(10) & "Sólo el número" & Chr(10) & "(vacío para salir)", "INDICAR SEMANA")
If QueHago <> "" Then
cont = 0
UltCol = Cells(LaLinea, Columns.Count).End(xlToLeft).Column
Range("A1", Cells(1, UltCol + 2)).EntireColumn.Hidden = False
LaSemana = "SEM " & Trim(QueHago)
For LaColu = 1 To UltCol + 1
If Cells(LaLinea, LaColu).Value = LaSemana Then
Cells(LaLinea, LaColu).EntireColumn.Hidden = True
cont = cont + 1
End If
Next
End If
ElMensaje = IIf(QueHago = "", "Procedimiento cancelado por usuario", IIf(cont = 0, "NO SE OCULTO COLUMNA ALGUNA, porque" & Chr(10) & "no se encontró " & LaSemana & " en la fila " & LaLinea, "Se ocult" & IIf(cont > 1, "aron: ", "ó: ") & cont & " columna" & IIf(cont > 1, "s", "") & Chr(10) & "con el título: " & LaSemana))
TipoMens = IIf(cont = 0, vbCritical, vbInformation)
ElTitulo = IIf(cont = 0, "NO SE OCULTARON COLUMNAS", "TERMINADO!")
Application.ScreenUpdating = True
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub
Nota que, al principio del código, hay una variable donde le indicas en qué linea buscar el título SEM X.
Saludos
Fernando
.