Atualizar automaticamente o tamanho das células do Excel em resposta ao conteúdo dinâmico

Atualizar automaticamente o tamanho das células do Excel em resposta ao conteúdo dinâmico

Contexto:Eu tenho uma planilha com um menu suspenso com categorias diferentes. A planilha também possui uma tabela cujas informações são atualizadas dependendo da categoria selecionada no menu suspenso. Algumas das categorias produzem muito texto, exigindo células grandes, e algumas possuem apenas pequenas quantidades de texto, exigindo células pequenas.

O que estou procurando:O que estou procurando é uma maneira de o tamanho da célula ser atualizado automaticamente dependendo da quantidade de texto na célula para qualquer categoria.Eu entendo como fazer isso manualmente,destacando a página inteira e clicando em ajuste automático ou clicando duas vezes nos divisores de coluna ou linha. No entanto, gostaria que isso acontecesse assim que eu selecionasse um item suspenso. A razão é que diferentes pessoas usarão esta planilha e, se não souberem que precisam atualizar manualmente os tamanhos das células, poderão perder informações críticas porque a planilha está configurada para tamanhos de células pequenos e não é óbvio que o texto foi foi cortado. Por outro lado, se eu definir a tabela para tamanhos de células muito grandes por padrão, quando for selecionada uma categoria que produz apenas pequenas quantidades de texto, a tabela será muito maior e mais pesada do que precisa ser.

Alguém conhece uma maneira de atualizar automaticamente o tamanho das células assim que a quantidade de texto nelas muda?

Obrigado!

Responder1

Faça uma macro para atualizar a largura da coluna sempre que uma célula dessa coluna for alterada.

As células mudam devido à entrada do usuário ou ao recálculo da fórmula. Você usaria um tipo diferente de macro para cada tipo de alteração. O seguinte é um exemplo típico para entradas manuais na colunaC:

Insira a seguinte macro de eventos na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
    Cells(1, "C").EntireColumn.AutoFit
End Sub

Por ser um código de planilha, é muito fácil de instalar e automático de usar:

  1. clique com o botão direito no nome da guia próximo à parte inferior da janela do Excel
  2. selecione Ver código - isso abre uma janela VBE
  3. cole o material e feche a janela do VBE

Se você tiver alguma dúvida, primeiro experimente em uma planilha de teste.

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a macro:

  1. abra as janelas VBE como acima
  2. limpar o código
  3. feche a janela do VBE

Para saber mais sobre macros em geral, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

e

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Para saber mais sobre macros de eventos (código de planilha), consulte:

http://www.mvps.org/dmcritchie/excel/event.htm

As macros devem estar habilitadas para que isso funcione!

informação relacionada