Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Dimension Forme automatique

  • Initiateur de la discussion Initiateur de la discussion vinceda
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

vinceda

XLDnaute Junior
Bonjour à tous,

Une fois n'est pas coutume, j'ai besoin de votre aide sur un projet.
sur un tableau excel, je dois créer un organigramme avec les formes disponibles sous excel (essentiellement des cercles)mais celles ci seront de tailles différentes suivant leurs valeurs.

Ma question est la suivante: existe t'il un moyen simple et rapide pour créer des formes et les mettre à l’échelle (ex : valeur 100=diam 10cm; valeur 50= 5cm, ....)

je vous remercie par avance
Vinceda
 
Bonjour vinceda,

Collez cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not IsNumeric(CStr(Target)) Then Exit Sub
Dim coef#
coef = 2.8357 'à ajuster par tâtonnement
Cancel = True
With Shapes.AddShape(msoShapeOval, 0, 0, 0, 0)
    .Fill.ForeColor.RGB = vbYellow 'jaune
    .Width = coef * Target
    .Height = .Width
    .Left = Target.Left + (Target.Width - .Width) / 2
    .Top = Target.Top + (Target.Height - .Height) / 2
End With
End Sub
Entrez par exemple 50 dans une cellule et effectuez un double-clic sur celle-ci.

A+
 
Complément si l'on veut entrer un texte dans la forme :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not IsNumeric(CStr(Target)) Then Exit Sub
Dim coef#
coef = 2.8357 'à ajuster par tâtonnement
Cancel = True
With Shapes.AddShape(msoShapeOval, 0, 0, 0, 0)
    .Fill.ForeColor.RGB = vbYellow 'jaune
    .TextFrame.VerticalAlignment = xlVAlignCenter
    .TextFrame.HorizontalAlignment = xlHAlignCenter
    .TextFrame.Characters.Text = Application.InputBox("Texte à placer dans la forme :")
    .TextFrame.Characters.Font.Color = vbBlack
    .Width = coef * Target
    .Height = .Width
    .Left = Target.Left + (Target.Width - .Width) / 2
    .Top = Target.Top + (Target.Height - .Height) / 2
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
125
Affichages
13 K
J
Réponses
11
Affichages
2 K
aurelie
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…