Ir ao conteúdo
  • Cadastre-se

Ocultar e/ou reexibir coluna EXCEL


Kr4ftt

Posts recomendados

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

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!