Google+

Liste des fichiers ouverts (vba SW16) Sujet résolu

Vous cherchez des macros prêtes à l’emploi, c’est ici !

Modérateurs: xavierb, annwn

Liste des fichiers ouverts (vba SW16)

Messagepar pirro » Mer 19 Juil 2017 20:25

Salut,

Je cherche un code en VBA sur solidworks 2016, me listant tous les fichiers ouverts (pièces, assemblages et mises en plan).

L'objectif c'est de pouvoir killer (fermer sans enregistre) tous les fichiers ouverts.

L'idée du code c'est de lister les documents ouverts, puis par une boucle les rendre actifs un par un et les fermer grâce aux lignes suivantes :

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
swApp.CloseDoc swModel.GetTitle

Merci pour votre aide.
pirro
Néophyte
 
Messages: 6
Inscription: Mer 19 Oct 2016 16:16
Version de SolidWorks et SP: SolidWorks 2016 SP4.0

Share On:

Partagez sur Facebook Facebook Partagez sur Twitter Twitter

Re: Liste des fichiers ouverts (vba SW16)  Sujet résolu

Messagepar vspemens » Jeu 20 Juil 2017 11:08

Bonjour,

Cela conviendrait - il ?

Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelTitle As SldWorks.ModelDoc2
Dim swModelPath As SldWorks.ModelDoc2
Dim cTitle As New Collection
Dim vTitle As Variant
Dim cPath As New Collection
Dim vPath As Variant
Set swApp = Application.SldWorks
Set swModel = swApp.GetFirstDocument
While Not swModel Is Nothing
' Assembly components are opened, but are not visible
' until opened by the user
Debug.Print swModel.GetPathName & " [" & swModel.Visible & "]"
Debug.Print " " & swModel.GetTitle & " [" & swModel.GetType & "]"
' The document name contains a filename extension
' if the document has been saved
' and is subject to Microsoft Windows Explorer setting;
' the document name does not contain a
' filename extension if the document has not been saved;
' ModelDoc2::GetPathName is blank until the file is saved
cTitle.Add swModel.GetTitle
cPath.Add swModel.GetPathName
Set swModel = swModel.GetNext
Wend
Debug.Print " "
For Each vTitle In cTitle
Set swModelTitle = swApp.GetOpenDocument(vTitle): Debug.Assert Not swModelTitle Is Nothing
Debug.Print swModelTitle.GetPathName & " [" & swModelTitle.Visible & "]"
Debug.Print " " & swModelTitle.GetTitle & " [" & swModelTitle.GetType & "]"
Next vTitle

Debug.Print " "
For Each vPath In cPath
Set swModelPath = swApp.GetOpenDocument(vPath)
If Not swModelPath Is Nothing Then
Debug.Print swModelPath.GetPathName & " [" & swModelPath.Visible & "]"
Debug.Print " " & swModelPath.GetTitle & " [" & swModelPath.GetType & "]"
End If
Next vPath
End Sub
Avatar de l’utilisateur
vspemens
Citoyen
 
Messages: 61
Inscription: Lun 10 Déc 2012 17:18
Localisation: EPERNAY
Version de SolidWorks et SP: SolidWorks 2014 SP2.0


Retourner vers Utilitaires SW

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron