Userform - Arrondir les coins d'un label

Bonjour,

Je suis en train de créer un Userform pour la première fois, et celui-ci commence à être fonctionnel, mais il demeure terriblement laid.

J'ai un Label1 qui possède une backcolor, mais je n'arrive pas tellement à gérer sa forme.

Malgré mes recherches, je n'ai pas encore trouvé de solution à mon problème qui est le suivant:

Est-il possible d'arrondir les coins d'un Label d'un Userform?

Merci d'avance pour votre aide ou vos liens si la question a déjà été traitée, et j'espère avoir été suffisamment clair dans l'exposition de mon problème

Bonjour,

Je ne crois pas que ce soit possible, un Label (comme les autres contrôle d'Userform) ne possède pas d'handle pour qu'il puisse être manipulé avec les APIs Windows mais je peux me tromper !

« arrondir les coins », je sais pas ; mais « arrondir les angles », ça marche sans UserForm !

dhany

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

salut Theze,

screen 1

pour le nom de la police, « n » et « d » sont inversés : c'est la police « Verdana ».

screen 2

- Theze : « merci ! »

= « de rien ! » (espagnol → français)

dhany

Salut dhany,

Oups bien vu

Je vois que tu auscultes les codes postés

Joyeux Noël à toi et à tout le monde !

Bonjour et bon Noël à vous, merci pour vos promptes réponses!

Theze j'essaierai de comprendre ça à tête reposée, ça m'a l'air pas mal complexe mais intéressant! Cette exécution ne ralentis pas trop l'exécution de la macro?

Si tu n’en a que quelques uns ça ne devrait pas poser de problème je pense, je n’ai pas fais de test sur un grand nombre

Rechercher des sujets similaires à "userform arrondir coins label"