Extrahieren und Archivieren über VBA

Hallo

 

Ich möchte Dateien über ein Makro einer Excel-Datei extrahieren oder archivieren.

Ich habe ein Makro, das Dokumente in PDM aus einer Vorlage erstellt, um eine korrekte Datenzuordnung zu erhalten.

Ich habe in verschiedenen Foren gesehen, dass es eine EPDM-API gibt, mit der Sie viele Dinge tun können, aber ich habe nicht die Syntax gefunden, um dieses berühmte Sperren / Entsperren durchzuführen ...

Wenn jemand ein Beispiel hat, bin ich dafür.

Hallo

Die allgemeine Dokumentation finden Sie hier:

http://help.solidworks.com/2014/English/api/SWHelp_List.html

Für Ihr Problem sehen Sie sich folgendermaßen an:

   Wenn True = Datei. IsLocked dann

        Datei. UnlockFile 0, ""

    Ende, wenn

Oder  :

https://forum.solidworks.com/thread/69282

https://forum.solidworks.com/thread/68948

https://forum.solidworks.com/thread/55032

https://forum.solidworks.com/thread/100459

Hallo

Ich habe dieses Makro bereits erstellt
Ich poste ein Modul mit den Funktionen, die ich erstellt habe

Ich hoffe, es kann Ihnen helfen

Wenn Sie nicht herauskommen, haben Sie die Hilfe der epdm-API, die sich unter ...\Programme\SOLIDWORKS PDM\API_GB.chm befindet

Zögern Sie nicht, wenn Sie eine Hand haben möchten, damit es funktioniert;)


epdm.bas

Vielen Dank an euch beide. 

Ich habe es geschafft, zu archivieren (was mich am meisten interessiert) und mit den angegebenen Links zu extrahieren.

Auf der anderen Seite habe ich für die von Ihnen bereitgestellte Datei epdm.bas ein Problem mit der Funktion, Excel erkennt IEdmFolder9 nicht , es gibt mir einen Fehler zu diesem Thema. (Undefinierter Standardfehler).

 

Um die Funktion zu nutzen, habe ich eine 

Lock_File("Vollständiger Dateipfad") 

Ist das das Richtige?

1 „Gefällt mir“

Haben Sie den Verweis auf EPDM in Excel hinzugefügt?
Wenn ja, versuchen Sie, den Befehl erneut einzugeben, um zu sehen, welche Version er Ihnen anbietet, vielleicht haben wir nicht die gleichen Versionen
Andernfalls können Sie die Deklaration entfernen, es wird auch funktionieren, denke ich
 

Wenn ich mich richtig erinnere, wie das funktioniert, müsst ihr die ID eurer Datei in EPDM mit dem vollständigen Pfad finden und dann könnt ihr sie archivieren
Da der Pfad nicht sein Standort in EPDM ist, ist er virtuell der Pfad in EPDM (ich weiß nicht, ob Sie mir ;) folgen)

Ich bin auf EXCEL 2013, jetzt stürzt die Funktion auf direct() = Split(Link, "\") ab

Ich denke, es gibt ein Problem mit den verwendeten Referenzen

In Bezug auf Referenzen fehlt mir eine, sie heißt: VBAProject

Die direkte Zeile ()=split (link,"\") wird verwendet, um in einem Array den Pfad Ihrer Datei separat abzurufen

Beispiel:

link = "C:\Ding\Ding\Datei.atnichtwas

direct(0) = "C:"
direct(1)="foo"
direct(2)="bidule"
direct(3)="Datei.atnichtwas"

dann komponiere ich es ohne den Dateinamen neu
was mir nach der Ausführung der Schleife gibt, dass ich
 

Lockfolder = "C:\foo\doodle\"


Sind Sie sich über den Namen der fehlenden Referenz vbaproject sicher, weil selbst ich sie nicht benutze
Außerdem habe ich sie noch nie gesehen

Sie können vielleicht eine andere Funktion als meine ausführen, um den Dateipfad wiederherzustellen
Jetzt habt ihr die Idee;)
 

Ich verwende Excel 2010

1 „Gefällt mir“

Wenn du sonst einen Screenshot deiner Referenzen machen kannst, kann es mir helfen
In Visual Basic sind Tools, Verweise

1 „Gefällt mir“

Ich habe das Problem gelöst, indem ich das direct()-Array mit einem dim direct() als String gesetzt habe, und ich habe kein Problem mehr.

1 „Gefällt mir“

Cool, ich bin froh, dass ich dir helfen konnte;)

1 „Gefällt mir“