Problème d'alignement de texte sur forme libre

Cybher

XLDnaute Nouveau
Bonjour Le forum,

j'ai un problème d'alignement de texte, suite à la création d'une forme libre en VBA.

Mon texte se centre uniquement, sur le bord Haut gauche de la forme.

Je vous joins le fichier en exemple.

Quelqu'un aurait-il déjà eu ce genre de problème.

J'ai ce problème avec les versions 2007, 2010 et 2013.

Merci d'avance.

Cybher
 

Pièces jointes

  • Pb alignement Texte.xlsx
    12.1 KB · Affichages: 36

DoubleZero

XLDnaute Barbatruc
Re : Problème d'alignement de texte sur forme libre

Bonjour à toutes et à tous,

Le problème rencontré semble être dû à la forme elle-même.

Dans la capture jointe :

attachment.php


- le texte de la figure d'origine est centré, par macro, après avoir inséré une zone de texte ;

- le texte du rectangle, quant à lui, ne pose aucune difficulté.

Code:
Option Explicit
Sub Texte_centrer()
    With Selection.ShapeRange.TextFrame2
        .VerticalAnchor = msoAnchorMiddle
        .TextRange.ParagraphFormat.Alignment = _
        msoAlignCenter
    End With
End Sub

A bientôt :)
 

Pièces jointes

  • Texte dans forme.JPG
    Texte dans forme.JPG
    17 KB · Affichages: 63

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Problème d'alignement de texte sur forme libre

Bonjour,

essai

Code:
Sub essaiCentré()
  ecritShapeCentre "orne", "Orne"
  ecritShapeCentre "sarthe", "Sarthe"
  ecritShapeCentre "triangle", "abcd"
  ecritShapeCentre "test", "Coucou"
End Sub

Sub essaiPosition()
  ecritShapePosition "orne", "Orne", 15, 4
  ecritShapePosition "sarthe", "Sarthe", 13, 4
  ecritShapePosition "triangle", "abcd", 20, 20
  ecritShapePosition "test", "Coucou", 50, 50
End Sub

Sub ecritShapeCentre(nomShape, Libellé)
  With ActiveSheet.Shapes(nomShape).TextFrame2
    .TextRange.Characters.Text = Libellé
    .TextRange.Characters.Font.Size = 8
    .MarginLeft = 0
    .MarginTop = 0
    .MarginBottom = 0
    .MarginRight = 0
    .VerticalAnchor = msoAnchorMiddle
    .HorizontalAnchor = msoAnchorCenter
  End With
  ActiveSheet.Shapes(nomShape).OLEFormat.Object.Font.Color = vbBlack
End Sub

Sub ecritShapePosition(nomShape, Libellé, gauche, haut)
  With ActiveSheet.Shapes(nomShape).TextFrame2
    .TextRange.Characters.Text = Libellé
    .TextRange.Characters.Font.Size = 8
    .MarginLeft = gauche
    .MarginTop = haut
    .MarginBottom = 0
    .MarginRight = 0
  End With
End Sub

Sans titre.png

jb
 

Pièces jointes

  • EcritFormeLibre.xls
    67 KB · Affichages: 53
  • Sans titre.png
    Sans titre.png
    15.2 KB · Affichages: 41
Dernière édition:

Cybher

XLDnaute Nouveau
Re : Problème d'alignement de texte sur forme libre

Bonjour,

Merci pour vos réponses !!!

Désolé pour mon retour tardif, j'ai été appelé sur d'autres projets entre temps.

Vos conseils marchent fort bien, lorsque l'on parle de Shapes créées manuellement, mais pas dans le cas, où elles sont crées via VBA.

J'avoue ne pas comprendre le problème, on dirait qu'Excel ne reconnait pas le texte inclus dans la shape. La seule chose qui fonctionne c'est le positionnement manuel, mais dans mon cas, il faut que ce soit centré en automatique.

Je continue à chercher, si je trouve je posterai la solution.

Bonne journée.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 756
Messages
2 091 737
Membres
105 060
dernier inscrit
DEDJAN Gaston