Página 1 de 1

Macro ocultar colunas pré definidas em outra planilha

Enviado: 27 Set 2018 às 11:27
por RBShoT
Bom dia,
Estou fazendo uma macro onde oculte colunas de acordo com colunas informadas em outra planilha
as colunas que serão ocultadas vem da Sheets("MACRO") que na coluna A é informado a letra das colunas que deverão ser ocultadas.
Vamos dar um exemplo que na Sheets("MACRO") tenha os seguintes dados:
0 | Colunas à ocultar | B | C |...
1 | C
2 | F
3 | H

Nesse caso a macro entra nessa planilha e faz um while para formar a sequência que deverá ser ocultadas:
Neste caso a variável ocultar no final ficará - C:C,F:F,H:H

Inserindo os dados direto funciona:
Range("C:C,F:F,H:H").EntireColumn.Hidden = False

Inserindo a variável dentro do Range não funciona:
Range("& ocultar &").EntireColumn.Hidden = False

Veja se alguém pode me auxiliar nessa demanda.

Sub ocultarColunas()
Dim qtd As Double
Dim contador As Integer
Dim coluna As String
Dim ocultar As String
linhas = WorksheetFunction.CountA(Sheets("MACRO").Range("A2:A1048576"))
contador = 1
While contador < linhas + 1
coluna = Sheets("MACRO").Cells(contador + 1, 1).Value & ":" & Sheets("MACRO").Cells(contador + 1, 1).Value & ","
ocultar = ocultar & "" & coluna
contador = contador + 1
Wend
ocultar = Left(ocultar, Len(ocultar) - 1)

'Tire o comentário da MsgBox abaixo para exiber as colunas que serão ocultadas.
'MsgBox ocultar

'Funciona
Range("C:C,F:F,H:H").EntireColumn.Hidden = False

'Não funciona
'Range("& ocultar &").EntireColumn.Hidden = False

End Sub

Re: Macro ocultar colunas pré definidas em outra planilha

Enviado: 27 Set 2018 às 11:54
por RBShoT
RBShoT escreveu:Bom dia,
Estou fazendo uma macro onde oculte colunas de acordo com colunas informadas em outra planilha
as colunas que serão ocultadas vem da Sheets("MACRO") que na coluna A é informado a letra das colunas que deverão ser ocultadas.
Vamos dar um exemplo que na Sheets("MACRO") tenha os seguintes dados:
0 | Colunas à ocultar | B | C |...
1 | C
2 | F
3 | H

Nesse caso a macro entra nessa planilha e faz um while para formar a sequência que deverá ser ocultadas:
Neste caso a variável ocultar no final ficará - C:C,F:F,H:H

Inserindo os dados direto funciona:
Range("C:C,F:F,H:H").EntireColumn.Hidden = False

Inserindo a variável dentro do Range não funciona:
Range("& ocultar &").EntireColumn.Hidden = False

Veja se alguém pode me auxiliar nessa demanda.

Sub ocultarColunas()
Dim qtd As Double
Dim contador As Integer
Dim coluna As String
Dim ocultar As String
linhas = WorksheetFunction.CountA(Sheets("MACRO").Range("A2:A1048576"))
contador = 1
While contador < linhas + 1
coluna = Sheets("MACRO").Cells(contador + 1, 1).Value & ":" & Sheets("MACRO").Cells(contador + 1, 1).Value & ","
ocultar = ocultar & "" & coluna
contador = contador + 1
Wend
ocultar = Left(ocultar, Len(ocultar) - 1)

'Tire o comentário da MsgBox abaixo para exiber as colunas que serão ocultadas.
'MsgBox ocultar

'Funciona
Range("C:C,F:F,H:H").EntireColumn.Hidden = False

'Não funciona
'Range("& ocultar &").EntireColumn.Hidden = False

End Sub
Segue a macro que funcionou:
Sub ocultarColunas()
Dim linhas As Integer
Dim contador As Integer
Dim coluna As String
Dim ocultar As String
linhas = WorksheetFunction.CountA(Sheets("MACRO").Range("A2:A1048576"))
contador = 1
While contador < linhas + 1
coluna = Sheets("MACRO").Cells(contador + 1, 1).Value & ":" & Sheets("MACRO").Cells(contador + 1, 1).Value & ","
ocultar = ocultar & "" & coluna
contador = contador + 1
Wend
ocultar = Left(ocultar, Len(ocultar) - 1)
Range(ocultar).EntireColumn.Hidden = False
End Sub

Re: Macro ocultar colunas pré definidas em outra planilha

Enviado: 27 Set 2018 às 11:55
por osvaldomp
Código: Selecionar todos
Sub OcultaColunas()
 Dim col As Range
 Columns.Hidden = False
  For Each col In Sheets("MACRO").Range("A1:A" & Sheets("MACRO").Cells(Rows.Count, 1).End(3).Row)
   Columns(col.Value).Hidden = True
  Next col
End Sub