Excel - Mostrar/Ocultar Columnas alternas con un Botón que cambia el texto

 
Vista:

Mostrar/Ocultar Columnas alternas con un Botón que cambia el texto

Publicado por Ariel (3 intervenciones) el 11/02/2021 15:46:02
Buenas colegas
Tengo la siguiente Macro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Mostrar_Ocultar_Datos()
'Macros para mostrar/ocultar un rango de columnas
 
'Verifica si las columnas estan ocultas
 
If Columns("F:G").EntireColumn.Hidden = False Then
'Cambiar el texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Mostrar Columnas"
'Se ocultan las columnas
Columns("F:G").EntireColumn.Hidden = True
Else
'Cambiar texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Ocultar Columnas"
'Se muestran las columnas
Columns("A:G").EntireColumn.Hidden = False
End If
End Sub

Esta macro funciona de la siguiente manera: al hacer clic en un botón me muestra u oculta un rango de columnas (puede servir para filas si reemplazamos la palabra column por row) y al realizar la función cambia el texto entre ocultar y mostrar datos, lo cual está muy piola.
El problema es que no encuentro la manera de que me oculte columnas alternas en vez de rango, es decir en mi caso quiero ocultar las columnas A, D, E,F,G, I,J,O,P,Q.
Alguien podría indicarme como debería cambiar el código para lograrlo.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Mostrar/Ocultar Columnas alternas con un Botón que cambia el texto

Publicado por Ariel (3 intervenciones) el 11/02/2021 16:29:12
La solucion que encontré por el momento es repetir la secuencia una y otra vez por cada columna o grupo de columnas que quiero mostrar/ocultar, así entonces quedaría
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Sub Mostrar_Ocultar_Datos()
'Macros para mostrar/ocultar un rango de columnas
 
'Verifica si las columnas estan ocultas
If Columns("A:A").EntireColumn.Hidden = False Then
 
'Cambiar el texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Mostrar Columnas"
'Se ocultan las columnas
Columns("A:A").EntireColumn.Hidden = True
Else
'Cambiar texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Ocultar Columnas"
'Se muestran las columnas
Columns("A:A").EntireColumn.Hidden = False
End If
'Verifica si las columnas estan ocultas
If Columns("F:G").EntireColumn.Hidden = False Then
 
'Cambiar el texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Mostrar Columnas"
'Se ocultan las columnas
Columns("F:G").EntireColumn.Hidden = True
Else
'Cambiar texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Ocultar Columnas"
'Se muestran las columnas
Columns("F:G").EntireColumn.Hidden = False
End If
'Verifica si las columnas estan ocultas
If Columns("I:K").EntireColumn.Hidden = False Then
 
'Cambiar el texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Mostrar Columnas"
'Se ocultan las columnas
Columns("I:K").EntireColumn.Hidden = True
Else
'Cambiar texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Ocultar Columnas"
'Se muestran las columnas
Columns("I:K").EntireColumn.Hidden = False
End If
'Verifica si las columnas estan ocultas
If Columns("N:P").EntireColumn.Hidden = False Then
 
'Cambiar el texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Mostrar Columnas"
'Se ocultan las columnas
Columns("N:P").EntireColumn.Hidden = True
Else
'Cambiar texto del boton
ActiveSheet.Shapes("BColumnas").Select
Selection.Characters.Text = "Ocultar Columnas"
'Se muestran las columnas
Columns("N:P").EntireColumn.Hidden = False
End If
End Sub
Pero ¿hay alguna manera de hacerlo mas corto al código?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar