KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment ajuster automatiquement la taille d’une forme en fonction de la valeur d’une cellule spécifique dans Excel ?

AuteurSiluvia Date de modification

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.

Parcourir les documents à l’aide de Office Tab

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 :

1) Dans ce code, vous trouverez les noms de formes «Oval 1», «Smiley Face 3» et «Heart 2». Ils correspondent aux formes que vous souhaitez redimensionner. Assurez-vous que ces noms correspondent exactement à ceux affichés dans votre Classeur Excel.
2) Les cellules A1,A2et A3contrôlent les tailles de leurs formes respectives. Vous pouvez modifier ces références si vous souhaitez associer d’autres paires cellule-forme. Pour ajouter davantage de formes et de cellules, il suffit d’ajouter des lignes similaires dans la section 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 :

 modifier la valeur dans une cellule spécifique, la taille de la forme sera automatiquement modifiée

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 :

modifier la valeur dans des cellules spécifiques, les tailles des formes seront automatiquement modifiées

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)

exporter toutes les formes de l’Excel actuel avec Kutools


Articles associés :


Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

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.

ExcelWordOutlookTabsPowerPoint
  • 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