¿Cómo ocultar columna dependiendo del valor de un combobox?

Tengo unos determinados valores por años en mi hoja excel y un combobox que cargo de la siguiente manera...

Private Sub Worksheet_Activate()

ComboBox1. Clear

ThComboBox4. AddItem "2012"
ThComboBox4. AddItem "2013"

end sub

Lo que necesito es que, dependiendo de la opción que haya escogido el usuario, se oculten en su totalidad las columnas N, O, P, y si escoge la opción 2013 se oculten Q, R, S... La cosa es que sea totalmente automático, es decir si el usuario escoge 2012, se ocultara N, O P, y luego SI escoge 2013, aparezcan N, O y P, pero desaparezcan Q, R, S... Y viceversa... No se si me hice entender...

1 respuesta

Respuesta
1

Estás utilizando 2 nombres de combo lo que no se entiende, en mi ejemplo solo utilicé Combobox1, ajustalo a tu caso.

Se me hace que al activar la hoja y 'limpiando' el control quizás debas mostrar todas las col, sería algo así:

Private Sub Worksheet_Activate()
ComboBox1. Clear
ComboBox1. AddItem "2012"
ComboBox1. AddItem "2013"
'opcional: volver a mostrar todas las col ??
 Columns("N:S").Select
 Selection.EntireColumn.Hidden = False
End Sub

Y luego esta otra según la selección del control Combo:

Private Sub ComboBox1_Change()
'x Elsamatilde
'para no ver el movimiento
Application.ScreenUpdating = False
'según el valor que tome el combo serán las col a mostrar
If ComboBox1.Value = "2012" Then
 Columns("N:P").Select
 Selection.EntireColumn.Hidden = True
 Columns("Q:S").Select
 Selection.EntireColumn.Hidden = False
ElseIf ComboBox1.Value = "2013" Then
 Columns("N:P").Select
 Selection.EntireColumn.Hidden = False
 Columns("Q:S").Select
 Selection.EntireColumn.Hidden = True
End If
End Sub

Sdos y si esto resuelve tu consulta no olvides finalizarla.

Faltaría seleccionar alguna celda, antes del End Sub. Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas