¿Cómo cambiar automáticamente el tamaño de una forma basado/en función del valor de una celda específica en Excel?
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
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:
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:
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:
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)
Artículos relacionados:
- ¿Cómo agregar una sugerencia al pasar el mouse sobre una forma específica en Excel?
- ¿Cómo rellenar una forma con un color de fondo transparente en Excel?
- ¿Cómo ocultar o mostrar una forma específica basada en el valor de una celda específica en Excel?
Las mejores herramientas de productividad para Office
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!