[Vba] Le fichier est-il sauvegardé ? Sinon est-il en lecture seule?

Bonjour,

j'aimerais savoir si en vba dans solidworks j'ai moyen de savoir si le fichier est sauvegarder ? (Avant de le fermer, et s'il n'est pas sauvegarder on le laisse simplement ouvert).

Egalement j'aimerais savoir si on a moyen d'obtenir si le fichier est en lecture seule ou non ? (Nous utilisons l'EPDM, donc s'il est en lecture seule c'est qu'on ne peux de toute façon pas le sauvegarder donc on peut le fermer).

J'ai essayer ceci:

            Dim instance As IDocumentSpecification
            Dim value As Boolean
            Set instance = swApp.GetOpenDocSpec(swModel.GetPathName)
            Dim Stringi As String
            Stringi = instance.ReadOnly

 

Mais le Debug m'indique toujours false, même si le fichier est en lecture seule.

Bonjour,

Pour la lecture seule, voir ma macro que j'ai postée ici :

http://www.lynkoa.com/tutos/3d/macro-solidworks-retirer-lecture-seule-pour-fichiers-de-bibliotheque

Ou ici :

http://www.lynkoa.com/sites/default/files/questions/answer/09/09/2014/bibliotheque_lecture_seule.swp

 

Edit : pour savoir si le document a été sauvegardé, j'utilise la méthode GetPathName, si la variable est vide, c'est qu'il n'a pas encore été enregistré.

Exemple :

Set swApp = Application.SldWorks
Set CurrentDOC = swApp.ActiveDoc
Set swModel = swApp.ActiveDoc
Set swConfigMgr = swModel.ConfigurationManager
    docPath = CurrentDOC.GetPathName
If docPath = "" Then
    MsgBox ("ce document n'a pas encore été sauvé")
End if

1 « J'aime »

Merci de votre réponse !

 

Concernant la lecture seul, votre code est parfait.

Pour la sauvegarde j'y ai penser (J'ai d'ailleurs besoin de le faire avant la vérification de la lecture seule pour pas avoir de soucis sur le chemin), mais ceci ne me dit pas si le document est "enregistré", enfin qu'il n'y a plus la petite étoile en haute à coté du nom sur SW :p

Après réflexion, je pense que le faite de savoir si le fichier est en lecture seule me suffit.

 

Mais si quelqu'un à la solution, qu'il n'hésite pas ! ça pourrait bien servir pour une autre fois ou pour quelqu'un d'autre :)

1 « J'aime »

Pour la deuxième question, tu peux poser une autre question comme celle-ci est cloturée et pour plus de lisibilité, il se pourrait que j'ai une solution ;-)

Très bien, par contre je m'en occuperai vendredi (Je suis absent demain et après demain) et maintenant je vais partir.

1 « J'aime »