Bonjour,

Je me permet de demander de l'aide car impossible de trouver l'erreur depuis 1 jour ^^ .*

Je développe actuellement un outil de suivi qui est censé mettre à jour une sa base de données Access via un extract quotidien de 150000 ligne et 98 Colonnes.

Pour l'ouverture du Fichier TxT sur Excel et charger les données dans l'Array pas de soucis j'ai su faire (je ne garde que 7 colonnes au final).
Par contre quand je dois boucler sur mon array pour comparer les valeurs de la DB (stocker sur des dicos) avec celle de l'array et éventuellement ajouter ou update la ligne.
Malheureusement après avoir épluché le net, il me pète une erreur à la première boucle ^^

j'ai bien mon array en variable local avec toutes mes valeurs dedans comme ceci :

(0,0) val1
(0,1) val2
(0,2) val3
(0,3) val4
(0,4) val5
(0,5) val6
(0,6) val7

(1,0) val1
(1,1) val2
(1,2) val3
(1,3) val4

etc...

Msg d'erreur : Index was outside the bounds of the array

code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
  Dim rng As Excel.Range = xlWorkSheet.Range("A2:G" & Nbligne)
        Dim MyArray As Object(,) = CType(rng.Value, Object(,))
 
        'requete addnew
        Sql = "SELECT *FROM Tbl_Prix Where [N°] = 0"
        Call  Rq_DB(Sql)
 
 
        For i = 0 To UBound(MyArray)
 
 
 
            If dico_REF.ContainsKey(CStr(MyArray(i, 0))) = False Then  <<<< erreur ici
                'Addnew line
                rsdb.AddNew()
                rsdb.Fields("1").Value = CStr(MyArray(i, 0))          
                rsdb.Fields("2").Value = CStr(MyArray(i, 1))          
                rsdb.Fields("3").Value = CStr(MyArray(i, 2))              
                rsdb.Fields("4").Value = CStr(MyArray(i, 3))                 
                rsdb.Fields("5").Value = CStr(MyArray(i, 4))            
                rsdb.Fields("6").Value = CStr(MyArray(i, 5))            
                rsdb.Fields("7").Value = CStr(MyArray(i, 6))      
                rsdb.Update()
 
end if
J'ai aussi essayer toto = MyArray(i, 0)) même erreur

Alors juste pour préciser le VB.net c'est assez récent pour moi, j'ai développé 5 ans en VBA et j'ai du coder des millier de boucles sans jamais de problème donc j'ai pas encore la logique VB.

socle : Visual studio express 2012

Merci d'avance.

Peall