Bonjour,
Je suis tombé sur ce qui ressemble à un bug d'Excel (Office 2013). J'aurai voulu trouver un moyen de le contourner.
Lorsque je dessine une Freeform depuis le code VBA et que je défini un texte à l'intérieur celui ci se trouve en-dehors de la boite.
Manipuler les positions de texte (verticale et horizontale) ni font rien.
En revanche lorsque, manuellement, je créé un point pour le détruire aussitot le texte se position normalement au centre.
Par ailleurs, si je créé cette freeform manullement le texte se positionne normalement.
Voici le code VBA que j'utilise:
Pour info
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub test() Dim objectShape As shape Dim pointCoord() As Single ReDim pointCoord(1 To 5, 1 To 2) pointCoord(1, 1) = 100 pointCoord(1, 2) = 100 pointCoord(2, 1) = 200 pointCoord(2, 2) = 100 pointCoord(3, 1) = 200 pointCoord(3, 2) = 200 pointCoord(4, 1) = 100 pointCoord(4, 2) = 200 pointCoord(5, 1) = 100 pointCoord(5, 2) = 200 Set objectShape = ActiveSheet.Shapes.AddPolyline(SafeArrayOfPoints:=pointCoord) With objectShape.TextFrame2 .TextRange.Text = "Test developpez.net" End With With objectShape.Fill .Visible = msoTrue .ForeColor.RGB = RGB(128, 250, 200) End With With objectShape.TextFrame .HorizontalAlignment = xlHAlignCenter .VerticalAlignment = xlVAlignCenter End With End Sub
- je n'ai pas trouvé comment ajouter/supprimer un point d'une freeform déjà convertie en shape.
- la comparaison des attributs d'une freeform créé manuellement ou par VBA à l'aide de la fenêtre "Locals" ne me donne rien: les objets semblent identiques
Si vous connaissez la solution je suis preneur et merci d'avance
Gris.
Partager