Vraag over mijn macro

Ik heb de variabele in de SWmoddoc.SaveAs (PathFileNamePDF) gewijzigd, ik had het volledige adres bij het bestand gezet, het werkte niet, ik heb gewoon de naam van het pdf-bestand gezet en het maakt het voor mij in dezelfde map als de slddrw, en iets anders als de map waarin ik de pdf wil opslaan al bestaat, Deze bug, kan iemand me helpen begrijpen hier is de tekst van mijn macro.


sans_titre.png

Hallo

 

Ik denk dat de fout afkomstig is van de variabele "PathPDFfileName" in deze opdracht:

nErrors = SWmoddoc.SaveAs(FileNamePathPDF)

 

Wanneer u opslaat met het commando "Opslaanals", moet u de volledige naam van het bestand als argument opgeven, MET de extensie (.pdf in uw geval).

 

Vriendelijke groeten.

 

Franck.

Ik zag dit na Lucas, ik heb het aangepast, maar het werkt nog steeds niet.

Fgirard, ik zag dit ook, ik heb het aangepast, maar het werkt nog steeds niet helemaal.

Voor de breekpunten, kijk naar de link die ik hierboven heb geplaatst:

http://www.tomshardware.fr/forum/id-1348092/tutoriel-excel-macro-vba-debogage.html

 

Hierin worden verschillende manieren uitgelegd om code te debuggen, waaronder breekpunten.

 

1 like

Als het nog steeds niet werkt, voeg dan spionnen toe zoals hier weergegeven:

http://www.tomshardware.fr/forum/id-1348092/tutoriel-excel-macro-vba-debogage.html

 

En wat zijn de waarden van de variabelen:

NaamBestandPDF 

PadNaamBestandPDF

 

 

Waar eindigt je macro?

1 like

re

 

Om te helpen bij het testen van een macro-> in de vergelijkingseditor, klikt u op "Weergave", op "Venster met lokale variabelen" > zie bijlage


editeur_de_macro_fenetre_variables_locales.png
2 likes

Onze berichten kruisen elkaar, sorry.

 

Het is raar dat "Opslaanals" niet goed werkt met de volledige bestandsnaam (pad+naam+extensie).

Hetzelfde geldt voor de bug met de map die al bestaat.

 

Probeer het met de opdracht "SaveAs" voor ModelDocExtension. Dit is degene die ik gebruik in mijn macro's.

Ga als volgt te werk om te rapporteren:

   Dim SWmodext als As SldWorks.ModelDocExtension

   Dim swExportPDFData     As SldWorks.ExportPdfData

Dim fouten              zo lang   
   Dim waarschuwingen            zo lang

en hoe je invloed kunt uitoefenen op:

   Stel SWmodext = SWmoddoc.Extension in

dan:

   nErrors = SWmodext.SaveAs(FileNamePathPDF, 0, 0, swExportPDFData, Fouten, waarschuwingen)

 

 

 

Voor mappenbeheer gebruik ik het FileSystemObject:

Dim oFSO                als Scripting.FileSystemObject   
Dim oFld                  als map   

 

   Set oFSO = Nieuwe Scripting.FileSystemObject

 

   Als oFSO.FolderExists(FileNamePathPDF) = Onwaar dan
        Stel oFld in = oFSO.CreateFolder(FileNamePathPDF)
    Einde als

2 likes

Dank je wel caronmaxime, erg handig dit venster!

 

Dus met je venster hebben mijn variabelen de waarde die ik ze wil geven, maar het werkt niet zoals ik wil.

 

hij zal het 2014-bestand voor mij maken, aan de andere kant, als het bestand al bestaat, stopt het bij de Mkdir-regel (1e punt dat ik niet begrijp)

 

en hij maakt het pdf-bestand voor mij, maar aan de andere kant in dezelfde map als het actieve bestand terwijl hij het in de map van 2014 zou moeten plaatsen (2e punt dat ik niet begrijp)

 

HELP!!

1 like

Zou de fout niet komen door het feit dat u een map test en een andere map maakt?

 

Als Dir$(FileNamePathPDF) = "" dan
MkDir BestandsNaamPDF

Einde als

 

PathFileNamePDF of moet hier 2 keer worden gebruikt, toch? Een keer voor de Dir$-test en een keer voor de MkDir?

3 likes

re re

 

Mathieu, naar mijn mening moet je   [ MkDir  FileNamePDF]  vervangen worden door    [MkDir FileNamePathPDF]

 

In uw macro-editor kunt u dubbelklikken op het trefwoord MkDir om het te selecteren en op F1 drukken. Hulp zal je in staat stellen om het te begrijpen.

re re re

 

maak de balans op, rekening houdend met de uitstekende aanbevelingen van Fgirard, en kijk misschien eens naar de vraag "mijn PDF DXF-macro: wat moet ik zeggen? " die ik heb gepubliceerd.

 

Anders is dit hoe ik te werk ga (zie bijlage) om een macro te debuggen wanneer deze mappen of bestanden maakt


capture_decran_sw_et_editeur_sw_et_explorer_windows.png

Ik heb de wijzigingen aangebracht, maar het doet nog steeds hetzelfde, en als ik het hier opnieuw opstart of het bugs!

 

 


sans_titre.png

Ah, ik denk dat het komt omdat je niet de backslash aan het einde van je pad hebt!!

 

Voeg dit toe om dit te verifiëren:

 

Als right(FileNamePathPDF,1) = "\" dan

FileNamePathPDF = FileNamePathPDF & "\"

Einde als

 

Je moet het voor je regel zetten:

Als Dir$(FileNamePathPDF) = "" dan

1 like

Nee Lucas, het is hetzelfde dat ik het niet deed zoals je zei, ik deed het zo.

 

FileNamePathPDF = "C:\ANGER\pdf\" & FileNamePDF & "\"

 

Maar dat verandert niets.

 

Aan de andere kant, hoe werkt het?

nErrors = SWmoddoc.SaveAs(BestandsnaamPDF)    BestandsnaamPDF=045/1-2014-A

 

 

Wat moeten we tussen haakjes hebben?

Ik vind het niet en ik begrijp niet echt wat er op internet staat.

Zoals hierboven vermeld, moet uw PDFFileName-variabele de bestandsextensie bevatten!

Dus voor you.pdf

En misschien ook het pad?

 

Probeer het allebei.

Ik heb momenteel niet de mogelijkheid om het te testen.

1 like

Ik heb de 2 geprobeerd, wetende dat de variabele "FileNamePDF" oorspronkelijk de extensie heeft, maar het blijft hetzelfde, het slaat het op in de map waar het bestand actief is.

Dus je hebt niet geprobeerd om het doelpad (waar je het wilt opslaan) op te nemen in FileNamePDF?

Omdat een "opslaan als" zonder het pad het opslaat in de map waar het originele deel is!

 

 

1 like

Het zal zijn:

nErrors = SWmoddoc.SaveAs(FileNamePathPDF & FileNamePDF)

 

Door ervoor te zorgen dat er een backslash is tussen de 2 (in de eerste variabele of de tweede, het maakt niet uit).

1 like

En voor mijn bericht van 15:47, het ging over het maken van de map, niet over het opslaan van de PDF:

 

Lucas P

15 juli 2014 - 15:47 uur

Ah, ik denk dat het komt omdat je niet de backslash aan het einde van je pad hebt!!

 

Voeg dit toe om dit te verifiëren:

 

Als right(FileNamePathPDF,1) = "\" dan

FileNamePathPDF = FileNamePathPDF & "\"

Einde als

 

Je moet het voor je regel zetten:

Als Dir$(FileNamePathPDF) = "" dan

1 like