XL 2013 labelou shapes et vice et versa

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
je voudrais ajouter un label (controls formulaire pas activeX)
il y a plusieurs methodes pour ajouter cet elements
j'en ai deux qui me destroy les neuronnes
en effet
si je passe par la classe shapes.addlabel
je ne trouve pas comment regler les font et alignement ni par textframe(2) ni autre

si je passe par la classe label
je retrouve un peu le moyen de regler mais il y a un truc qui me rend dingue
si je ne met pas un width 2 à 3 fois plus grand que la longeur de texte je me retrouve avec un texte aligné verticalement

et le pire dans tout ça et qui me rend encore plus perplexe c'est que dans l'exemple qui suit je règle le font.size du lab1
et c'est le lab2 qui reçoit ce paramètre alors que les deux objects sont bien distincts

un truc de fou je vous dis :oops:

j'ai courru voir le medecin il me confirme que tout va bien je fait donc appel à vous
Bon d'accords ce matin je me suis levé avec une légère douleur au lobe frontal mais tout de même
😂
VB:
Sub testbizare()
    Dim Lab2, Lab1

    Set Lab1 = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 150, 150, 15, 15)
    Lab1.TextFrame.Characters.Text = "AB"
    ' Lab1.TextFrame.Characters(1, 2).Font.Size = 30
    'Lab1.TextFrame.AutoSize = True

    'si je debloque les lignes ci dessus  le lab1 n'est pas modifié  c'est le lab2 qui va l'etre
    ' alors qu'ensuite  à la lecture  des propertie du lab2 les propertie donne c'elle par defaut


    With ActiveSheet
        Set Lab2 = .Labels.Add(100, 100, 15, 15)
        Lab2.Characters.Text = "AB"
        Debug.Print "texte du label :" & .Shapes(Lab2.Name).TextFrame.Characters.Text
        Debug.Print "couleur du texte :" & .Shapes(Lab2.Name).TextFrame.Characters(1, 2).Font.Color
        Debug.Print "police du texte :" & .Shapes(Lab2.Name).TextFrame.Characters(1, 2).Font.Name
        Debug.Print "taille  de la police du texte :" & .Shapes(Lab2.Name).TextFrame.Characters(1, 2).Font.Size

        'ici ca plante j'ai essayé toute les formes  (textframe /2 characters, textrange,etc.... rien de rien
        Debug.Print .Shapes(Lab2.Name).TextFrame.Text.AutoSize
        Debug.Print .Shapes(Lab2.Name).TextFrame.TextRange.HorizontalAlignment
    End With
End Sub

c'est moi ou bien ?
 
Solution
re
allez OK c'est tout bon avec le shapes.label.add on a le margin(left et right) qui sont ok
VB:
Sub test_shapes_Addlabel()
    Dim Lab2, Lab1

    With ActiveSheet
        Set Lab1 = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 100, 100, 15, 15)
        Lab1.TextFrame.Characters.Text = "AB"
        Lab1.TextFrame.MarginLeft = 0
        Lab1.TextFrame.MarginRight = 0
       
        .DrawingObjects(Lab1.Name).Font.Name = "arial"              ' ou ' Lab1.TextFrame.Characters(1, 2).Font.Name = "arial"

        .DrawingObjects(Lab1.Name).Font.Size = 8                    ' ou ' Lab1.TextFrame.Characters(1, 2).Font.Size = 8

        .DrawingObjects(Lab1.Name).Font.Color = vbRed               ' ou ' Lab1.TextFrame.Characters(1...

Discussions similaires

Statistiques des forums

Discussions
314 493
Messages
2 110 197
Membres
110 703
dernier inscrit
papysurf