Bonjour,
Je cherche à extraire ou archiver des fichiers via une macro d'un fichier excel.
J'ai une macro qui créé des documents dans PDM à partir d'un modèle afin d'avoir une carte de données correcte.
J'ai vu sur différent forum qu'il y avait une API EPDM qui permet de faire pas mal de chose, cependant je n'ai pas trouvé la syntaxe pour faire se fameux lock/unlock...
Si quelqu'un a un exemple, je suis preneur.
Salut,
La documentation générale est ici :
http://help.solidworks.com/2014/English/api/SWHelp_List.html
Pour ton problème, voir ceci :
If True = file.IsLocked Then
file.UnlockFile 0, ""
End If
Ou encore :
https://forum.solidworks.com/thread/69282
https://forum.solidworks.com/thread/68948
https://forum.solidworks.com/thread/55032
https://forum.solidworks.com/thread/100459
Salut,
J'ai déja fait cette macro
Je te poste un module avec les fonctions que j'ai créer
J'espere que ça pourra t'aider
Si tu ne t'en sort pas, tu a l'aide de l'API d'epdm qui se situe dans ...\Programmes\SOLIDWORKS PDM\API_GB.chm
Hésite pas si tu veux un coup de main pour la faire fonctionner ;)
epdm.bas
Merci à vous deux.
J'ai réussi a archiver (ce qui m'interesse le plus) et a extraire avec les liens donné.
Par contre, pour le fichier epdm.bas que tu fournis, j'ai un problème avec la fonction, excel ne reconnait pas IEdmFolder9, il me met un erreur sur le sujet. (Erreur type non définit).
Pour utiliser la fonction, j'ai fait un
Lock_File("Chemin complet du fichier")
Est ce que c'est bien la démarche a suivre ?
1 « J'aime »
a tu bien ajouter la reference a EPDM dans excel?
si oui essaye de retaper la commande voir quel version il te propose, peut etre que nous n'avons pas les meme versions
sinon tu peu enlever la declaration ça marchera aussi je pense
Si je me rappel bien du fonctionnement il faut retrouver l'ID de ton fichier dans EPDM avec le chemin complet et ensuite tu pourra l'archiver
car le chemin n'est pas sa localisation dans EPDM, c'est virtuel le chemin dans EPDM (je ne sais pas si tu me suis la ;) )
Je suis sous EXCEL 2013, maintenant la function plante sur direct() = Split(Link, "\")
Je pense qu'il y a un soucis au niveau des références utilisées
Au niveau des références, j'en ai une de manquante, elle s'appel : VBAProject
la ligne direct ()=split (link,"\") sert à récupéré dans un array le chemin de ton fichier en séparé
Exemple:
link = "C:\truc\bidule\fichier.chezpasquoi
direct(0) = "C:"
direct(1)="truc"
direct(2)="bidule"
direct(3)="fichier.chezpasquoi"
ensuite je le recompose sans le nom de fichier
ce qui me donne apres l'execution de la boucle qui suis
Lockfolder = "C:\truc\bidule\"
es-tu sur du nom de la reference manquante vbaproject car meme moi je ne l'utilise pas
d'ailleur je ne l'ai jamais vue
tu peut peut etre faire une fonction differente de la mienne pour recupérer le chemin du fichier
maintenant tu a l'idée ;)
moi je suis sur excel 2010
1 « J'aime »
si tu peux faire un screenshot de tes references sinon ça m'aidera peut etre
dans visual basic, outils, références
1 « J'aime »
J'ai solutionné le problème en définissant le tableau direct() avec un dim direct() as string, et je n'ai plus de problème.
1 « J'aime »
cool content d'avoir pu t'aider ;)
1 « J'aime »