SkamakS | Bonjour !
J'ai un tit soucis dans mon code...
En fait ce qu'il se passe, c'est que la fonction Ubound me retourne 0 alors qu'il y a bien une valeur dans le tableau... Mais bizarrement celà ne se produit pas tout le temps...
Voici le code :
Code :
- Type type_soc
- lib As String
- var As Currency
- End Type
- Type type_doc
- rubrique As Integer
- lib_rub As String
- var_mens As Currency
- ste() As type_soc
- End Type
- Dim tab_doc1() As type_doc
- Sub test()
- rassemblement Array("10", "11", "12" ), "10", "Capitaux propres", tab_doc1(), True
- End sub
- Sub rassemblement(tab_rub, rub_uni As Integer, lib_rub As String, tab_doc() As type_doc, soc_uni As Boolean)
- For i = 0 To UBound(tab_rub) - 1
- i3 = -1
- For i2 = 0 To UBound(tab_doc) - 1
- If Len(tab_rub(i)) > 0 Then
- If tab_rub(i) = Mid(tab_doc(i2).rubrique, 1, Len(tab_rub(i))) Then
- If i3 = -1 Then
- i3 = i2
- tab_doc(i3).rubrique = rub_uni
- tab_doc(i3).lib_rub = lib_rub
- If soc_uni = True Then tab_doc(i3).ste(0).lib = ""
- Else
- If i2 <> i3 Then tab_doc(i2).rubrique = 0
- End If
- MsgBox tab_doc(i2).ste(0).var
- If UBound(tab_doc(i2).ste) >= 1 Then
- For i4 = 0 To UBound(tab_doc(i2).ste) - 1
- If soc_uni = True Then
- If i4 > 0 And i2 <> i3 Then tab_doc(i3).ste(0).var = tab_doc(i3).ste(0).var + tab_doc(i2).ste(i4).var
- Else
- If i2 <> i3 Then
- tab_doc(i3).ste(i4).lib = tab_doc(i3).ste(i4).lib + tab_doc(i2).ste(i4).lib
- tab_doc(i3).ste(i4).var = tab_doc(i3).ste(i4).var + tab_doc(i2).ste(i4).var
- End If
- End If
- Next
- End If
- End If
- End If
- Next
- Next
|
c'est à la ligne 35 qu'on voit le problème (lorsque j'utilise le dégogueur)
notament quand i2 = 30... alors qu'il y a bien une valeur dans le tableau "ste"... Strange !
Quelqu'un a une idée ?
Merci Message édité par SkamakS le 16-10-2007 à 14:57:34
|