Sub test1()
    ExempleShape2 "exemple1", msoShapeGear6, 40
    ExempleShape2 "exemple2", 3, 11
    ExempleShape2 "exemple3", 2, 20
    ExempleShape2 "exemple4", msoShapeCloudCallout, 25
End Sub
Sub ExempleShape2(nom, forme, fsize)
    Dim sh As Shape
    Set sh = ActiveSheet.Shapes.AddShape(forme, 80, 50, 110, 110)
    sh.Name = nom
    With ActiveSheet.DrawingObjects(nom)
        'propriété accessible en tant que drawingobject
        .Text = "BONJOUR DUDU2" ' 'comme les cellules
        .Font.Color = vbRed 'comme les cellules
        .Font.Size = fsize 'comme les cellules
        .Font.Bold = False 'comme les cellules
        .Font.Italic = True 'comme les cellules
        .HorizontalAlignment = xlHAlignCenter 'comme les cellules
        .VerticalAlignment = xlVAlignCenter 'comme les cellules
        .Interior.Color = vbYellow 'comme les cellules
        .Border.Color = vbRed
      
        'propriété accessibles par l'object de type shape
        '<<.ShapeRange>> pour convertir drawingobject en shape
        With .ShapeRange
            .TextFrame2.WordWrap = False 'on bloque le retour à la ligne bien evidement avant le autosize
          
            .TextFrame.AutoSize = True
            'les bordures
            .Line.Weight = 1 'epaisseur bordure(0 pas de bordure)
            .Line.DashStyle = msoLineDash 'bordure en pointillet( msoLineSolid pour ligne continue)
            'suppression des marges autour du texte(même effet que autosize sur le texte )
            'et evite le quelques points qui manque pour ne pas avoir l'effet wrap (le texte prend toute la largeur )
            .TextFrame2.MarginBottom = 0 'Marge en bas
            .TextFrame2.MarginTop = 0 'marge en haut
            .TextFrame2.MarginRight = 0 'marge àdroite
            .TextFrame2.MarginLeft = 0 'marge agauche
        End With
      
    End With
End Sub