Re,
Je te propose un petit bidouillage que j'avais fais il y a trois ans pour montrer des cotations obliques pour un dessin sur un UserForm !
Alors, comme dis avant, c'est une bidouille avec un Shape collé dans un graphique, exporté en .gif et cette image .gif est ensuite chargée dans un contrôle Image !
Donc, tu poses un contrôle Image sur ton UserForm, tu colles le code ci-dessous dans le module de l'UserForm et tu testes. Attention, le classeur doit au préalable être enregistré sur le disque puisque j'utilise le fonction Kill :
Private Sub UserForm_Initialize()
LabelPerso Me.Image1, "Mon texte", "MonLabel"
End Sub
Sub LabelPerso(Img As MSForms.Image, TexteDansLabel As String, NomShape As String)
Dim S As Shape
Dim Graph As ChartObject
Dim Largeur As Single
Dim Hauteur As Single
'crée un shape ovale sur la feuille active
Set S = ActiveSheet.Shapes.AddShape(9, 50, 50, 100, 50)
'paramètre le shape
With S
.ShapeStyle = 22
.Name = NomShape
.TextFrame.Characters.Text = TexteDansLabel
.TextFrame.Characters.Font.Name = "Vernada"
.TextFrame.Characters.Font.Size = 12
.TextEffect.Alignment = 4
.TextEffect.FontBold = True
.TextFrame.Characters.Font.ColorIndex = 5
'le copie...
.CopyPicture
Largeur = .Width
Hauteur = .Width
.Delete '...puis le supprime
End With 'S
'ajoute un graphique et colle l'image du shape
ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur).Chart.Paste
Set Graph = ActiveSheet.ChartObjects(1)
'paramètre le graphique
With Graph
.Chart.ChartArea.Format.Fill.BackColor.RGB = RGB(255, 0, 0)
.Chart.ChartArea.Border.LineStyle = 0
.Chart.Export ThisWorkbook.Path & "\" & NomShape & ".gif", "gif" 'l'exporte en .gif...
.Delete '...puis le supprime
End With 'Graph
'charge l'image depuis le dossier où se trouve le classeur
With Img
.Height = Hauteur
.Width = Largeur
.Picture = LoadPicture(ThisWorkbook.Path & "\" & NomShape & ".gif")
.BorderStyle = 0
.BackStyle = 0
End With 'Img
'supprime le fichier .gif
Kill ThisWorkbook.Path & "\" & NomShape & ".gif"
End Sub