Uitpakken en archiveren via VBA

Hallo

 

Ik ben op zoek naar het uitpakken of archiveren van bestanden via een macro van een Excel-bestand.

Ik heb een macro die documenten in PDM maakt op basis van een sjabloon om een correcte datamap te hebben.

Ik zag op verschillende forums dat er een EPDM-API was waarmee je veel dingen kunt doen, maar ik heb de syntaxis niet gevonden om deze beroemde vergrendeling / ontgrendeling uit te voeren...

Als iemand een voorbeeld heeft, ben ik er helemaal voor.

Hallo

De algemene documentatie is hier te vinden:

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

Zie dit voor uw probleem:

   Als Waar = bestand. IsLocked dan

        bestand. Bestand ontgrendelen 0, ""

    Einde als

Ofwel  :

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

Ik heb deze macro al gedaan
Ik plaats een module met de functies die ik heb gemaakt

Ik hoop dat het je kan helpen

Als je er niet uit kunt komen, heb je de hulp van de epdm API die zich bevindt in ...\Programs\SOLIDWORKS PDM\API_GB.chm

Aarzel niet als je een handje wilt om het te laten werken;)


epdm.bas

Dank u beiden. 

Ik ben erin geslaagd om te archiveren (wat me het meest interesseert) en extraheren met de gegeven links.

Aan de andere kant, voor het epdm.bas-bestand dat u verstrekt, heb ik een probleem met de functie, Excel herkent IEdmFolder9 niet , het geeft me een foutmelding over het onderwerp. (Ongedefinieerde standaardfout).

 

Om de functie te gebruiken, heb ik een 

Lock_File ("Volledig bestandspad") 

Is dit het juiste om te doen?

1 like

heb je de verwijzing naar EPDM in Excel toegevoegd?
Als dit het geval is, probeer dan de opdracht opnieuw te typen om te zien welke versie deze u biedt, misschien hebben we niet dezelfde versies
anders kun je de aangifte verwijderen, het zal ook werken denk ik
 

Als ik me goed herinner hoe het werkt, moet je de ID van je bestand in EPDM vinden met het volledige pad en dan kun je het archiveren
omdat het pad niet de locatie in EPDM is, is het virtueel het pad in EPDM (ik weet niet of je me volgt ;) )

Ik gebruik EXCEL 2013, nu crasht de functie naar direct() = Split(Link, "\")

Ik denk dat er een probleem is met de gebruikte referenties

Qua referenties ontbreekt er nog een, die heet: VBAProject

De directe regel ()=split (link,"\") wordt gebruikt om in een array het pad van uw bestand afzonderlijk op te halen

Voorbeeld:

link = "C:\ding\ding\bestand.atnotwhat

direct(0) = "C:"
direct(1)="foo"
direct(2)="bidule"
direct(3)="bestand.atnotwhat"

dan stel ik het opnieuw samen zonder de bestandsnaam
die mij na de uitvoering van de lus geeft dat ik
 

Lockfolder = "C:\foo\doodle\"


Ben je zeker van de naam van de ontbrekende referentie vbaproject, want zelfs ik gebruik het niet
Trouwens, ik heb haar nog nooit gezien

Je kunt misschien een andere functie dan de mijne uitvoeren om het bestandspad te herstellen
Nu heb je het idee;)
 

Ik gebruik Excel 2010

1 like

Als je een screenshot van je referenties kunt maken, anders kan het me helpen
In Visual Basic, Hulpprogramma's, Referenties

1 like

Ik heb het probleem opgelost door de direct() array in te stellen met een dim direct() als string, en ik heb geen probleem meer.

1 like

Cool blij dat ik je heb kunnen helpen;)

1 like