Un composant activeX ne peut pas creer d'objet

lolo3813 Messages postés 1 Date d'inscription mardi 27 décembre 2005 Statut Membre Dernière intervention 27 février 2006 - 27 févr. 2006 à 17:52
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 27 févr. 2006 à 18:10
Bonjour,

J'ai un petit problème avec une base access.
Je veux recuperer un fichier csv pour importer ses donnees dans ma base access.

Cela fonctionne sans probleme sur ma machine avec le pack Office XP (Excel et Access XP).
J'essaye de le deployer sur une machine sans le pack Office.
J'ai installer les runtime office2000 mais lorsque j'essaye d'importer mon fichier csv, j'ai le message d'erreur suivant:
"Un composant activeX ne peut pas creer d'objet"

Voila mon code:
Public ClasseurXLS As Object

Private Sub Cmd_Importation_Click()
Dim PathFic As String
Dim nomfic As String
Dim NomFicXLS As String
Dim NomTable As String
Dim iCodeUser As String
Dim iNomuser As String
Dim iEntreeAuto As String
Dim iEntreeRefu As String
Dim iSortiAuto As String
Dim iSortieRefuse As String
Dim i As Integer
Dim sql As String
Dim dbs As Database
Dim réponse As Variant
Dim nomtotal As String
Dim annee As String
Dim Mois As String
Dim Jour1 As String
Dim Jour2 As String
Dim date1 As Date
Dim date2 As Date

Set dbs = CurrentDb
Set ClasseurXLS = CreateObject("Excel.application")

NomTable = "ImportCSV"

'Initialisation Nom du fichier à importer
If (Text1.Value <> "") Then
nomtotal = Text1
nomfic = Left(Right(nomtotal, 13), 8)
annee = Left(nomfic, 2)
Mois = Right(Left(nomfic, 4), 2)
Jour1 = Right(Left(nomfic, 6), 2)
Jour2 = Right(Left(nomfic, 8), 2)

date1 = CDate(Jour1 & "/" & Mois & "/20" & annee)
date2 = CDate(Jour2 & "/" & Mois & "/20" & annee)
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

If Jour1 = Jour2 Then
MsgBox (date1)

'Ouverture du classeur d'importation
ClasseurXLS.Workbooks.Open nomtotal

i = 2
Do While ClasseurXLS.Cells(i, 1) <> ""
'Recuperation des données lignes par lignes
iCodeUser = ClasseurXLS.Cells(i, 1)
iNomuser = ClasseurXLS.Cells(i, 2)
iEntreeAuto = ClasseurXLS.Cells(i, 3)
iEntreeRefu = ClasseurXLS.Cells(i, 5)
iSortiAuto = ClasseurXLS.Cells(i, 7)
iSortieRefuse = ClasseurXLS.Cells(i, 9)
'Insertion des données dans la table
sql = "INSERT INTO " & NomTable & " (CodeUSer, NomUser, EntreeAuto, EntreeRefu, SortiAuto, SortieRefuse, Fichier) values ('" & iCodeUser & "','" & iNomuser & "', '" & iEntreeAuto & "' , '" & iEntreeRefu & "', '" & iSortiAuto & "' , '" & iSortieRefuse & "' , '" & nomfic & "');"

dbs.Execute sql
i = i + 1
Loop

'Fermeture du classeur d'importation
ClasseurXLS.Workbooks.Close

Le Probleme vient de : Set ClasseurXLS = CreateObject("Excel.application")
cela ne fonctionne pas avec les runtimes.

Que faire, qqun a une idee ??

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 févr. 2006 à 18:10
Salut
Comme on le répète à longueur de temps, les applications VB ne se copient pas d'une machine à une autre, il faut utiliser un empaquetage de l'application et l'installer sur l'autre machine.
En suivant cette règle, le Setup embarquera les fichiers nécessaires à ton application, notamment, la/les DLL redistribuables de Office nécessaire(s)..

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
Rejoignez-nous