bonjour,

Je rencontre un petit soucis dans la gestion d'un tableau dynamique membre d'une structure.

Voici ma structure de donnée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Public Structure structdef
        Dim nbEmploye() As Integer = New Integer() {}
        Dim capHHebdo() As Integer
        Dim capHMensuel() As Integer
 End Structure
 
Dim ResultatFeuille() As structdef = New structdef() {}
Le soucis c qu'il ne semble pas possible d'initialiser une donnée de cette façon à moins qu'elle ne soit "shared".
Voici l'erreur :

Les initialiseurs pour les membres de structure ne sont valides que pour les membres et constantes 'Shared'.

L'autre soucis, si je n'initialise pas mon tableau a vide :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 Public Structure structdef
        Dim nbEmploye() As Integer
        Dim capHHebdo() As Integer
        Dim capHMensuel() As Integer
    End Structure
Lorsque je tente de faire un Redim sur le tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
ReDim Preserve ResultatFeuille(col).nbEmploye(ResultatFeuille(col).nbEmploye.Length)
J'ai une erreur de :

L'index se trouve en dehors des limites du tableau.
J'ai donc modifié ma structure comme suis

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Public Structure structdef
        Shared nbEmploye() As Integer = New Integer() {}
        Dim capHHebdo() As Integer
        Dim capHMensuel() As Integer
  End Structure
Le soucis c qu'avec cette méthode je n'ai plus la possibilité d'avoir un tableau nbEmployé indépendant pour chaque ResultatFeuille la modification de la taille d'un seul nbEmployé, modifie tous les autres.

Je cherche donc un moyen d'initialiser vide mon nbemployé dans ma structure puis de pouvoir le faire grandir dynamiquement au besoin.

Je ne sais pas si ce que je cherche à faire est possible et surtout si j'ai bien exprimé mon problème.

Si vous avez une idée je vous remercie d'avance.

cordialement