Utiliser adox pour creer un fichier excel

Résolu
Signaler
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
bonjour,

j'arrive deja a creer des bdd access grace a la methode "create" de "adox".
maintenant j'essais de faire la meme chose avec un fichiers excel mais ca plante.

voici mon code:
Private Sub Command1_Click()
Dim base_excel As New ADOX.Catalog
base_excel.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.xls;Extended Properties=Excel 8.0"
End Sub
(erreur: "operation non autorisee pour ce type d'objet" sur la ligne "base_excel.Create")

pourriez-vous m'aider ?

merci a vous,

alonsyl

3 réponses

Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
12
j'ai trouve la solution, je l'ai poste ci-apres:
http://www.vbfrance.com/forum.v2.aspx?ID=368017
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
ADO ne permet que des Bases de Données..

Pour créér des Fichiers Excel, en cochant Projet...Référence : Microsoft Excel XX Object Library

Set xlApp = New Excel.Application
With xlApp
'Ouverture du document XLS
Set xlBook = .Workbooks.Open(FileName:=EtatEffectif, ReadOnly:=False, Editable:=True)
'Séléction de la feuille 1
Set xlSheet = xlBook.Worksheets(1)
End With

It@li@
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
12
bonjour,

je suis arrive a generer mon fichier excel via adox grace a une procedure directement pompee sur le site de microsoft (http://support.microsoft.com/kb/303814/EN-US/).
je ne sais pas si c'est la meilleure solution mais en tout cas on peut le faire !

voici mon code:
Private Sub Command1_Click()
'***********************preliminaires
CommonDialog1.InitDir = "C:"
CommonDialog1.FileName = "Export_Indices"
CommonDialog1.Filter = "Fichiers EXCEL (*.xls)|*.xls|Tous (*.*) |*.*"
CommonDialog1.ShowSave
If Dir(CommonDialog1.FileName) <> "" Then
ecraser = MsgBox("Un fichier '" & CommonDialog1.FileName & "' existe déjà." + Chr(10) + Chr(10) + "Désirez-vous le supprimer ?", vbYesNo + vbCritical, "Ecraser le fichier existant ?!")
If ecraser = vbYes Then
Kill (CommonDialog1.FileName)
Else:
Exit Sub
End If
End If
'***********la je cree mon classeur excel a l'aide d'adox
Dim base_excel As New ADOX.Catalog
Dim table_excel As New ADOX.Table
Dim colonne_excel As New ADOX.Column
base_excel.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CommonDialog1.FileName & ";Extended Properties=Excel 8.0"
table_excel.Name = "DONNEES"
With colonne_excel
.Name = "DATE"
.Type = adDate
End With
table_excel.Columns.Append colonne_excel
Set colonne_excel = Nothing
If List1.ListIndex = 0 Then
nomcol = "PPA " & List2.Text & "_" & List3.Text
Else:
nomcol = List1.Text
End If
With colonne_excel
.Name = nomcol
.Type = adDouble
End With
table_excel.Columns.Append colonne_excel
base_excel.Tables.Append table_excel
Set colonne_excel = Nothing
Set table_excel = Nothing
Set base_excel = Nothing
'***********ici je remplis mon classeur excel
rst.Open Adodc1.RecordSource, cnx
Dim classeur_excel As New Excel.Application
classeur_excel.Workbooks.Open FileName:=CommonDialog1.FileName, ReadOnly:=False, Editable:=True
classeur_excel.ActiveWorkbook.Worksheets("DONNEES").Cells(1, 1).Font.Bold = True
classeur_excel.ActiveWorkbook.Worksheets("DONNEES").Cells(1, 2).Font.Bold = True
aaa = 2
rst.MoveFirst
Do While rst.EOF <> True
classeur_excel.ActiveWorkbook.Worksheets("DONNEES").Cells(aaa, 1).Value = rst(0)
classeur_excel.ActiveWorkbook.Worksheets("DONNEES").Cells(aaa, 2).Value = rst(1)
aaa = aaa + 1
rst.MoveNext
Loop
classeur_excel.Save
classeur_excel.Quit
Set classeur_excel = Nothing
rst.Close
'****************mise en forme de sortie
ouverture = MsgBox("L'export vers '" & CommonDialog1.FileName & "' a été réalisé." + Chr(10) + Chr(10) + "Désirez-vous le consulter maintenant ?", vbQuestion + vbYesNo, "EXPORT REUSSI")
If ouverture = vbYes Then
classeur_excel.Workbooks.Open FileName:=CommonDialog1.FileName, ReadOnly:=False, Editable:=True
classeur_excel.Visible = True
End If
End Sub

y'a juste un pbl sur la ligne "classeur_excel.Save": l'application me genere un fichier "RESUME.XLW". a la premiere execution, y'a aucun pbl mais aux suivantes il me demande si je veux supprimer le fichier "RESUME.XLW".
qu'est-ce que c'est que ce putain de fichier ? comment eviter de le generer ?

merci a toi,

alonsyl