Ir ao conteúdo

Ocultar e/ou reexibir coluna EXCEL


Kr4ftt

Posts recomendados

Postado

Bom Dia!

Estou com a seguinte duvida:

tem como fazer uma macro "dinâmica"?

Digo assim:

Tenho uma linha aonde o usuário coloca as datas, mas gostaria que ele mostrasse apenas um campo (uma coluna). Quando o usuário digita algo nesse campo, a próxima coluna aparece, liberando um espaço para que ele digite a próxima data.

Atualmente eu somente sei fazer macros que precisam de ativação, mas acredito que exista uma forma de fazer uma macro que funcione a partir de um trigger, no caso, digitar algo naquela célula especifica.

Desde já muito obrigado

Postado

Você pode fazer direto no código da planilha ao invés de um módulo.

Envie uma cópia de sua planilha e explique melhor quais células serão preenchidas e quais as colunas que serão 'movimentadas'.

A propósito, por que não fazer com um formulário? Complicado demais?

Abraços.

Postado

segue:

http://www.mediafire.com/view/?uxogr3vddzsw6d9

Resumindo, gostaria que aparecesse apenas duas colunas, e assim que fosse preenchida a segunda coluna, a terceira, e assim em diante

e... eu nao sei se um formulário se aplicaria, tenho uma outra macro que copia as informações desta planilha e exporta para um banco de dados (no excel mesmo)

tavelz se eu fizesse tudo como um formulário... mas de novo, nao tenho conhecimento

Postado

Clique direito no nome da aba, Exibir Código.

Na janela em branco que surgir cole:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

'determina primeira célula vazia na linha 4
Dim col As Long
col = Cells(4, Columns.Count).End(xlToLeft).Offset(0, 1).Column

'exibe todas as colunas
Cells.EntireColumn.Hidden = False

'oculta as desnecessárias
Range(Cells(1, col + 1), Cells(1, Columns.Count)).EntireColumn.Hidden = True

Application.ScreenUpdating = True
End Sub

Alt Q para voltar ao Excel. A macro roda ao selecionar células.

A linha 4 é a questão: escreva algo em C4 e a coluna D fica visível, e assim por diante.

O contrário também se aplica: apague o conteúdo de C4, selecione outra célula e a coluna C ficará invisível.

Abraços.

Postado

Nossa! perfeito! funcionou que é uma beleza!

agora gostaria de saber se tem como colocar varios... você viu ali que tem varios, nao so as datas, mas a cidade e etc...

tem como colocar mais de um argumento?

Postado

Você quer dizer mais de uma linha como parâmetro?

Tem sim, pode-se criar um IF antes de exibir e ocultar as colunas.

Veja:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False

'determina primeira célula vazia na linha 4
Dim col As Long
col = Cells(4, Columns.Count).End(xlToLeft).Offset(0, 1).Column

'se as células das linhas 3, 4 e 5 estiverem preenchidas
If Cells(3, col - 1) <> "" And Cells(4, col - 1) <> "" _
And Cells(5, col - 1) <> "" Then
'exibe todas as colunas
Cells.EntireColumn.Hidden = False

'oculta as desnecessárias
Range(Cells(1, col + 1), Cells(1, Columns.Count)).EntireColumn.Hidden = True
End If

Application.ScreenUpdating = True
End Sub

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!