Centrer un texte sur une forme libre VBA

Bonjour à tous,

Je suis un peu bloqué sur une macro, j'ai une carte de région qui se génère toute seule via vba, je souhaiterai que le nom de la commune apparaissent sur la forme libre correspondante (au centre de celle-ci), j'ai donc "bricolé" un bout de code vba mais le résultat obtenu n'est pas celui attendu => le nom de la commune apparaît de manière plus ou moins aléatoire mais pas sur la forme.

Vous trouverez un fichier joint allégé pour argumenter mes propos.

150exemple-carte.xlsm (42.51 Ko)

Merci d'avance pour votre aide.

Guillaume

Bonjour,

Difficile d'aligner. Teste en remplaçant le code suivant :

        With Sheets("Carte").Shapes.BuildFreeform(msoEditingAuto, longitude(1), latitude(1))
            For i = 2 To nbpoint
                .AddNodes msoSegmentLine, msoEditingAuto, longitude(i), latitude(i)
            Next i
            .AddNodes msoSegmentLine, msoEditingAuto, longitude(1), latitude(1)
            .ConvertToShape.Select
            Selection.Name = ville
            Selection.ShapeRange.Fill.ForeColor.RGB = couleur(indexcouleur)
            Selection.Text = ville
            Selection.Font.ColorIndex = 1
            Selection.Font.Size = 6
            Selection.Font.Name = "Arial"
            Selection.VerticalAlignment = xlCenter
            Selection.HorizontalAlignment = xlCenter
With Selection.ShapeRange.TextFrame2
                .MarginTop = Selection.ShapeRange.Height
                .MarginLeft = Selection.ShapeRange.Width
                .VerticalAnchor = msoAnchorTop
                .HorizontalAnchor = msoAnchorCenter
            End With
        End With

La partie surlignée est le nouveau code à ajouter.

Cela fonctionne parfaitement merci beaucoup pour ton aide !

Rechercher des sujets similaires à "centrer texte forme libre vba"