IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Position du texte avec une freeform créé par VBA [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Par défaut Position du texte avec une freeform créé par VBA
    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:
    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
    Pour info
    • 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.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 3
    Par défaut
    Je n'ai pas de solution mais j'ai contourner le problème en scriptant ce que je faisais manuellement.
    En ajoutant puis en supprimant un point à la shape le texte se retrouve centré.
    Voici le code que j'ajoute après:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objectShape.nodes.Insert index:=1, SegmentType:=msoSegmentLine, EditingType:=msoEditingAuto, x1:=0, y1:=0
    objectShape.nodes.Delete 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23
  2. Centrage de texte avec une image en arriere plan
    Par MasterOfChakhaL dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 26/08/2005, 18h31
  3. Réponses: 3
    Dernier message: 21/06/2005, 11h37
  4. Réponses: 4
    Dernier message: 25/04/2005, 19h36
  5. Mettre du texte sur une vidéo(ou par dessus un tmediaplayer)
    Par souch dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/07/2004, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo