segunda-feira, 19 de agosto de 2013

Adaptação automática da largura das colunas ao conteúdo das células

Encontrei num fórum da internet, com a autoria de osvaldomp, um código que já testei e que funciona lindamente para conseguirmos que a largura das colunas de uma tabela se adapte ao conteúdo (quer seja texto ou numeração). Pode ajudar-nos muito por exemplo quando escrevemos os nomes dos alunos (se são compridos) ou digitamos valores, que podem ir de um a vários dígitos. Podemos formatar a nossa tabela com um valor igual para todas as colunas e depois automaticamente o programa irá alargando (ajustando) automaticamente as colunas que necessitarem ser alargadas, sem nos aparecerem os cardinais de erro e sem termos de manualmente fazer o ajuste. Poupa-nos espaço e trabalho. Vejam como é simples, seguindo o exemplo seguinte. 
a) Criamos a nossa tabela;
b) Formatamos a largura das colunas, por exemplo para o valor 5;
c) Ao introduzirmos os valores pode acontecer que se o número for grande não caiba todo e nos apareça os cardinais de erro;
 d) Para que tal não aconteça e a largura da coluna nos seja automaticamente ajustada, fazemos o seguinte: no nome da folha onde temos a tabela, clicamos com o botão direito do rato e selecionamos "Ver código";
 e) Aparece então uma janela grande em branco;
 f) Colamos nessa janela o seguinte código e fechamos a janela:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:AD10")) Is Nothing Then Exit Sub
    Columns(Target.Column).EntireColumn.AutoFit
End Sub
 Nota: No código devemos alterar o intervalo para os valores que nos interessam: neste exemplo alteramos para B2:F6, mas se quisermos que os nomes também sejam automaticamente ajustados, devemos escrever o intervalo A2:F6
g) Como podem constatar, as colunas são imediatamente (e automaticamente) ajustadas ao conteúdo que lá introduzirmos.


Sem comentários:

Enviar um comentário