Comment ajuster automatiquement la taille d’une forme en fonction de la valeur d’une cellule spécifique dans Excel ?
Dans Excel, les formes telles que les cercles, les rectangles ou les graphiques personnalisés sont couramment utilisées pour améliorer la présentation visuelle, créer des tableaux de bord ou illustrer des données. Il peut arriver que vous souhaitiez que la taille d’une forme reflète dynamiquement la valeur d’une cellule donnée — par exemple, pour concevoir des indicateurs de progression, des affichages visuels d’état, ou simplement rendre vos rapports plus interactifs et intuitifs. Toutefois, Excel ne propose pas de fonctionnalité intégrée permettant de lier automatiquement la taille d’une forme au contenu d’une cellule. Cet article présente des méthodes pratiques pour redimensionner automatiquement des formes en fonction de la valeur d’une cellule spécifiée, afin de rendre vos projets Excel plus dynamiques et visuellement percutants.
Modifier automatiquement la taille d’une forme en fonction de la valeur d’une cellule spécifiée à l’aide d’un code VBA
Pour que la taille d’une forme s’adapte automatiquement à la valeur saisie dans une cellule spécifique, utilisez une macro VBA. Cette solution est idéale pour automatiser des éléments de tableau de bord ou mettre en évidence visuellement les modifications des données, sans avoir à redimensionner manuellement chaque forme. Le code VBA ci-dessous relie dynamiquement la taille de la forme à la valeur d’une cellule de votre feuille de calcul.

Office Tab
Navigation par onglets pour Word, Excel, PowerPoint et bien plus encore – exactement comme dans un navigateur web, avec une commutation fluide au sein d’une seule et même fenêtre.
Veuillez suivre ces étapes :
1. Cliquez avec le bouton droit sur l’onglet de la feuille contenant la forme que vous souhaitez redimensionner, puis sélectionnez Afficher le code dans le menu contextuel. La fenêtre de l’éditeur de code associée à cette feuille de calcul s’ouvre alors.
2. Dans la fenêtre Microsoft Visual Basic pour Applications, copiez et collez le code VBA suivant dans la fenêtre de code. Veillez à le coller dans le module de la feuille correspondant à celle où se trouve votre forme.
Code VBA : Modifier automatiquement la taille d’une forme en fonction de la valeur d’une cellule spécifiée dans 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 Explication et précautions :
- Dans ce code, « Oval 2 » correspond au nom de la forme que vous souhaitez redimensionner. Assurez-vous que ce nom correspond exactement à celui affiché dans le Volet de sélection (Accueil > Rechercher et sélectionner > Volet de sélection).
- Le code ne s’exécute que lorsqu’une modification est apportée spécifiquement à la cellule A2 (soit la ligne 2, colonne 1). Si vous souhaitez utiliser une autre cellule, veuillez mettre à jour ces valeurs en conséquence.
- La taille de la forme est déterminée par la valeur de la cellule, qui correspond au diamètre en centimètres. Le code fixe une limite supérieure de 10 cm et une limite inférieure de 1 cm afin d’éviter des problèmes de redimensionnement extrêmes.
- Si vous saisissez une valeur en dehors de cette plage (inférieure à 1 ou supérieure à 10), la forme sera automatiquement redimensionnée à la limite la plus proche.
- Si le nom de la forme spécifiée est introuvable ou si la valeur n’est pas numérique, le code ignore l’action sans afficher de message d’erreur.
Dans les scénarios où plusieurs formes doivent être redimensionnées automatiquement en fonction des valeurs contenues dans des cellules différentes (par exemple, pour créer une série d’indicateurs visuels ou de jauges), vous pouvez étendre la solution VBA comme indiqué ci-dessous.
Code VBA : Redimensionner automatiquement plusieurs formes en fonction des valeurs de différentes cellules spécifiées dans 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 Remarques importantes et conseils d’utilisation :
If...ElseIfavant l’instruction End If. Saisissez l’adresse de la cellule et le nom de la forme corrects selon vos besoins.3. Après avoir modifié et enregistré le code, appuyez sur Alt + Q pour fermer la fenêtre Microsoft Visual Basic pour Applications et revenir à votre feuille de calcul.
Désormais, chaque modification apportée à la valeur de la cellule A2 redimensionnera automatiquement et en temps réel la forme « Oval2 ». Voir la capture d’écran :

De même, si vous mettez à jour les valeurs des cellules A1, A2 ou A3, les formes « Oval 1 », « Smiley Face 3 » et « Heart 2 » ajusteront instantanément leur taille en fonction de leurs cellules associées. Voir l’exemple ci-dessous :

Rappels supplémentaires :
- Le redimensionnement ne prend effet que lorsque les valeurs des cellules spécifiées changent. Si vous déplacez ou modifiez manuellement une forme d’une manière qui perturbe son point de référence, vous devrez peut-être réinitialiser sa position.
- Seules les valeurs numériques fonctionnent comme prévu. Les cellules vides ou les entrées textuelles peuvent réduire la forme à sa taille minimale ou provoquer un comportement inattendu.
- Assurez-vous que les macros sont activées dans votre environnement Excel, car les solutions VBA nécessitent l’activation des macros.
Remarque : La taille de la forme cesse d’augmenter dès que la valeur de la cellule dépasse 10 (la limite maximale étant fixée à 10 cm). De même, toute valeur inférieure à 1 est automatiquement ramenée à la taille minimale par défaut (1 cm).
Conseils de dépannage : Si le redimensionnement ne fonctionne pas comme prévu, vérifiez attentivement que les noms des formes et les références de cellules correspondent exactement, que les macros sont activées et qu’aucune restriction liée à la protection de la feuille n’est en place. En cas d’erreur d’exécution, assurez-vous que les formes spécifiées existent bien sur la feuille active et que leurs noms ne contiennent aucune faute d’orthographe.
Recommandation récapitulative :La méthode VBA permet un redimensionnement dynamique en temps réel et convient parfaitement aux tableaux de bord interactifs et aux rapports pilotés par les données. Toutefois, elle exige que l’utilisateur maîtrise la dénomination des formes, l’environnement VBA et l’enregistrement du classeur au format prenant en charge les macros ().xlsm) afin de conserver le code. Cette méthode est idéale lorsque l’automatisation est nécessaire et que l’utilisation des macros est acceptable dans le classeur.
Redimensionnement manuel des formes à l’aide d’une référence
Si vous n’avez besoin d’ajuster la taille des formes que de façon occasionnelle, ou si vous privilégiez une approche simple sans recourir aux macros, vous pouvez définir manuellement les dimensions de la forme en fonction de la valeur d’une cellule, selon vos besoins. Cette méthode est idéale lorsque l’automatisation n’est pas indispensable ou que l’utilisation de macros est limitée.
Cliquez sur la forme que vous souhaitez redimensionner, puis, dans le volet Format de la forme (clic droit sur la forme > Taille et propriétés), saisissez manuellement les valeurs de largeur et de hauteur. Vous pouvez vous inspirer des dimensions de votre cellule pour ces réglages. Bien qu’elle ne soit pas automatique, cette méthode est simple et efficace pour des ajustements ponctuels.
Astuce : Avec cette approche, veillez toujours à mettre à jour manuellement la taille de la forme dès que les valeurs des cellules changent, car aucune liaison n’existe entre la forme et la cellule. Cette méthode évite les avertissements de sécurité liés aux macros, mais ne permet pas de mises à jour visuelles en temps réel.
Lister et exporter toutes les formes de la feuille Classeur Excel actuelle :
L’utilitaire Exporter le graphique de Kutools pour Excel vous permet de lister rapidement toutes les formes du classeur actuel et de les exporter simultanément vers un dossier de votre choix, comme illustré dans la capture d’écran ci-dessous. Téléchargez-le et essayez-le dès maintenant ! (Essai gratuit de 30 jours)

Articles associés :
- Comment ajouter une info-bulle qui s’affiche au passage de la souris sur une forme spécifique dans Excel ?
- Comment remplir une forme avec une couleur de fond transparente dans Excel ?
- Comment masquer ou afficher une forme spécifique selon la valeur d’une cellule donnée dans Excel ?
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile
- Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels