Bonjour,

Ma question est relative à un code VBA qui fonctionnait en 2003 mais apparemment ne fonctionne plus en 2007.

J'ai fait un programme qui dessine des ellipses autour de groupes de points, sur un graphique en nuage, puis crée des textes donnant le nom de chaque groupe, avec des connecteurs allant du texte à l'ellipse.


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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
' Calcul de l'ellipse et stockage des points dans le tableau TPE
'........
' Wsa est la feuille active
' Colgr est la couleur du groupe
' ...
 
' Création de l'ellipse
With Wsa.Shapes.AddPolyline(TPE)
    .Line.ForeColor.RGB = Colgr
    .Fill.Visible = False
    .Name = "GRP_" & ig
    .ZOrder msoBringToFront
End With
 
' suite...
' Calcul du positionnement des textes selon position et orientation de l'ellipse
' CVX et CVY sont des fonctions qui calculent la positon en points selon les valeurs des coordonnées,
' la position et la dimension de la zone du graphique
' TGRP(1,ig) contient le nom du groupe ig
' x et y sont les coordonnées du début du texte
' xx et yy sont les coordonnées de l'extrémité de l'ellipse choisie selon la position
'...
 
' Création du texte
With Wsa.Shapes.AddTextbox(msoTextOrientationHorizontal, CVX(x), CVY(y), 50, 50)
    .Line.ForeColor.RGB = Colgr
    .Fill.Visible = False
    .Name = "NGRP_" & ig
    .TextFrame.Characters.Text = TGRP(1, ig)
    .TextFrame.Characters.Font.Color = Colgr
    .TextFrame.Characters.Font.Bold = True
    .TextFrame.AutoSize = True
End With
 
' Création du connecteur
With Wsa.Shapes.AddConnector(msoConnectorStraight, CVX(x), CVY(y), CVX(xx), CVY(yy))
    .Line.ForeColor.RGB = Colgr
    .Name = "CGRP_" & ig
    .ConnectorFormat.BeginConnect Wsa.Shapes("NGRP_" & ig), 1
    .ConnectorFormat.EndConnect Wsa.Shapes("GRP_" & ig), 1
    .RerouteConnections
End With
'....
Le connecteur se crée bien, avec un point d'accroche sur le texte, mais pour l'accroche vers l'ellipse, j'ai un message du style
'Valeur incorrecte pour un paramètre'.

En interrogeant .ConnectionSiteCount j'obtiens un '0', ce qui signifie qu'il n'y a apparemment aucun point d'accroche sur un polygone.
Cela fonctionnait très bien sous 2003.

Quelqu'un sait-il s'il y a une astuce (par exemple une méthode pour créer un point d'accroche sur le polygone), ou bien si effectivement Microsoft aurait supprimé cette fonctionnalité en 2007 ?

Merci de vos réponses