KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

¿Cómo ajustar automáticamente el tamaño de una forma según el valor de una celda específica en Excel?

AutorSiluvia Fecha de modificación

En Excel, las formas —como círculos, rectángulos o gráficos personalizados— se utilizan comúnmente para mejorar visualmente informes, paneles o ilustraciones de datos. A veces, puede resultarle útil que el tamaño de una forma refleje dinámicamente el valor de una celda específica; por ejemplo, para crear indicadores de progreso, visualizaciones de estado o simplemente hacer sus informes más interactivos e intuitivos. Sin embargo, Excel no incluye una función integrada que vincule directamente el tamaño de una forma con el contenido de una celda. Este artículo presenta métodos prácticos para redimensionar formas automáticamente en función del valor de una celda determinada, ayudándole a hacer sus proyectos de Excel más dinámicos y visualmente expresivos.


Cambiar automáticamente el tamaño de una forma en función del valor de una celda especificada mediante código VBA

Para que una forma ajuste automáticamente su tamaño según el valor introducido en una celda específica, puede usar una macro VBA. Este enfoque es especialmente eficaz si desea automatizar elementos de un panel o resaltar visualmente cambios en los datos sin necesidad de ajustar manualmente cada forma. El siguiente código VBA vinculará el tamaño de una forma al valor de una celda de su hoja de cálculo.

Navegue por los documentos mediante Office Tab

Office Tab

Navegación con pestañas para Word, Excel, PowerPoint y más: como en un navegador web, con cambios fluidos dentro de una sola ventana.

Siga estos pasos:

1. Haga clic con el botón derecho en la pestaña de la hoja que contiene la forma que desea redimensionar y seleccione Ver código en el menú contextual. Esto abrirá la ventana del editor de código correspondiente a esa hoja de cálculo.

2. En la ventana de Microsoft Visual Basic para Aplicaciones, copie y pegue el siguiente código VBA en la ventana de código. Asegúrese de pegarlo en la hoja de código correspondiente a la hoja donde se encuentra su forma.

Código VBA: Cambiar automáticamente el tamaño de una forma en función del valor de una celda especificada 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

Explicación y precauciones:

  • En este código, «Óvalo 2» hace referencia al nombre de la forma que desea redimensionar. Asegúrese de que coincida exactamente con el nombre que aparece en el Panel de selección (Inicio > Buscar y seleccionar > Panel de selección).
  • El código solo se activa cuando se realiza un cambio específicamente en la celda A2 (es decir, fila 2, columna 1). Si desea utilizar otra celda, actualice estos valores en consecuencia.
  • El tamaño de la forma lo determina el valor de la celda, que representa el diámetro en centímetros. El código establece un límite máximo de 10 cm y un límite mínimo de 1 cm para evitar problemas de redimensionamiento extremos.
  • Si introduce un valor fuera de este rango (menor que 1 o mayor que 10), la forma se ajustará automáticamente al límite más cercano.
  • Si no se encuentra el nombre de la forma especificada o el valor no es un número, el código omitirá la acción sin mostrar ningún mensaje de error.

Para escenarios en los que varias formas deben redimensionarse automáticamente según valores de distintas celdas (por ejemplo, al crear una serie de indicadores visuales o medidores), puede ampliar la solución VBA como se muestra a continuación.

Código VBA: Redimensionar automáticamente varias formas en función de los valores de distintas celdas especificadas 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 importantes y consejos de uso:

1) En este código encontrará los nombres de forma "Óvalo 1", "Cara sonriente 3« y »Corazón 2". Estos hacen referencia a las formas que desea redimensionar. Asegúrese de que los nombres coincidan exactamente con los que aparecen en su Libro de Excel.
2) Las celdas A1,A2y A3controlan los tamaños de sus formas correspondientes. Puede modificar estas referencias si desea utilizar otros pares celda-forma. Para añadir más formas y celdas, basta con incluir líneas similares en la sección If...ElseIfantes de End If. Introduzca la dirección de celda y el nombre de forma correctos según sea necesario.

3. Tras modificar y guardar el código, pulse Alt+Q para cerrar la ventana de Microsoft Visual Basic para Aplicaciones y volver a su hoja de cálculo.

Ahora, cada vez que modifique el valor de la celda A2, la forma especificada «Óvalo2» se redimensionará automáticamente en tiempo real. Consulte la captura de pantalla:

 cambie el valor en una celda específica y el tamaño de la forma se modificará automáticamente

De forma similar, si actualiza los valores de las celdas A1, A2 o A3, las formas «Óvalo 1», «Cara sonriente 3» y «Corazón 2» ajustarán al instante su tamaño en función de las celdas a las que están vinculadas. Vea el ejemplo siguiente:

cambie el valor en celdas específicas y el tamaño de las formas se modificará automáticamente

Recordatorios adicionales:
- El redimensionamiento solo surte efecto cuando cambian los valores en las celdas especificadas. Si mueve o modifica manualmente una forma de modo que se pierda su punto de referencia, es posible que deba restablecer su posición.
- Solo funcionarán correctamente los valores numéricos. Las celdas vacías o con texto pueden hacer que la forma se reduzca al tamaño mínimo o no se ajuste como se espera.
- Asegúrese de que las macros estén habilitadas en su entorno de Excel, ya que las soluciones VBA requieren permisos de macro.

Nota: El tamaño de la forma deja de aumentar una vez que el valor de la celda supera 10 (tamaño máximo establecido en 10 cm). De forma similar, los valores inferiores a 1 se ajustan automáticamente al mínimo (1 cm).

Consejos para solucionar problemas: Si el redimensionamiento no funciona como esperas, comprueba cuidadosamente que los nombres de las formas y las referencias de celda coincidan exactamente, que las macros estén habilitadas y que no haya restricciones de protección en la hoja de cálculo. Si se produce un error en tiempo de ejecución, asegúrate de que las formas especificadas existan en la hoja activa y de que sus nombres estén escritos correctamente.

Sugerencia resumen:El método VBA ofrece un redimensionamiento dinámico en tiempo real, ideal para paneles interactivos e informes basados en datos. Sin embargo, requiere que el usuario conozca la nomenclatura de formas, se desenvuelva en el entorno VBA y guarde el libro como archivo habilitado para macros ().xlsm) para conservar el código. Es la opción más adecuada cuando se necesita automatización y las funcionalidades de macros del libro son aceptables.


Redimensionamiento manual de formas mediante referencia

Si solo necesita ajustar ocasionalmente el tamaño de las formas o prefiere un enfoque sencillo sin recurrir a macros, puede establecer manualmente el tamaño de la forma para que coincida con el valor de una celda siempre que sea necesario. Esta opción resulta ideal cuando la automatización no es imprescindible o cuando el uso de macros está restringido.

Haga clic en la forma que desea redimensionar y, a continuación, en el panel Formato de forma (clic con el botón derecho en la forma > Tamaño y propiedades), introduzca manualmente los valores de ancho y alto. Puede usar el valor de su celda como referencia para estas entradas. Aunque no es automático, este método es sencillo y eficaz para ajustes puntuales.

Consejo: Con este enfoque, asegúrese siempre de actualizar manualmente el tamaño de la forma cuando cambien los valores de las celdas, ya que no existe ningún vínculo entre la forma y la celda. Este método evita advertencias de seguridad relacionadas con macros, pero no permite actualizaciones visuales en tiempo real.

Listar y exportar todas las formas del Libro de Excel actual:

La utilidad Exportar gráfico de Kutools para Excel le permite listar rápidamente todas las formas del libro de trabajo actual y exportarlas todas a una carpeta designada de una sola vez, tal como se muestra en la siguiente captura de pantalla. ¡Descárguela y pruébela ahora! (prueba gratuita de 30 días)

exporte todas las formas del libro de Excel actual con Kutools


Artículos relacionados:


Las mejores herramientas de productividad para Office

🤖KUTOOLS AI Asistente: Revolucione Análisis de datos basándose 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   |   Redondeo sin usar fórmulas...
Super BUSCARV:Búsqueda vertical (VLookup) con múltiples criterios  |  Búsqueda vertical (VLookup) con múltiples valores  |   Búsqueda vertical (VLookup) entre varias hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple....
Gestor de columnas:Añadir 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   | Gestor de libros y hojas   |  Biblioteca de recursos(Texto automático)|  Selector de Fecha   |  Combinar Hojas de Cálculo  |  Cifrar/Descifrar celdas   | Enviar correos electrónicos desde una lista   |  Super Filtro   |   Filtro especial(Filtrar celdas con fuente en negrita/cursiva/tachado...) ...
Principales conjuntos de herramientas 15:12 Herramientasde texto(Agregar texto,Eliminar caracteres específicos, ...)|   50+Tiposde gráfico(Diagrama de Gantt, ...)|   40+ Fórmulas prácticas(Calcular la edad basada en la fecha de nacimiento, ...)|   19 Herramientasde inserción(Insertar Código QR,Insertar imagen desde ruta, ...)|   12 Herramientasde conversión(Convertir a palabras,Conversión de moneda, ...)|   7 Herramientasde combinación y división(Combinar filas avanzado,Dividir celdas, ...)|...y muchas más
Use Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y 40+ más idiomas.¡

Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...


Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
  • ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!

Todos los complementos de Kutools en un solo instalador.

Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.

ExcelWordOutlookTabsPowerPoint
  • Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
  • Un instalador, una licencia— configuración en minutos (compatible con MSI)
  • Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
  • Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
  • La mejor relación calidad-precio— ahorre frente a la compra individual de complementos