Hoe past u de vormgrootte automatisch aan op basis van een opgegeven celwaarde in Excel?
In Excel worden vormen zoals cirkels, rechthoeken of aangepaste afbeeldingen veel gebruikt voor visuele verbetering, dashboards of het illustreren van gegevens. Soms wilt u dat de grootte van een vorm dynamisch meeverandert met de waarde in een bepaalde cel – bijvoorbeeld om voortgangsindicatoren te creëren, visuele statusweergaven te tonen of uw rapporten eenvoudigweg interactiever en intuïtiever te maken. Excel biedt echter geen ingebouwde functie om de grootte van een vorm automatisch te koppelen aan celinhoud. Dit artikel presenteert praktische methoden om vormen automatisch te vergroten of te verkleinen op basis van de waarde in een opgegeven cel, zodat uw Excel-projecten dynamischer en visueel krachtiger worden.
Automatisch de vormgrootte aanpassen op basis van een opgegeven celwaarde met VBA-code
Om een vorm automatisch aan te passen aan de waarde in een specifieke cel, kunt u een VBA-macro gebruiken. Deze methode is bijzonder effectief voor het automatiseren van dashboardelementen of het visueel benadrukken van gegevenswijzigingen—zonder dat u elke vorm handmatig hoeft aan te passen. De onderstaande VBA-code koppelt de grootte van een vorm direct aan een celwaarde in uw werkblad.

Office Tab
Tabbladnavigatie voor Word, Excel, PowerPoint en meer – net als in een webbrowser, met vloeiend schakelen tussen documenten in één venster.
Volg deze stappen:
1. Klik met de rechtermuisknop op het bladtabblad met de vorm die u wilt wijzigen en selecteer Code weergeven in het contextmenu. Hiermee opent u het codebewerkervenster voor dat specifieke werkblad.
2. Plak in het venster Microsoft Visual Basic for Applications de volgende VBA-code in het codovenster. Zorg ervoor dat u deze plakt in het codesheet van het werkblad waar uw vorm zich bevindt.
VBA-code: Automatisch de vormgrootte aanpassen op basis van een opgegeven celwaarde in 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 Uitleg en voorzorgsmaatregelen:
- In deze code verwijst "Oval 2" naar de naam van de vorm die u wilt wijzigen. Zorg ervoor dat deze exact overeenkomt met de naam in het Selectievenster (Start > Zoeken en selecteren > Selectievenster).
- De code wordt alleen uitgevoerd wanneer er specifiek een wijziging wordt aangebracht in cel A2 (dat is rij 2, kolom 1). Als u een andere cel wilt gebruiken, pas dan deze waarden dienovereenkomstig aan.
- De grootte van de vorm wordt bepaald door de celwaarde, die de diameter in centimeters aangeeft. De code stelt een maximale grootte in van 10 cm en een minimale grootte van 1 cm om problemen met extreme schaalaanpassingen te voorkomen.
- Als u een waarde buiten dit bereik invoert (minder dan 1 of meer dan 10), past het systeem de vorm automatisch aan naar de dichtstbijzijnde limiet.
- Als de opgegeven vormnaam niet wordt gevonden of als de waarde geen getal is, negeert de code de actie zonder een foutmelding te tonen.
Voor scenario’s waarin meerdere vormen automatisch moeten worden aangepast op basis van waarden in verschillende cellen—bijvoorbeeld bij het maken van een reeks visuele indicatoren of meters—kunt u de VBA-oplossing uitbreiden zoals hieronder wordt getoond.
VBA-code: Meerdere vormen automatisch aanpassen op basis van de waarden in verschillende opgegeven cellen in 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 Belangrijke opmerkingen en gebruikstips:
If...ElseIfvóór End If. Voer het juiste celadres en vormnaam in zoals nodig.3. Nadat u de code hebt gewijzigd en opgeslagen, drukt u op Alt+Q om het venster Microsoft Visual Basic for Applications te sluiten en terug te keren naar uw werkblad.
Vanaf nu past de opgegeven vorm „Oval2” zich automatisch in realtime aan zodra u de waarde in cel A2 wijzigt. Zie schermafbeelding:

Op dezelfde manier passen de vormen „Oval 1”, „Smiley Face 3” en „Heart 2” hun grootte direct aan op basis van hun gekoppelde cellen wanneer u de waarden in cellen A1, A2 of A3 wijzigt. Zie het onderstaande voorbeeld:

Extra herinneringen:
- De schaalaanpassing wordt alleen uitgevoerd wanneer de waarden in de opgegeven cellen veranderen. Als u een vorm handmatig verplaatst of wijzigt op een manier die het referentiepunt verstoort, moet u de positie van de vorm mogelijk opnieuw instellen.
- Alleen numerieke waarden werken zoals bedoeld. Lege cellen of tekstwaarden kunnen ertoe leiden dat de vorm wordt verkleind tot de minimale grootte of niet naar verwachting wordt aangepast.
- Zorg ervoor dat macro’s zijn ingeschakeld in uw Excel-omgeving, aangezien VBA-oplossingen macro-machtigingen vereisen.
Opmerking: De vormgrootte stopt met toenemen zodra de celwaarde 10 overschrijdt (maximaal ingesteld op 10 cm). Evenzo worden waarden onder 1 standaard ingesteld op het minimum (1 cm).
Tips voor probleemoplossing: Als het aanpassen van de grootte niet werkt zoals verwacht, controleer dan of de vormnamen en celverwijzingen exact overeenkomen, of macro’s zijn ingeschakeld en of er geen beveiligingsbeperkingen op het werkblad gelden. Als u een runtime-fout tegenkomt, controleer dan of de opgegeven vormen bestaan op het actieve werkblad en of hun namen correct zijn gespeld.
Samenvattende suggestie:De VBA-methode biedt dynamische, realtime schaalaanpassing en is ideaal voor interactieve dashboards en gegevensgestuurde rapporten. Ze vereist echter dat de gebruiker vertrouwd is met vormnamen, de VBA-omgeving en het opslaan van de werkmap als een macro-ingeschakeld bestand ().xlsm) om de code te behouden. Deze methode is het meest geschikt voor situaties waarin automatisering nodig is en macrofunctionaliteit in de werkmap acceptabel is.
Handmatig de vormgrootte aanpassen via referentie
Als u de vormgroottes slechts af en toe hoeft aan te passen of een eenvoudige aanpak zonder macro’s wilt, kunt u handmatig de vormgrootte instellen op basis van een celwaarde. Deze aanpak is geschikt wanneer automatisering niet essentieel is of wanneer het gebruik van macro’s beperkt is.
Klik op de vorm die u wilt aanpassen en voer vervolgens handmatig de breedte- en hoogtewaarden in via het deelvenster Vorm opmaken (rechtermuisklik op vorm > Grootte en eigenschappen). U kunt hiervoor de celwaarde raadplegen. Hoewel dit niet automatisch gebeurt, is deze methode eenvoudig en effectief voor eenmalige aanpassingen.
Tip: Met deze aanpak moet u de vormgrootte handmatig bijwerken zodra celwaarden veranderen, omdat er geen koppeling bestaat tussen de vorm en de cel. Deze methode voorkomt beveiligingswaarschuwingen voor macro’s, maar biedt geen ondersteuning voor realtime visuele updates.
Lijst en exporteer alle vormen in de huidige Excel-werkboek:
De Grafiek exporteren-functie van Kutools voor Excel helpt u snel alle grafieken in het huidige werkboek op te sommen, en u kunt ze tegelijkertijd exporteren naar een opgegeven map, zoals in de onderstaande schermafbeelding wordt getoond. Download en probeer het nu! (30 dagen gratis proefversie)

Gerelateerde artikelen:
- Hoe voegt u een muisaanwijzing toe aan een specifieke vorm in Excel?
- Hoe vult u een vorm met een transparante achtergrondkleur in Excel?
- Hoe verbergt of toont u een specifieke vorm in Excel op basis van de waarde van een bepaalde cel?
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins