Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème d'alignement de texte sur forme libre

  • Initiateur de la discussion Initiateur de la discussion Cybher
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Cybher

Guest
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

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 :



- 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
    17 KB · Affichages: 68
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



jb
 

Pièces jointes

Dernière édition:
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
834
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…