1 pièce(s) jointe(s)
Variable qui ne s'incrémente pas !
Bonjour,
J'ai les structure suivantes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Type dataTab_sup
id As String
name As String
localisation As String
type_sup As String
ipAddr As String
numLicense As String
memPhi As String
dateAcqui As String
dd As String
os As String
resEcran As String
printer As String
End Type
Type local_sup
id As Integer
name As String
dataTab_s() As dataTab_sup
End Type
Type batiment_sup
id As Integer
name As String
local_s() As local_sup
End Type |
A la suite je déclare la variable suivante :
Code:
Public tab_bat_sup() As batiment_sup
J'ai un formulaire que je vous joins
Dans ce formulaire j'ai le code suivant :
Code:
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
| Option Explicit
Public indice_bat As Integer
'Initialisation du formulaire
Private Sub UserForm_Initialize()
Dim cmp As Integer
On Error GoTo fin:
If UBound(tab_bat_sup) <> -1 Then
'Ajout dans la liste déroulante modifiable tous les batiments déjà créés
For cmp = 0 To UBound(tab_bat_sup)
bat_sup.AddItem tab_bat_sup(cmp).name, cmp
Next cmp
End If
fin:
End Sub
Private Sub Suivant_bat_sup_Click()
Unload Me
Loc_form_sup.Show
End Sub
Private Sub Ajouter_bat_sup_Click()
'Variable statique qui permet de savoir le numero du batiment que l'on souhaite ajouter
Static i As Integer
'Variable statique initialisée à 0
ReDim Preserve tab_bat_sup(i)
tab_bat_sup(i).id = i
tab_bat_sup(i).name = CStr(bat_sup.Value)
indice_bat = i
'Incrémentation du compteur
i = i + 1
End Sub |
Le but de ce code est d'enregistrer les informations saisies dans la structure et d'ajouter les noms de bâtiments dans la liste modifiable.
Seulement voila ma variable i ne s'incrémente pas ! Impossible de redimensionner le tableau ! Impossible d'affecter la valeur saisie dans la liste !
Une variable statique est censée garder sa valeur à chaque appel de fonction cela ne veut pas dire que l'on ne peut pas y toucher --'. J'ai vu des exemples sur le forum qui me le prouve !
Merci d'avance
Cordialement
Winflow