Ir ao conteúdo
  • Cadastre-se
JOVANCIRCARIS

Excel VBA - ocultar colunas que nao contenham os dados pre definidos no cabeçalho

Recommended Posts

Ola, estou tentando escrever um codigo no qual a partir de um cabeçalho/Titulo oculte demais colunas que nao tenham aquele cabecalho/titulo.

 

No exemplo abaixo eu tenho o cabeçalho/titulo = A; B; C; D eu gostaria de poder localizar os cabeçalhos/titulo A e C e ocultar todos outros.

 

image.png.70a45e92684accaed0f38fd31282f12c.png

 

Desde ja agradeço a ajuda;

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

@CasaDoHardware

 

A escolha tem um critério pois vou realizar esta formatação ( ocultar colunas) em varias planilhas a partir de uma planilha com um determinado cabeçalho/titulo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CasaDoHardware Entao, preciso que ele busque os Titulos "A" e "C", neste exemplo seria ocultado as colunas "B" e "D"

adicionado 13 minutos depois

@CasaDoHardware Pensei no codigo abaixo: 

 

Sub teste()

Range("A1").Select

If ActiveCell <> "A" Then
    If ActiveCell <> "C" Then
        Selection.EntireColumn.Hidden = True
    End If


End If

Range("B1").Select
If ActiveCell <> "A" Then
    If ActiveCell <> "C" Then
        Selection.EntireColumn.Hidden = True
    End If


End If

Range("C1").Select
If ActiveCell <> "A" Then
    If ActiveCell <> "C" Then
        Selection.EntireColumn.Hidden = True
    End If

End If

Range("D1").Select
If ActiveCell <> "A" Then
    If ActiveCell <> "C" Then
        Selection.EntireColumn.Hidden = True
    End If


End If

Range("E1").Select
If ActiveCell <> "A" Then
    If ActiveCell <> "C" Then
        Selection.EntireColumn.Hidden = True
    End If


End If


End Sub

 

 

ele Funciona mas acho que deve existir algo mais "inteligente" de se fazer.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sendo assim!!

 

Use este codigo.

 

Considerei o titulo na linha 1.

 

Sub ocultarcoluna()

Dim Coluna As Integer

For Coluna = 1 To Cells(1, Cells.Columns.Count).End(xlToLeft).Column

If Cells(1, Coluna).Value <> "a" _
And Cells(1, Coluna).Value <> "c" Then

Columns(Coluna).EntireColumn.Hidden = True

End If

Next Coluna


End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente:

Sub OcultaColunas()
 Dim k As Long, c As Range
  Columns.Hidden = False
  For Each c In Range("A1", Cells(1, Columns.Count).End(1))
   Select Case c.Value
   Case "A", "C"
   Case Else: Columns(c.Column).Hidden = True
   End Select
  Next c
End Sub

1. funciona para qualquer quantidade de colunas com cabeçalho

2. manterá visíveis as colunas com cabeçalho "A" e "B", acrescente quantos cabeçalhos desejar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×