OVH Cloud OVH Cloud

création dynamique organigramme

15 réponses
Avatar
Aurelia
Bonjour à tous,

Je vaudrais créer dynamiquement un organigramme hiérarchique, c'est-à-dire
une "Shape" contenant un "diagram" ordonné de type "msoDiagramOrgChart" avec
des noeuds.

Mon problème est le suivant : j'arrive bien à créer l'arborescence de
l'organigramme, mais je ne peux rien écrire, depuis le code vba, dans les
bulles de ce dernier. Le seul moyen de valuer le texte des cases du diagram
est de le faire "à la main" depuis excel. Hors, je voudrais une création
dynamique...

Plus précisement, voilà la cause de ce problème : le texte de chaque bulle
est accessible en lecture seule mais je ne peux pas le définir une valeur,
un texte.
La ligne suivante échoue :
shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te
xt = "abcdef"
Car l'attribut "Text" est en lecture seule quand l'objet renvoyé est un
"Range"... Et "Characters" renvoie un "Range" !

Cette ligne-ci réussit car on ne fait qu'une consultation : "MsgBox
shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te
xt"

Quelqu'un aurait-il un moyen de contourner ce problème ? ou de forcer
l'écriture pour cette propriété ?


Merci d'avance,

Aurélia
____________________________________________________________
Sub CreateOrganigramme()
Dim shpDiagram As Shape
Dim dgnRoot As DiagramNode
Dim dgnNext As DiagramNode
Dim intCount As Integer
Dim txt As String

'Add organization chart to current document
Set shpDiagram = ActiveSheet.Shapes.AddDiagram( _
Type:=msoDiagramOrgChart, Left:=10, _
Top:=15, Width:=200, Height:=200)

Set dgnRoot = shpDiagram.DiagramNode.Children.AddNode

' MsgBox
shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Ca
ption

Call ajoutNoeud(shpDiagram, dgnRoot)

' Access the node immediately following
' the first diagram node
Set dgnNext = dgnRoot.Children.Item(1).NextNode

' Add three child nodes to the node immediately
' following the first diagram node
For intCount = 1 To 3
dgnNext.Children.AddNode
Next intCount

End Sub
____________________________________________________________

Sub ajoutNoeud(shpDiagram As Shape, dgnRoot As DiagramNode)
Dim ligne As Integer
Dim shText As Shape
ligne = 1

Do Until IsEmpty(Feuil3.Cells(ligne, 13))
dgnRoot.Children.AddNode


ligne = ligne + 1
Loop
End Sub
____________________________________________________________

5 réponses

1 2
Avatar
Pascal Engelmajer
Salut,
Office XP ? et VB ?
je n'ai pas ces bibliothèques :

MS Windows common controls 6 (SP6)


MS Office 11.0 object library


MS Excel 11.0 object library


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Aurelia" a écrit dans le message de news:
#
Les bibliotèques de références utilisées sont :

MS Windows common controls 6 (SP6)

Ref edit controls

MS Forms 2.0 object library

MS Office 11.0 object library

OLE Automation

MS Excel 11.0 object library

VBA for Application





Merci



Aurélia

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
quelle-est la binliothèque de référence ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Aurelia" a écrit dans le message de news:
#
Bonjour à tous,

Je vaudrais créer dynamiquement un organigramme hiérarchique,
c'est-à-dire


une "Shape" contenant un "diagram" ordonné de type
"msoDiagramOrgChart"



avec
des noeuds.

Mon problème est le suivant : j'arrive bien à créer l'arborescence de
l'organigramme, mais je ne peux rien écrire, depuis le code vba, dans
les


bulles de ce dernier. Le seul moyen de valuer le texte des cases du
diagram

est de le faire "à la main" depuis excel. Hors, je voudrais une
création



dynamique...

Plus précisement, voilà la cause de ce problème : le texte de chaque
bulle


est accessible en lecture seule mais je ne peux pas le définir une
valeur,


un texte.
La ligne suivante échoue :





shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te

xt = "abcdef"
Car l'attribut "Text" est en lecture seule quand l'objet renvoyé est
un



"Range"... Et "Characters" renvoie un "Range" !

Cette ligne-ci réussit car on ne fait qu'une consultation : "MsgBox





shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te

xt"

Quelqu'un aurait-il un moyen de contourner ce problème ? ou de forcer
l'écriture pour cette propriété ?


Merci d'avance,

Aurélia
____________________________________________________________
Sub CreateOrganigramme()
Dim shpDiagram As Shape
Dim dgnRoot As DiagramNode
Dim dgnNext As DiagramNode
Dim intCount As Integer
Dim txt As String

'Add organization chart to current document
Set shpDiagram = ActiveSheet.Shapes.AddDiagram( _
Type:=msoDiagramOrgChart, Left:, _
Top:, Width: 0, Height: 0)

Set dgnRoot = shpDiagram.DiagramNode.Children.AddNode

' MsgBox





shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Ca

ption

Call ajoutNoeud(shpDiagram, dgnRoot)

' Access the node immediately following
' the first diagram node
Set dgnNext = dgnRoot.Children.Item(1).NextNode

' Add three child nodes to the node immediately
' following the first diagram node
For intCount = 1 To 3
dgnNext.Children.AddNode
Next intCount

End Sub
____________________________________________________________

Sub ajoutNoeud(shpDiagram As Shape, dgnRoot As DiagramNode)
Dim ligne As Integer
Dim shText As Shape
ligne = 1

Do Until IsEmpty(Feuil3.Cells(ligne, 13))
dgnRoot.Children.AddNode


ligne = ligne + 1
Loop
End Sub
____________________________________________________________













Avatar
Clément Marcotte
Bonjour,

MS Windows common controls 6 (SP6)



Vient avec Visual Studio version 6. Dans ce cas précis, c'est la
version du Service Pack 6.

MS Office 11.0 object library
MS Excel 11.0 object library



Celles d'Office 2002 portent le numéro 10.


Avatar
Pascal Engelmajer
Salut,
Merci Clément,
J'ai desinstallé Visual basic ...
et je suis à office 2000 version 9.
Je suis surpris de ne pas pouvoir référencer l'objet diagrame hiérarchique
...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

MS Windows common controls 6 (SP6)



Vient avec Visual Studio version 6. Dans ce cas précis, c'est la
version du Service Pack 6.

MS Office 11.0 object library
MS Excel 11.0 object library



Celles d'Office 2002 portent le numéro 10.





Avatar
Aurelia
En fait, j'utilise bien VB et XP avec le nouvel Office 2003



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
Office XP ? et VB ?
je n'ai pas ces bibliothèques :

MS Windows common controls 6 (SP6)


MS Office 11.0 object library


MS Excel 11.0 object library


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Aurelia" a écrit dans le message de news:
#
Les bibliotèques de références utilisées sont :

MS Windows common controls 6 (SP6)

Ref edit controls

MS Forms 2.0 object library

MS Office 11.0 object library

OLE Automation

MS Excel 11.0 object library

VBA for Application





Merci



Aurélia

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
quelle-est la binliothèque de référence ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Aurelia" a écrit dans le message de news:
#
Bonjour à tous,

Je vaudrais créer dynamiquement un organigramme hiérarchique,
c'est-à-dire


une "Shape" contenant un "diagram" ordonné de type
"msoDiagramOrgChart"



avec
des noeuds.

Mon problème est le suivant : j'arrive bien à créer l'arborescence
de




l'organigramme, mais je ne peux rien écrire, depuis le code vba,
dans




les
bulles de ce dernier. Le seul moyen de valuer le texte des cases du
diagram

est de le faire "à la main" depuis excel. Hors, je voudrais une
création



dynamique...

Plus précisement, voilà la cause de ce problème : le texte de chaque
bulle


est accessible en lecture seule mais je ne peux pas le définir une
valeur,


un texte.
La ligne suivante échoue :







shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te

xt = "abcdef"
Car l'attribut "Text" est en lecture seule quand l'objet renvoyé est
un



"Range"... Et "Characters" renvoie un "Range" !

Cette ligne-ci réussit car on ne fait qu'une consultation : "MsgBox







shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te

xt"

Quelqu'un aurait-il un moyen de contourner ce problème ? ou de
forcer




l'écriture pour cette propriété ?


Merci d'avance,

Aurélia
____________________________________________________________
Sub CreateOrganigramme()
Dim shpDiagram As Shape
Dim dgnRoot As DiagramNode
Dim dgnNext As DiagramNode
Dim intCount As Integer
Dim txt As String

'Add organization chart to current document
Set shpDiagram = ActiveSheet.Shapes.AddDiagram( _
Type:=msoDiagramOrgChart, Left:, _
Top:, Width: 0, Height: 0)

Set dgnRoot = shpDiagram.DiagramNode.Children.AddNode

' MsgBox







shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Ca

ption

Call ajoutNoeud(shpDiagram, dgnRoot)

' Access the node immediately following
' the first diagram node
Set dgnNext = dgnRoot.Children.Item(1).NextNode

' Add three child nodes to the node immediately
' following the first diagram node
For intCount = 1 To 3
dgnNext.Children.AddNode
Next intCount

End Sub
____________________________________________________________

Sub ajoutNoeud(shpDiagram As Shape, dgnRoot As DiagramNode)
Dim ligne As Integer
Dim shText As Shape
ligne = 1

Do Until IsEmpty(Feuil3.Cells(ligne, 13))
dgnRoot.Children.AddNode


ligne = ligne + 1
Loop
End Sub
____________________________________________________________

















Avatar
gibe
Le jeudi 08 Janvier 2004 à 10:21 par Aurelia :
Bonjour à tous,

Je vaudrais créer dynamiquement un organigramme hiérarchique,
c'est-à-dire
une "Shape" contenant un "diagram" ordonné de type
"msoDiagramOrgChart" avec
des noeuds.

Mon problème est le suivant : j'arrive bien à créer
l'arborescence de
l'organigramme, mais je ne peux rien écrire, depuis le code vba, dans
les
bulles de ce dernier. Le seul moyen de valuer le texte des cases du diagram
est de le faire "à la main" depuis excel. Hors, je voudrais
une création
dynamique...

Plus précisement, voilà la cause de ce problème : le texte
de chaque bulle
est accessible en lecture seule mais je ne peux pas le définir une
valeur,
un texte.
La ligne suivante échoue :
shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te
xt = "abcdef"
Car l'attribut "Text" est en lecture seule quand l'objet
renvoyé est un
"Range"... Et "Characters" renvoie un "Range" !

Cette ligne-ci réussit car on ne fait qu'une consultation :
"MsgBox
shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Te
xt"

Quelqu'un aurait-il un moyen de contourner ce problème ? ou de forcer
l'écriture pour cette propriété ?


Merci d'avance,

Aurélia
____________________________________________________________
Sub CreateOrganigramme()
Dim shpDiagram As Shape
Dim dgnRoot As DiagramNode
Dim dgnNext As DiagramNode
Dim intCount As Integer
Dim txt As String

'Add organization chart to current document
Set shpDiagram = ActiveSheet.Shapes.AddDiagram( _
Type:=msoDiagramOrgChart, Left:, _
Top:, Width: 0, Height: 0)

Set dgnRoot = shpDiagram.DiagramNode.Children.AddNode

' MsgBox
shpDiagram.DiagramNode.Children.FirstChild.TextShape.TextFrame.Characters.Ca
ption

Call ajoutNoeud(shpDiagram, dgnRoot)

' Access the node immediately following
' the first diagram node
Set dgnNext = dgnRoot.Children.Item(1).NextNode

' Add three child nodes to the node immediately
' following the first diagram node
For intCount = 1 To 3
dgnNext.Children.AddNode
Next intCount

End Sub
____________________________________________________________

Sub ajoutNoeud(shpDiagram As Shape, dgnRoot As DiagramNode)
Dim ligne As Integer
Dim shText As Shape
ligne = 1

Do Until IsEmpty(Feuil3.Cells(ligne, 13))
dgnRoot.Children.AddNode


ligne = ligne + 1
Loop
End Sub
____________________________________________________________


Bonsoir,


http://boisgontierjacques.free.fr/pages_site/lesimages.htm#organigrammeS


JB
1 2