Bonjour à tous ,

j'ai fais une procédure afin de compter le nombre de fois qu'est présent chaque numéro de référence dans une autre feuille et que ce nombre de fois soit mis sur la même ligne que cette référence d'où ce 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Private Sub RemplissageSynthèse4()
 
Application.ScreenUpdating = False
 
ThisWorkbook.Worksheets("SYNTHESE").Activate
 
Dim CodeTemporaire As String
'Déclaration de la connexion
Dim Conn As ADODB.Connection
 
'Déclaration du Recordset
Dim rsT As ADODB.Recordset
 
 
Dim Fichier As String, Direction As String, rSQL As String
 
Direction = ThisWorkbook.Path
Fichier = "OUTIL HD TRAVAIL.xls"
 
    'Instanciation de la connexion
    Set Conn = New ADODB.Connection
 
    'Paramétrage & Ouverture
    With Conn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & Direction & "\" & Fichier & _
    ";Extended Properties=Excel 8.0;"
    .Open
    End With
 
    'Instanciation du Recordset
    Set rsT = New ADODB.Recordset
 
    rsT.ActiveConnection = Conn
 
    i = 2
 
    Do While Not IsEmpty(Cells(i, 1))
 
        CodeTemporaire = Cells(i, 1)
 
        'Insertion de la requête SQL dans rSQL
        rSQL = "SELECT Count([CDCOURTI]) FROM [HD$] WHERE [CDCOURTI]='" & CodeTemporaire & "'"
 
        With rsT
        .ActiveConnection = Conn
        .Open rSQL, Conn
        End With
 
 
        'Copie des données
        Cells(i, 9).CopyFromRecordset rsT
        rsT.Close
        rSQL = ""
        CodeTemporaire = ""
 
        i = i + 1
 
    Loop
 
 
    Conn.Close
 
 Application.ScreenUpdating = True
End Sub
Le résultat renvoyé est bon seulement au bout d'une vingtaine de seconde excel m'affiche que "la liaison avec la feuille est perdue" ainsi que "Memoire insufisante pour continuer" (j'ai 512 mo et tout n'est pas utilisé lors de l'execution dixit le gestionnaire des taches)
Quelqu'un a t-il une idée de solution au problème ???