KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como redimensionar automaticamente uma forma com base no valor de uma célula específica no Excel?

AutoraSiluvia Data de Modificação

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.

Navegue por documentos utilizando Office Tab

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:

1) Neste código, encontrará os nomes das formas "Oval 1", "Cara Sorridente 3« e »Coração 2". Estes referem-se às formas que pretende redimensionar. Certifique-se de que os nomes correspondem exatamente aos apresentados no seu Pasta de trabalho do Excel.
2) As células A1,A2e A3controlam os tamanhos das respetivas formas. Pode modificar estas referências se desejar utilizar outros pares célula-forma. Para adicionar mais formas e células, basta incluir linhas semelhantes na secçã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ã:

 alterar o valor numa célula específica, o tamanho da forma será alterado automaticamente

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:

alterar o valor em células específicas, o tamanho das formas será alterado automaticamente

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)

exportar todas as formas no Excel atual com o Kutools


Artigos relacionados:


As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

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.

ExcelWordOutlookTabsPowerPoint
  • 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