Skip to main content

¿Cómo cambiar automáticamente el tamaño de una forma basado/en función del valor de una celda específica en Excel?

Author: Siluvia Last Modified: 2025-06-04

Si deseas cambiar automáticamente el tamaño de una forma basado en el valor de una celda específica, este artículo puede ayudarte.

Cambiar automáticamente el tamaño de una forma basado en el valor de una celda específica con código VBA


Cambiar automáticamente el tamaño de una forma basado en el valor de una celda específica con código VBA

El siguiente código VBA puede ayudarte a cambiar el tamaño de una forma específica basada en el valor de una celda en la hoja de trabajo actual. Por favor, sigue los siguientes pasos.

1. Haz clic derecho en la pestaña de la hoja con la forma cuyo tamaño deseas cambiar y luego haz clic en Ver código en el menú contextual.

2. En la ventana de Microsoft Visual Basic para Aplicaciones, copia y pega el siguiente código VBA en la ventana de Código.

Código VBA: Cambiar automáticamente el tamaño de una forma basado en el valor de una celda específica en 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

Nota: En el código, “Oval 2” es el nombre de la forma cuyo tamaño cambiarás. Y Fila = 2, Columna = 1 significa que el tamaño de la forma “Oval 2” cambiará según el valor en A2. Por favor, cámbialos según sea necesario.

Para cambiar automáticamente el tamaño de múltiples formas basadas en diferentes valores de celdas, por favor aplica el siguiente código VBA.

Código VBA: Cambiar automáticamente el tamaño de múltiples formas basadas en diferentes valores de celdas específicas en 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) En el código, “Oval 1”, “Smiley Face 3” y “Heart 3” son los nombres de las formas cuyos tamaños cambiarán automáticamente. Y A1, A2 y A3 son las celdas cuyos valores usarás para cambiar automáticamente el tamaño de las formas.
2) Si deseas agregar más formas, por favor agrega las líneas "ElseIf xAddress = "A3" Then" y "Call SizeCircle("Heart 2", Val(Target.Value))" encima de la primera línea "End If" en el código. Y cambia la dirección de la celda y el nombre de la forma según tus necesidades.

3. Presiona simultáneamente las teclas Alt + Q para cerrar la ventana de Microsoft Visual Basic para Aplicaciones.

A partir de ahora, cuando cambies el valor en la celda A2, el tamaño de la forma Oval 2 cambiará automáticamente. Ver captura de pantalla:

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

O cambia los valores en las celdas A1, A2 y A3 para ajustar automáticamente el tamaño de las formas correspondientes “Oval 1”, “Smiley Face 3” y “Heart 3”. Ver captura de pantalla:

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

Nota: El tamaño de la forma ya no cambiará cuando el valor de la celda sea mayor que 10.


Listar y exportar todas las formas en el libro actual de Excel:

La utilidad Exportar gráficos de Kutools para Excel te ayuda a listar rápidamente todas las formas en el libro actual, y puedes exportarlas todas a una carpeta específica de una vez, como se muestra en la siguiente captura de pantalla. ¡Descarga y pruébalo ahora! (30-día de prueba gratuita)

export all shapes in current Excel by kutools


Artículos relacionados:

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...


Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!