Bonjour,
J'ai réalisé une appli Access2000. Il y a un module qui execute le code ci-dessous. Ce code fonctionne parfaitement sur mon PC, mais pas sur d'autres. Le message est le suivant : Erreur d'execution 429 - Un composant ActiveX ne peut pas créer d'objet.
Le débogueur me surligne
Je présume que c'est GetObject qui pose un souci, mais je n'ai pas trouvé. Et bien sur, aucune indication sur le nom du composant activex. A moins que ce ne soit un problème de déclaration sur 'ExcelWorksheet '.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set ExcelWorksheet = GetObject(MaBD1 & "\ImportV3.xls", "Excel.Sheet")
Le pire, c'est que, à l'ouverture du fichier excel, j'execute une macro, qui s'execute bien.
Sur les PC, même version de Windows XP SP2, même version de Access2000, même version de Ecxel2000, même références dans le menu 'outil' ->'références'.
D'où celà peut il bien venir???![]()
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 Function GetExcel() Dim ExcelWorksheet As Object 'Récupère le chemin de la base de donnée Dim MaBD1 MaBD1 = Application.CurrentProject.Path 'chemin du fichier sans nom ni extension 'MaBD1 = Application.CurrentProject.Name 'Nom et extension du fichier 'MaBD1 = Application.CurrentProject.FullName 'chemin et nom du fichier avec extension 'Vérifie si le fichier excel existe ou non dans le même répertoire _ que le fichier Access (si fichier supprimé, déplacé ou renomé If Dir(MaBD1 & "\ImportV3.xls", vbHidden) <> "" Then 'le fichier existe (vbHidden permet de le retrouver même s'il est caché) 'Vérifie si le fichier est ouvert If IsFileOpen(MaBD1 & "\ImportV3.xls") Then 'Utilise la Function dans le module 'Fichier Ouvert' MsgBox "Le fichier " & MaBD1 & "\ImportV3.xls est déjà ouvert. Veuillez fermer le classeur et réessayer.", vbOKOnly + vbCritical, "Importation interompue" Else 'Utilise le chemin pour ouvrir le fichier Excel Set ExcelWorksheet = GetObject(MaBD1 & "\ImportV3.xls", "Excel.Sheet") SendKeys "{LEFT}" SendKeys "{ENTER}" 'Définit la non visibilité du fichier Excel ouvert ExcelWorksheet.Parent.Windows(1).Visible = True ExcelWorksheet.Application.Visible = False 'Pilote le fichier, mettre le code des actions à effectuer ExcelWorksheet.Application.Quit 'ExcelWorksheet.Application.Cells(1, 1).Value = "N°Client" SendKeys "{ENTER}" 'Valide automatiquement l'enregistrement du fichier ' Libère la référence à l'application et à la feuille de calcul. Set ExcelWorksheet = Nothing End If Else MsgBox "Le fichier 'ImportV3.xls' a été renomé, déplacé ou supprimé. Veuillez remettre le fichier dans le même répertoire que la base de données et le nomer 'ImportV3.xls', puis essayez de nouveau.", vbOKOnly + vbCritical, "Importation interompue" End If 'Fin de la fonction End Function
Partager