Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Application externe - Conversion de fichier SLDDRW en PDF

Xtian_Québec

XLDnaute Occasionnel
Salut le Forum, Je suis content d'avoir découvert ce forum il y a quelques années, sans vous je n'aurais pas autant appris...

J'aimerais obtenir de l'aide encore une fois. Prendre note que je ne suis pas trop familier avec les fonctions Set Object et en fouillant ici et là sur d'autres forum (MyCADservices ainsi que sur Avenao) et j'ai trouvé un bout de code qui, selon moi, pourrais régler mon problème mais j'essais de l'adapter et ça ne fonctionne pas.

Voici d'abord ce que je veux faire:
J'ai un fichier Excel qui récupère des dessins en format PDF avec le code suivant:

Sub RécupèreDessinPDF()
Range("A19").Select
ActiveSheet.OLEObjects.Add(Filename:= _
"C:\MonRépertoire\MonDessin.pdf", Link:=False, _
DisplayAsIcon:=False).Select
End Sub
Ce code fonctionne très bien. Par contre, ce code ne fonctionne pas avec des fichiers dessins dont les extensions se terminent par .dwg, .slddrw et .dfx. Les fichiers slddrw sont des dessins développés avec SolidWorks et on peut, à partir de ce programme, ouvrir les dessins et les enregistrer sous PDF. Donc ce que je veux réaliser, c'est ouvrir un dessin avec l'application SolidWorks avec mon code (dans Excel) et enregistrer le dessin en format PDF dans le même répertoire. Voici le code que j'ai trouvé:

Sub main()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim swModel As SldWorks.ModelDoc2
Dim sPathName As String
Dim sExtension As String
Set swApp = Application.SldWorks
sPathName = swModel.GetPathName
Set swModel = swApp.ActiveDoc 'associe Swmodel au document en cours
Set Part = swApp.ActiveDoc 'associe part au document en cours
sPathName = swModel.GetPathName 'recupere le nom complet du document actif
sPathName = Left(sPathName, Len(sPathName) - 6) 'suppr des 6 derniers caractères
sPathName = sPathName + "SLDDRW - Feuille1.dwg" ' ajoute SLDDRW - Feuille1.dwg (pour respecter la casse imposer par impression multidocuments
sExtension = Right(swModel.GetPathName, 6)
Part.Save2 False
Part.ViewZoomtofit2 'zoom tout
Part.SaveAs2 sPathName, 0, True, False 'sauvegarde en dwg dans le meme dossier que le fichier en cours
End Sub

Ce code est probablement assez explixcite pour un connaisseur mais comme je n'en suis pas un, je m'y perds un peu. Ce code enregistre un slddrw en dwg mais je crois que la logique, lorsque je comprendrai, sera la même pour enregistrer les fichier en format pdf.

Prendre note que j'utilise un poste de travail qui a SolidWorks donc je peux sélectionner les Library Type dans les préférences Visual basic, car elles sont nécessaires à l'exécution du code.

J'ai tenté d'adapter ce code à mes besoins mais ça ne fonctionne pas. Je suis vraiment novice lorsqu'il s'agit d'exécuter des codes qui touchent une autre application...Votre aide SVP

Ce qu'il me faudrait, c'est comprendre, étape par étape ce qui se passe dans ce code.

Merci de votre habituelle assistance

Xtian_Québec
 
C

Compte Supprimé 979

Guest
Re : Application externe - Conversion de fichier SLDDRW en PDF

Salut Xtian,

Si personne n'a répondu encore, c'est que personne ne sait, moi le premier !

Je ne connais pas et je n'ai pas "SolidWorks" !

La seule chose que je peux te dire, éventuellement :
c'est qu'en général dans une application lorsque l'on fait un "Sauvegarder sous" c'est pour enregistrer sous le format de fichier que l'application est capable d'ouvrir !

Donc dans ton cas je pencherais plutôt pour un truc du style (d'après ton code) :
Code:
Part.ExportTo "NomFichier"​


Si cela peut t'aider
 

Xtian_Québec

XLDnaute Occasionnel
Re : Application externe - Conversion de fichier SLDDRW en PDF

Merci Bruno.

Pour le Update, honnêtement, je ne savais pas comment faire...je sais qu'on ne doit pas "créer" de nouveau post pour un même problème mais je croyais sincèrement que mon post n'avait pas été vu par suffisamment d'expert !!!

Pour ce qui est de mon problème, le SaveAs semble fonctionner car selon les informations que j'ai obtenue sur le forum SolidWorks, cette fonction est acceptable. Je tente d'exécuter ce code et j'obtiens le message d'erreur suivant:

Erreur d'exécution 438
Propriété ou méthode non gérée par cet objet
à la commande
Set swApp = Application.SldWorks

je me suis assuré de cocher toutes les préférence SolidWorks dans VB.

Comme je disais dans mon post, c'est le Set Object qui semble être le problème.

Xtian
 
C

Compte Supprimé 979

Guest
Re : Application externe - Conversion de fichier SLDDRW en PDF

J'ai trouvé ça sur le forum AVENAO

Dim swApp As SldWorks.SldWorks
Set swApp = Application.SldWorks

Essaye ça pour voir ?
 

Xtian_Québec

XLDnaute Occasionnel
Re : Application externe - Conversion de fichier SLDDRW en PDF

Re Bruno,

j'ai modifié dans mon code
Set swApp = Object
pour
Set swApp = Application.SldWorks
Même message d'erreur:
Erruer d'exécution 438

Je ne comprend pas pourquoi la propriété ou méthode n'est pas gérée par l'objet...

Je cherche également sur d'autres forums pour trouver une solution...mais je crois que le problème est avec Excel...

Merci de m'aider

Xtian
+++
 
C

Compte Supprimé 979

Guest
Re : Application externe - Conversion de fichier SLDDRW en PDF

Re Xtian,

Est-ce que tu peux déjà faire :
Code:
[I]Dim swApp As [B][COLOR=blue]SldWorks.SldWorks[/COLOR][/B][/I]

Lorsque tu saisi : Dim swApp As + Espace, l'éditeur VBA te donne la possibilité de choisir SldWorks !?

Si NON alors il te manque une référence à l'aplication.

A+
 

Xtian_Québec

XLDnaute Occasionnel
Re : Application externe - Conversion de fichier SLDDRW en PDF

Re Bruno

À ta question, OUI.
Il y a deux sldWorks
(1) le permier a un icône comme des livres (¦¦¦\) Excuse le signe mais ça ressemble à ça et c'est comme l'icône de Office.
et (2) l'autre a un icône (petit carré avec 3 petits rectangles) comme celui de Addin

J'ai tenté les deux après As et ça ne fonctionne pas. Même erreur...Tout de suite après mon As, j'ai les deux choix (1) et (2) mais après avoir fait un choix, lorsque je tappe le point (.), il n'y a qu'un choix, le (2)

Je suis vraiment nul dans ce genre de code...
Merci de m'aider.

Xtian
@+++
 
C

Compte Supprimé 979

Guest
Re : Application externe - Conversion de fichier SLDDRW en PDF

Xtian,

Lorsque tu défini "Dim" une variable objet avec As tu peux définir un Objet Application (petits livres)

Ce Objet Application possède une/des méthodes (carré avec 3 rectangles)

Donc il faut faire : Dim swApp As SldWorks(petits livres).SldWorks(Carré)

Un lien ou pas mal de choses sont expliquées
Ce lien n'existe plus

Sinon pour ton problème, je ne sais pas d'ou cela peut venir !

A+
 

Xtian_Québec

XLDnaute Occasionnel
Re : Application externe - Conversion de fichier SLDDRW en PDF

Merci Bruno.

Je vais visiter ton lien, question de m'aider à comprendre...
En passant, j'ai trouvé sur le forum de MyCADservice le nom d'une personne qui semble s'y connaître beaucoup avec Excel et SolidWorks...Je lui ai posté un fil, j'espère qu'il aura une solution à mon problème.

Si toutefois, il te viens d'autres idées pour effectuer ce que je veux accomplir, je suis preneur.

Merci encore pour tes réponses rapides.

Xtian
@+++
 

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
605
Réponses
2
Affichages
357
Réponses
3
Affichages
427
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…