Comment lire un fichier excel via le VBA SW?

Bonjour, 

j'aimerais récupérer des données d'un excel en fonction du nom de mon assemblage et les inscrire dans les propriétés de celui-ci.

Mais dès que j'excecute mon code, j'ai un message d'erreur "Bibliothèque non inscrite" mais pour autant la références Microsoft Excel 15.0 Object Library " est bien cochée.

Avez vous une idée ? 

 

Sub OpenExcel()

Dim xlApp As Excel.Application
Set xlApp = Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet

With xlApp
    .Visible = True
    .Workbooks.Open ("P:\05-Solidworks\CAO\Demande de developpement.xlsm")
    
End With

End Sub
 

Je ne sais pas pourquoi cela ne fonctionne pas mais voici un site avec de nombreux exemple fonctionnel, dont un avec fichier xls:

https://www.codestack.net/solidworks-api/document/tables/write-excel-table-into-general-table/

 

Un 2ème site avec exemple:

https://www.cadsharp.com/blog/using-microsoft-excel-with-the-solidworks-api/

Avec un peu de chance cela t'aidera et tu pourra ensuite nous faire un retour.

Bonjour, 

j'ai déjà vu ces site et testé mais rien n'y fais il me dit toujours que j'ai un problème de référence :( 

J'ai trouvé ce code qui est fonctionnelle (sw2020 excel 16.0)

Option Explicit

 

Dim swApp As Object
Dim swModel As Object
Dim xlApp As Object

Dim xlSheet As Object
Dim xlBooks As Object
 

Sub Main()

 

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

 

Set xlApp = CreateObject("Excel.Application")

xlApp.Visible = True

xlApp.Workbooks.Open "\\Hul-fps1\fsm$\BOLSTERS.xls"

Set xlSheet = xlApp.ActiveSheet

 

End Sub

Edit:

En remplaçant ta ligne:

Set XlApp=Excel.Application par:

Set xlApp = CreateObject("Excel.Application")

Cela m'ouvre un excel.

 

aaaaah yes, ca m'ouvre l'excel aussi :D ! 

Bizarre je comprend pas la différence ... 

Bon, il faudrait que je fasse une connexion ADODB pour que ce soit plus rapide, mais je le ferais plus tard  

Merci Denis ! 

Bonjour,

C'est le CreateObject qui manquait. Ou sinon il fallait coder comme ci-dessous afin de créer une instance Excel

Set xlApp = New Excel.Application

 

3 « J'aime »