Frage zu meinem Makro

Ich habe die Variable in der SWmoddoc.SaveAs(PathFileNamePDF) geändert, ich hatte die vollständige Adresse mit der Datei angegeben, es hat nicht funktioniert, ich habe einfach den Namen der PDF-Datei eingegeben und sie erstellt sie für mich im selben Ordner wie die slddrw, und etwas anderes, wenn der Ordner, in dem ich die PDF-Datei speichern möchte, bereits existiert, Dieser Fehler, kann mir jemand helfen zu verstehen, hier ist der Text meines Makros.


sans_titre.png

Hallo

 

Ich denke, der Fehler kommt von der Variablen "PathPDFfileName" in diesem Befehl:

nErrors = SWmoddoc.SaveAs(DateinamePfadPDF)

 

Wenn Sie mit dem Befehl "SaveAs" speichern, müssen Sie den vollständigen Namen der Datei als Argument eingeben, MIT der Erweiterung (in Ihrem Fall .pdf).

 

Herzliche Grüße.

 

Franck.

Ich habe das nach Lucas gesehen, ich habe es modifiziert, aber es funktioniert immer noch nicht.

Fgirard, ich habe das auch gesehen, ich habe es modifiziert, aber es funktioniert immer noch nicht ganz.

Für die Haltepunkte schauen Sie sich den Link an, den ich oben eingefügt habe:

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

 

In diesem Artikel werden verschiedene Möglichkeiten zum Debuggen von Code erläutert, einschließlich Haltepunkten.

 

1 „Gefällt mir“

Wenn es immer noch nicht funktioniert, fügen Sie Spione hinzu, wie hier gezeigt:

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

 

Und was sind die Werte der Variablen:

NameDateiPDF 

PfadNameDateiPDF

 

 

Wo endet Ihr Makro?

1 „Gefällt mir“

re

 

Um ein Makro zu testen, das im Formeleditor >, klicken Sie auf "Ansicht", auf "Lokales Variablenfenster" > siehe Anhang


editeur_de_macro_fenetre_variables_locales.png
2 „Gefällt mir“

Unsere Beiträge überschneiden sich, tut mir leid.

 

Es ist seltsam, dass "SaveAs" mit dem vollständigen Dateinamen (Pfad+Name+Erweiterung) nicht richtig funktioniert.

Gleiches gilt für den Fehler mit dem Ordner, der bereits existiert.

 

Versuchen Sie es mit dem Befehl "SaveAs" für ModelDocExtension. Dies ist diejenige, die ich in meinen Makros verwende.

So können Sie eine Meldung machen:

   Dim SWmodext as As SldWorks.ModelDocExtension

   Dim swExportPDFData     As SldWorks.ExportPdfData

Fehler              so lange   dimmen
Schwache Warnungen,            solange sie nicht angezeigt werden   

und wie man beeinflusst:

   Legen Sie SWmodext = SWmoddoc.Extension fest

dann:

   nErrors = SWmodext.SaveAs(DateinamePfadPDF, 0, 0, swExportPDFData, Fehler, Warnungen)

 

 

 

Für die Ordnerverwaltung verwende ich das FileSystemObject:

Dim oFSO                As Scripting.FileSystemObject   
Dim oFld                  As Ordner   

 

   Set oFSO = Neues Scripting.FileSystemObject

 

   Wenn oFSO.FolderExists(FileNamePathPDF) = false, dann
        Legen Sie oFld = oFSO.CreateFolder(DateinamePfadPDF) fest
    Ende, wenn

2 „Gefällt mir“

 Vielen Dank caronmaxime, sehr nützlich dieses Fenster!

 

Mit Ihrem Fenster haben meine Variablen also den Wert, den ich ihnen geben möchte, aber es funktioniert nicht so, wie ich es möchte.

 

Er wird die Datei 2014 für mich erstellen, auf der anderen Seite, wenn die Datei bereits existiert, hört sie bei der Mkdir-Zeile auf (1. Punkt, den ich nicht verstehe)

 

und er erstellt die PDF-Datei für mich, aber auf der anderen Seite im selben Ordner wie die aktive Datei, wenn er sie in den 2014-Ordner legen sollte (2. Punkt, den ich nicht verstehe)

 

HILFE!!

1 „Gefällt mir“

Würde der Fehler nicht davon herrühren, dass Sie einen Ordner testen und einen weiteren Ordner erstellen?

 

Wenn Dir$(DateinamePfadPDF) = "" dann
MkDir DateinamePDF

Ende, wenn

 

PathFileNamePDF oder sollte hier 2 Mal verwendet werden, oder? Einmal für den Dir$-Test und einmal für den MkDir?

3 „Gefällt mir“

re re

 

Mathieu, meiner Meinung nach sollte dein   [MkDir FileNamePDF ]  durch    [MkDir FileNamePathPDF] ersetzt werden.

 

In Ihrem Makro-Editor können Sie auf das Schlüsselwort MkDir doppelklicken, um es auszuwählen, und F1 drücken. Die Hilfe wird es Ihnen ermöglichen zu verstehen.

re re re

 

Machen Sie eine Bestandsaufnahme unter Berücksichtigung der hervorragenden Empfehlungen von Fgirard und werfen Sie vielleicht einen Blick auf die Frage "Mein PDF-DXF-Makro, was soll ich sagen? ", die ich veröffentlicht habe.

 

Ansonsten gehe ich so vor (siehe Anhang), um ein Makro zu debuggen, wenn es Ordner oder Dateien erstellt


capture_decran_sw_et_editeur_sw_et_explorer_windows.png

Ich habe die Änderungen vorgenommen, aber es macht immer noch dasselbe, und wenn ich es hier neu starte, oder es buggt!

 

 


sans_titre.png

Ah, ich glaube, es liegt daran, dass du den Backslash am Ende deines Weges nicht hast!!

 

Um dies zu überprüfen, fügen Sie Folgendes hinzu:

 

Wenn right(FileNamePathPDF,1) = "\" dann

DateinamePfadPDF = DateinamePfadPDF & "\"

Ende, wenn

 

Sie müssen es vor Ihre Zeile setzen:

Wenn Dir$(DateinamePfadPDF) = "" dann

1 „Gefällt mir“

Nein, Lucas, es ist dasselbe, ich habe es nicht so gemacht, wie du gesagt hast, ich habe es so gemacht.

 

DateinamePfadPDF = "C:\ANGER\pdf\" & DateinamePDF & "\"

 

Aber das ändert nichts.

 

Auf der anderen Seite, wie funktioniert es?

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

 

 

Was sollten wir in Klammern haben?

Ich finde es nicht und ich verstehe nicht wirklich, was es im Internet gibt.

Wie oben erwähnt, muss Ihre PDFFileName-Variable die Dateiendung enthalten!

Also für you.pdf

Und vielleicht auch der Weg?

 

Probieren Sie beides aus.

Ich habe derzeit nicht die Möglichkeit, es zu testen.

1 „Gefällt mir“

Ich habe die 2 ausprobiert, da ich wusste, dass die Variable "FileNamePDF" ursprünglich die Erweiterung hatte, aber sie bleibt gleich, sie speichert sie in dem Ordner, in dem die Datei aktiv ist.

Sie haben also nicht versucht, den Zielpfad (wo Sie ihn speichern möchten) in FileNamePDF aufzunehmen?

Denn ein "Speichern unter" ohne den Pfad speichert es in dem Ordner, in dem sich das Originalteil befindet!

 

 

1 „Gefällt mir“

Es wird sein:

nErrors = SWmoddoc.SaveAs(DateinamePfadPDF & DateinamePDF)

 

Indem Sie sicherstellen, dass zwischen den 2 ein umgekehrter Schrägstrich steht (in der ersten oder der zweiten Variablen spielt es keine Rolle).

1 „Gefällt mir“

Und bei meiner Nachricht von 15:47 ging es um die Erstellung des Ordners, nicht um das Speichern des PDFs:

 

Lucas P

Juli 15, 2014 - 03:47 PM

Ah, ich glaube, es liegt daran, dass du den Backslash am Ende deines Weges nicht hast!!

 

Um dies zu überprüfen, fügen Sie Folgendes hinzu:

 

Wenn right(FileNamePathPDF,1) = "\" dann

DateinamePfadPDF = DateinamePfadPDF & "\"

Ende, wenn

 

Sie müssen es vor Ihre Zeile setzen:

Wenn Dir$(DateinamePfadPDF) = "" dann

1 „Gefällt mir“