Como redimensionar automaticamente uma forma com base no valor de uma célula específica no Excel?
No Excel, formas como círculos, retângulos ou gráficos personalizados são comumente utilizadas para melhorar a apresentação visual, criar painéis ou ilustrar dados. Por vezes, poderá pretender que o tamanho de uma forma reflita dinamicamente o valor contido numa determinada célula — por exemplo, para criar indicadores de progresso, visores de estado ou simplesmente tornar os seus relatórios mais interativos e intuitivos. Contudo, o Excel não oferece uma funcionalidade integrada que ligue automaticamente o tamanho de uma forma ao conteúdo de uma célula. Este artigo apresenta métodos práticos para redimensionar automaticamente formas com base no valor de uma célula especificada, ajudando-o a tornar os seus projetos no Excel mais dinâmicos e visualmente impactantes.
Alterar automaticamente o tamanho da forma com base no valor de uma célula especificada com código VBA
Para fazer com que uma forma ajuste automaticamente o seu tamanho com base no valor introduzido numa célula específica, utilize uma macro VBA. Esta abordagem revela-se especialmente eficaz para automatizar elementos de um painel ou destacar visualmente alterações nos dados, sem necessidade de ajustar manualmente cada forma. O código VBA seguinte associa o tamanho de uma forma ao valor de uma célula na sua folha de cálculo.

Office Tab
Navegação com separadores para Word, Excel, PowerPoint e muito mais — exatamente como num navegador web, com transições suaves numa única janela.
Siga estes passos:
1. Clique com o botão direito do rato no separador da folha que contém a forma que pretende redimensionar e selecione Ver Código no menu de contexto. Isto abre a janela do editor de código para essa folha de cálculo específica.
2. Na janela Microsoft Visual Basic para Aplicações, copie e cole o seguinte código VBA na janela Código. Certifique-se de que o cola na folha de código correspondente à folha de cálculo onde está a sua forma.
Código VBA: Alterar automaticamente o tamanho da forma com base no valor de uma célula especificada no Excel
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Row = 2 And Target.Column = 1 Then
Call SizeCircle("Oval 2", Val(Target.Value))
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub Explicação e precauções:
- Neste código, "Oval 2" refere-se ao nome da forma que pretende redimensionar. Certifique-se de que corresponde exatamente ao nome apresentado no Painel de Seleção (Base > Localizar e Selecionar > Painel de Seleção).
- O código só é acionado quando é efetuada uma alteração especificamente na célula A2 (ou seja, linha 2, coluna 1). Se pretender utilizar uma célula diferente, atualize estes valores em conformidade.
- O tamanho da forma é determinado pelo valor da célula, que representa o diâmetro em centímetros. O código define um limite máximo de tamanho de 10 cm e um limite mínimo de 1 cm para evitar problemas extremos de redimensionamento.
- Se introduzir um valor fora deste intervalo (inferior a 1 ou superior a 10), a forma será automaticamente redimensionada para o limite mais próximo.
- Se o nome da forma especificada não for encontrado ou se o valor não for numérico, o código ignorará a ação sem exibir qualquer mensagem de erro.
Para cenários em que várias formas precisam de ser redimensionadas automaticamente com base nos valores de células diferentes (por exemplo, ao criar uma série de indicadores visuais ou medidores), pode expandir a solução VBA conforme demonstrado abaixo.
Código VBA: Redimensionar automaticamente várias formas com base nos valores de diferentes células especificadas no Excel
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xAddress As String
On Error Resume Next
If Target.CountLarge = 1 Then
xAddress = Target.Address(0, 0)
If xAddress = "A1" Then
Call SizeCircle("Oval 1", Val(Target.Value))
ElseIf xAddress = "A2" Then
Call SizeCircle("Smiley Face 3", Val(Target.Value))
ElseIf xAddress = "A3" Then
Call SizeCircle("Heart 2", Val(Target.Value))
End If
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub Notas importantes e dicas de utilização:
If...ElseIfantes do End If. Introduza o endereço correto da célula e o nome da forma conforme necessário.3. Após modificar e guardar o código, prima Alt+Q para fechar a janela do Microsoft Visual Basic para Aplicações e regressar à sua folha de cálculo.
Agora, sempre que alterar o valor na célula A2, a forma especificada «Oval2» será redimensionada automaticamente em tempo real. Veja a captura de ecrã:

De forma semelhante, ao atualizar os valores nas células A1, A2 ou A3, as formas «Oval 1», «Cara Sorridente 3» e «Coração 2» ajustam imediatamente o seu tamanho com base nas respetivas células associadas. Veja o exemplo abaixo:

Lembretes adicionais:
- O redimensionamento só entra em vigor quando os valores nas células especificadas são alterados. Se mover ou ajustar manualmente uma forma de modo a deslocar o seu ponto de referência, poderá ter de redefinir a sua posição.
- Apenas valores numéricos produzem o efeito pretendido. Células vazias ou com texto podem fazer com que a forma encolha até ao tamanho mínimo ou não se ajuste como esperado.
- Certifique-se de que as macros estão ativadas no seu Excel, pois as soluções VBA exigem permissão para executar macros.
Nota: O ajuste do tamanho da forma deixa de aumentar assim que o valor da célula ultrapassar 10 (tamanho máximo definido em 10 cm). Da mesma forma, valores inferiores a 1 serão automaticamente definidos como mínimo (1 cm).
Dicas de resolução de problemas: Se o redimensionamento não funcionar como esperado, verifique se os nomes das formas e as referências das células correspondem exatamente, se as macros estão ativadas e se não existem restrições de proteção na folha de cálculo. Caso surja um erro em tempo de execução, confirme se as formas especificadas existem na folha ativa e se os respetivos nomes não contêm erros ortográficos.
Sugestão resumo:O método VBA oferece redimensionamento dinâmico em tempo real, sendo ideal para painéis interativos e relatórios orientados por dados. Contudo, exige que o utilizador conheça a nomenclatura das formas, domine o ambiente VBA e guarde o livro como ficheiro com macros ativadas ().xlsm) para preservar o código. Este método é mais adequado quando é necessária automação e as funcionalidades de macro do livro são aceitáveis.
Redimensionamento manual da forma através de referência
Se apenas precisar de ajustar ocasionalmente os tamanhos das formas ou preferir uma abordagem simples sem recorrer a macros, pode definir manualmente o tamanho da forma para corresponder ao valor de uma célula, sempre que necessário. Esta solução é ideal quando a automação não é essencial ou quando o uso de macros é limitado.
Clique na forma que pretende redimensionar e, no painel Formatar Forma (clique com o botão direito na forma > Tamanho e Propriedades), introduza manualmente os valores de largura e altura. Pode utilizar o valor da sua célula como referência para estas entradas. Embora não seja automático, este método é simples e eficaz para ajustes pontuais.
Dica: Com esta abordagem, certifique-se sempre de atualizar manualmente o tamanho da forma sempre que os valores das células mudarem, já que não existe ligação entre a forma e a célula. Este método evita avisos de segurança relacionados com macros, mas não permite atualizações visuais em tempo real.
Listar e exportar todas as formas no Pasta de trabalho do Excel atual:
A funcionalidade Exportar Gráfico do Kutools para Excel permite-lhe listar rapidamente todas as formas no Livro de Trabalho Atual e exportá-las todas de uma só vez para uma pasta designada, conforme ilustrado na captura de ecrã abaixo. Descarregue e experimente já! (teste gratuito de 30 dias)

Artigos relacionados:
- Como adicionar uma dica que apareça ao passar o rato sobre uma forma específica no Excel?
- Como preencher uma forma com cor de fundo transparente no Excel?
- Como ocultar ou mostrar uma forma específica com base no valor de uma célula indicada no Excel?
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos