Bonjour,
Je suis actuellement en train de travailler sur des listes de données sous access, dans un premier temps, pour exercer mon VBA, j'ai fait des test d'algos sur excel, etant donné que je dois traiter un nombre conséquent de données, je me retrouve maintenant obligé de passer sous access mais je ne comprend pas bien comment adapter mon code.
Mon code consiste en une double boucle qui compare des dates pour savoir si des données sont obsoletes ou non, vu mes bases, je me retrouve avec 1100*9millions de tours de boucles. J'avais donc stocké toutes mes données dans une variable tableau sous excel pour accelerer l'execution, malheuresement, excel ne permet pas de traiter des tableau de 9 millions de ligne.
Mon problème est que je ne sais pas comment accèder simplement aux données sur access de façon a les mettre dans mes variables "tableaux".
Voici mon 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Sub optim() Dim mesx As Double Dim mesy As Double Dim theox As Double Dim theoy As Double Dim dist As Double Dim bol As Boolean 'Déclaration tableaux Dim tabs() Dim tabm() 'Enregistrement des valeurs dans les tableaux lasts = Sheets("Feuil1").Range("A1").End(xlDown).Row tabs = Sheets("Feuil1").Range("A2:H" & lasts).Value lastm = Sheets("Feuil2").Range("A1").End(xlDown).Row tabm = Sheets("Feuil2").Range("A2:E" & lastm).Value For i = 1 To lasts - 1 theox = tabs(i, 5) theoy = tabs(i, 6) For j = 1 To lastm - 1 mesx = tabm(j, 4) mesy = tabm(j, 5) dist = Sqr((mesx - theox) ^ 2 + (mesy - theoy) ^ 2) If dist < 100 Then If tabs(i, 8) < tabm(j, 2) Then Sheets("Feuil1").Range("J" & i).Value = "OK" Else Sheets("Feuil1").Range("J" & i).Value = "OBSOLETE !!" Sheets("Feuil1").Range("J" & i).Interior.Color = RGB(255, 0, 0) End If End If Next Next End Sub
Merci![]()
Partager