XL 2010 Dictionnaire ou collection d'élements structurés

vgendron

XLDnaute Barbatruc
Bonjour à toutes et tous !
Ca faisait longtemps que je n'étais pas revenu..
aussi.. pour fêter ça, je vous soumets un petit problème

Pour une application complète du boulot, j'ai besoin de lister tout un tas d'élements présents dans un script de test....
ces éléments peuvent etre: un graphique, un Sousgraphe une variable, un bloc de vérification, une liste de signaux....
chaque élément a ses propres "composants"

c'est pour cela que j'ai défini différents types persos:
quelques exemples parmi tant d'autres..
VB:
Type Graphe
    ID As Integer
    StepNumber As Integer
    TitreGraphe As String
    VerifAssociée As String
    DateDeb As Long
    DateFin As Long
    NbSousGraphes As Integer
    AliasSousGraphe(1 To NbSousGraphes) As String 'Pas sur que cette définition "Dynamique" fonctionne non plus.. pas encore testé
End Type

Type SousGraphe
    ID As Integer
    ListSig As String
    GrapheAssocié as string
End Type

Type ListSig
    AliasListSig As String
    NbSig As Long
    AliasSig_xx(1 To NbSig) As String
End Type

Type Variable
    typeVar As String
    Paramètres As String
    FenDeb As Long
    FenFin As Long
End Type

ainsi qu'un dictionnaire pour chaque type
VB:
Public DicoCheck_Variables As Scripting.Dictionary 'Toutes les variables calculées pendant les vérifs, avec la syntaxe complète (instruction utilisée + paramètres)
Public DicoCheck_Verifs As Scripting.Dictionary 'toutes les vérifis utilisées pendant les vérifs
Public DicoCheck_ListSig As Scripting.Dictionary 'tous les signaux utilisés pendant les vérifs
Public DicoCheck_Graphes As Scripting.Dictionary 'tous les graphes tracés pendant les vérifs
Public DicoCheck_SousGrapes As Scripting.Dictionary

lorsque je parcours mon script de test, je suis capable de dire quel type d'éléments je suis en train de définir...
et afin de controler si l'élément n'existe pas déjà, je pense utiliser un dictionnaire pour chaque type d'éléments..

THE question:
est il possible de définir un dictionnaire d'éléments structurés? (j'en doute)
par ex
dans le dictionnaire_graphique, les clés sont "graphique1, graphique 2, graphique 3...."
chaque graphique aillant ses propres composants...

quelle serait la solution?

Merci
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

Exemple:


VB:
Type Personne
  Nom As String
  age As Integer
End Type

Sub essai()
  Set d = CreateObject("scripting.dictionary")
  Dim a(1 To 5) As Personne
  Dim temp As Personne
  Dim temp2 As Personne
  a(1).Nom = "Dupont": a(1).age = 40
  a(2).Nom = "Balu": a(2).age = 30
  a(3).Nom = "Charlie": a(3).age = 20
  a(4).Nom = "Durand": a(4).age = 25
  a(5).Nom = "Campas": a(5).age = 35
  For i = 1 To 5
    clé = a(i).Nom
    b = Array(a(i).Nom, a(i).age)
    d(clé) = b
  Next i
  MsgBox d.Item("Balu")(1)
  Tbl = Application.Transpose(Application.Transpose(d.items)) ' dictionnaire dans array b(1 to n,1 to 3)
  MsgBox Tbl(2, 2)
End Sub


Boisgontier
 

vgendron

XLDnaute Barbatruc
Salut Boisgontier !
merci !
en fait, j'avais bien vu cette solution sur ton site.. et.. euh.. j'avais pas bien compris....
et la. tout à coup.. révélation !! mais oui. bien sur.. il faut associer un tableau avec le dico... !!

on est bien d'accord..
le dico a pour clés le nom de l'élément (dans mon cas, ce serait Graphique1, graphiqe2....
et la valeur. c'est un array constitué de tous les composants...

dans ce cas.. l'utilisation du dico n'a pour interet que de pouvoir controler rapidement l'existence de l'élément..
une boucle sur le tablo ferait tout aussi bien l'affaire..
ou y a t il un autre avantage que je ne perçois pas ?
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87