Salut le Forum, Je suis nouveau dans ce forum et j'espère que je pourrai vous apporter une aide quelconque dans les mois à venir mais en ce moment, c'est moi qui ai besoin de vos connaissances.
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:
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é:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 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 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.
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 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
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
@+++
Partager