Bonjour,
Voici mon code qui me pose probleme et voici mon probleme
J'ouvre un fichier excel en base de donnée (fichier assez gros) il me lit la premiere ligne et la copie le tout dans une boucle tant que nous ne sommes pas sur le derniere enregistrement.
Jusque la tout va bien mais à la ligne "ActiveCell.CopyFromRecordset Rst
" il bug de manière aléatoire et me renvoie une erreur CopyFromRecordset de l'objet Range a échoué...
Merci d'avance...
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 Dim Source As ADODB.Connection Dim Rst As ADODB.Recordset Dim ADOCommand As ADODB.Command Dim Fichier As String, Cellule As String, Feuille As String, I As String 'Adresse de la cellule contenant la donnée à récupérer I = 2 Cellule = "A" & I & ":BK" & I & "" Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille. 'Chemin complet du classeur fermé Fichier = V_Imp Set Source = New ADODB.Connection Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";" Set ADOCommand = New ADODB.Command 'While Not (Rst.EOF) With ADOCommand .ActiveConnection = Source .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]" End With Set Rst = New ADODB.Recordset Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic While Not (Rst.BOF) Set Rst = Source.Execute("[" & Feuille & Cellule & "]") 'Range("A5").Activate ActiveCell.CopyFromRecordset Rst ActiveCell.Offset(1, 0).Activate I = I + 1 Cellule = "A" & I & ":BK" & I & "" Wend Rst.Close Source.Close Set Source = Nothing Set Rst = Nothing Set ADOCommand = Nothing
Partager