Dessin de forme en VBA

Bonjour quelqu'un peut-il m'aider et m'expliquer comment faire avec un code vba affin d'aboutir au résultat dans l'image s'il vous plait.

resultats1

bonjour,

comment peut-on faire pour générer des noeuds type shapes avec des valeurs? merci

Bonjour,

Pourquoi ne pas passer par un graphique directement? les formats proposés ne conviennent pas?

Bonjour,

Le format graphique ne me convient pas pour la suite du programme.

Merci

bonjour,

comment peut-on faire pour générer des noeuds type shapes avec des valeurs? merci

Bonjour à tous,
Pour générer une ligne avec des points, depuis un tableau de points(x,y) on peut dessiner une ligne avec un code du genre :

Set Sh = Sheets("Bidule").Shapes.AddPolyline(Points)

Et superposer la collection de points avec un code du genre (pour chaque point/noeud):

Set Sh = Sheets("Bidule").Shapes.AddShape(msoShapeOval, x, y, W, H)
(avec une valeur identique pour W et H pour obtenir un point/noeud bien rond)

Pour les étiquettes des valeurs, toujours à partir des même points(x,y), on peut faire comme ceci :

With Sheets("Bidule").Shapes.AddTextbox(1, x, y, W, H)
    With .TextFrame2.TextRange
        .Text = "blabla"
        .Font.Size = 8
        .Font.Bold = msoTrue
    End With
    .Fill.Visible = msoFalse
    .Line.Visible = msoFalse
    .TextFrame.AutoSize = msoTrue
    .Left = .Left - .Width / 2
End With

Pierre

merci Pierre

bonjour, comment faire pour centrer le texte horizontalement et verticalement dans la zone de texte s'il vous plait

Bonjour,

Mieux qu'un long discours, voici une démo avec une ligne des points et des étiquettes de valeurs.

demo courbe

Ces étiquettes sont centrées horizontalement avec la ligne .Left = .Left - .Width / 2

Et sont placées au dessus des points par .Top = .Top - .Height

Si on écrit .Top = .Top - .Height / 2 on centre parfaitement sur le point ... mais alors ça devient illisible

Dans cette démo :

* le point zéro est l'angle sup gauche de la cellule E20

* il y a 2 coef de proportion Coef.x et Coef.y pour régler la largeur et la hauteur du graphe

* et on peut facilement ajouter un facteur d'échelle pour agrandir ou diminuer le graphe (voir code)

Pierre

merci beaucoup

cnetre

je voulais que le texte soit centré dans la zone de texte avec un code vba, merci d'avance :)

Avec Excel 2016 c'est déjà centré => voir mon illustration plus haut

Avec Excel 2007, on peut probablement ajouter .ParagraphFormat.Alignment = msoAlignCenter

        With .TextFrame2.TextRange
            .Text = S
            .Font.Size = 8
            .Font.Bold = msoTrue
            .ParagraphFormat.Alignment = msoAlignCenter    ' <= ligne ajoutée
        End With

merci beaucoup :) :)

Rechercher des sujets similaires à "dessin forme vba"