Skip to main content

Como alterar automaticamente o tamanho da forma com base/dependente do valor de uma célula específica no Excel?

Author: Siluvia Last Modified: 2025-06-04

Se você deseja alterar automaticamente o tamanho da forma com base no valor de uma célula específica, este artigo pode ajudá-lo.

Alteração automática do tamanho da forma com base no valor de uma célula específica com código VBA


Alteração automática do tamanho da forma com base no valor de uma célula específica com código VBA

O seguinte código VBA pode ajudá-lo a alterar o tamanho de uma determinada forma com base no valor de uma célula específica na planilha atual. Por favor, siga os passos abaixo.

1. Clique com o botão direito na guia da planilha com a forma cujo tamanho precisa ser alterado e, em seguida, clique em Visualizar Código no menu de contexto.

2. Na janela Microsoft Visual Basic for Applications, copie e cole o seguinte código VBA na janela de Código.

Código VBA: Alteração automática do tamanho da forma com base no valor de uma célula específica 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

Observação: No código, “Oval 2” é o nome da forma cujo tamanho será alterado. E Linha = 2, Coluna = 1 significa que o tamanho da forma “Oval 2” será alterado com base no valor em A2. Altere-os conforme necessário.

Para redimensionar automaticamente várias formas com base em diferentes valores de células, aplique o seguinte código VBA.

Código VBA: Redimensionamento automático de múltiplas formas com base em diferentes valores de células específicas 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:

1) No código, “Oval 1”, “Smiley Face 3” e “Heart 3” são os nomes das formas cujos tamanhos serão alterados automaticamente. E A1, A2 e A3 são as células cujos valores serão usados para redimensionar automaticamente as formas.
2) Se você quiser adicionar mais formas, adicione as linhas "ElseIf xAddress = "A3" Then" e "Call SizeCircle("Heart 2", Val(Target.Value))" acima da primeira linha "End If" no código. Altere o endereço da célula e o nome da forma conforme suas necessidades.

3. Pressione simultaneamente as teclas Alt + Q para fechar a janela Microsoft Visual Basic for Applications.

A partir de agora, quando você alterar o valor na célula A2, o tamanho da forma Oval 2 será alterado automaticamente. Veja a captura de tela:

 change the value in a specific cell , the size of shape will be changed automatically

Ou altere os valores nas células A1, A2 e A3 para redimensionar automaticamente as formas correspondentes “Oval 1”, “Smiley Face 3” e “Heart 3”. Veja a captura de tela:

change the value in a specific cells , the size of shapes will be changed automatically

Observação: O tamanho da forma não será mais alterado quando o valor da célula for maior que 10.


Listar e exportar todas as formas na pasta de trabalho atual do Excel:

O utilitário Exportar Gráficos do Kutools para Excel ajuda você a listar rapidamente todas as formas na pasta de trabalho atual, e você pode exportá-las todas de uma vez para uma pasta específica, como mostra a captura de tela abaixo. Faça o download e experimente agora! (30-dia de teste grátis)

export all shapes in current Excel by kutools


Artigos relacionados:

Melhores Ferramentas de Produtividade para Office

🤖 Assistente AI do KUTOOLS: Revolucione a 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
Recursos Populares: Encontrar, Destacar ou Marcar Duplicatas | Excluir Linhas em Branco | Combinar Colunas ou Endereço sem Perder Dados | Arredondar...
Super PROC: PROC com Múltiplos Critérios | PROC com Múltiplos Valores | Procura em várias planilhas | Correspondência Fuzzy...
Lista Suspensa Avançada: Crie rapidamente uma Lista Suspensa | Lista Suspensa Dependente | Lista Suspensa com Múltipla Seleção...
Gerenciador de Colunas: Adicionar um Número Específico de Colunas | Mover Colunas | Alternar Estado de Visibilidade das Colunas Ocultas | Comparar Intervalo & Colunas...
Recursos em Destaque: Grade de foco | Visualização de Design | Barra de fórmulas aprimorada | Gerenciador de Pasta de trabalho & Planilha | Biblioteca de AutoTexto | Selecionador de Data | Mesclar Dados | Criptografar/Descriptografar Células | Enviar Email por Lista | Super Filtro | Filtro Especial (filtrar negrito/itálico/tachado...)...
Top15 Conjuntos de Ferramentas:12 Ferramentas de Texto (Adicionar Texto, Excluir Caracteres Específicos, ...) | Mais de50 Tipos de Gráficos (Gráfico de Gantt, ...) | Mais de40 Fórmulas Práticas (Calcular a idade com base na data de nascimento, ...) |19 Ferramentas de Inserção (Inserir Código QR, Inserir Imagem a partir do Caminho, ...) |12 Ferramentas de Conversão (Converter em Palavras, Conversão de Moeda, ...) |7 Ferramentas de Mesclar & Dividir (Mesclar Linhas Avançado, Dividir Células, ...) | ... e muito mais

Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...


O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho

  • Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
  • Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!