Extraire et Archiver via du VBA

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 »