XL 2016 Dimension Forme automatique

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
 

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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
 

Statistiques des forums

Discussions
312 488
Messages
2 088 840
Membres
103 972
dernier inscrit
steeter