Stopp-Makro

Hallo

Wir verwenden ein Makro, das auf dieser Website gefunden wurde, um eine PDF- und eine DXF-Datei einer Zeichnung zu speichern, die Verbindung zu unserem Server ist oft sehr, sehr langsam und wir sind gezwungen, SOLIDWORKS zu "töten", um den Prozess des Makros zu stoppen, das vergeblich versucht, eine Verbindung herzustellen, ist es möglich, einen Code hinzuzufügen, der es nach einer Weile stoppt und es uns ermöglicht, zurück zu wechseln Auf SOLIDWORKS.

Vielen Dank im Voraus

1 „Gefällt mir“

Hallo

Tatsächlich müssen Sie sich stattdessen mit dem Fehler in Ihrem Code befassen.

Versuchen Sie, die OpenDoc7-Methode wie in diesem Beispiel zu verwenden. Dann schaffst du jeden Fehler.

Ich habe nicht getestet...

3 „Gefällt mir“

Danke für deine Antwort, aber es hilft mir nicht viel, ich bin nicht gut genug in VB, um das alleine zu tun.
 

 

Hier ist unser Makro...

 


pdf-dxf.swp

Hallo

Ich neige dazu, remrem zuzustimmen, Sie müssen sich mit den Fehlern in Ihrem Code auseinandersetzen.

Wenn Sie nun nur einen Codeausschnitt haben möchten, der es Ihnen ermöglicht, das Makro nach einer Weile zu verlassen, müssen Sie in der Lage sein, etwas wie dieses zu tun (nicht vollständig getestet):

Sub main()

Dim ts As Date
Dim tshour1 As Date
Dim tshour2 As Date

ts = Now
tshour1 = DateAdd("s", 20, ts)
tshour2 = Now

Do While True
    If Len(Dir("ton fichier pdf avec chemin")) <> 0 Then
	Exit Do
    End If
    tshour2 = Now
    If DateDiff("s", tshour2, tshour1) <= 0 Then
        Exit Sub
    End If
Loop

End Sub

Dieser Code-Schnipsel ermöglicht es Ihnen, aus der Schleife zu kommen, wenn Ihre PDF-Datei existiert, oder das Makro nach 20 Sekunden zu beenden, wenn Ihre Datei nicht existiert, natürlich um an Ihren Code angepasst zu werden.

Herzliche Grüße

3 „Gefällt mir“

Hallo

Vielen Dank d.roger, ich habe gerade Ihren Code an unser Makro angepasst und es scheint zu funktionieren,

Zum Testen habe ich das Zielverzeichnis umbenannt.

Die Adaption sieht eher nach DIY aus, aber hey, wenn es funktioniert...

Ich teste mehrere Tage lang im echten Leben und werde wieder ins Forum kommen.

Bis bald

 

Hallo
Große Enttäuschung! nachdem ich es mit einem unzugänglichen Server versucht habe, komme ich nicht aus dem Makro heraus ...
Vielleicht habe ich den Code von d.roger nicht an der richtigen Stelle eingefügt?
Ich habe jedoch den Teil gelöscht, der das Vorhandensein der Datei überprüft. Hat jemand irgendwelche Erläuterungen, die er mir geben kann?

Herzliche Grüße

 

 

Hallo

Die Zeilen:

Sub main()

Dim ts As Date
Dim tshour1 As Date
Dim tshour2 As Date

ts = Now
tshour1 = DateAdd("s", 20, ts)

Wechseln Sie zum Anfang des Codes.

Dann die Zeilen:

tshour2 = Now

Do While True
    If Len(Dir("ton fichier pdf avec chemin")) <> 0 Then
	Exit Do
    End If
    tshour2 = Now
    If DateDiff("s", tshour2, tshour1) <= 0 Then
        Exit Sub
    End If
Loop

Gehen Sie direkt nach der Zeile, in der Sie Ihre Datei speichern.

Nun, es ist durchaus möglich, dass dies nicht funktioniert, es bedeutet, dass Ihr Code in die Warteschleife gerät oder fehlerhaft ist, bevor er zu diesen Zeilen gelangt. Was passiert und welches Feedback erhalten Sie im Debug-Modus, wenn das Problem auftritt?

Dies bringt uns zurück zu der anfänglichen Bemerkung von remrem, der ich voll und ganz zustimme: Sie müssen sich mit den Fehlern in Ihrem Code auseinandersetzen. Da die Methode "SaveAs2 (IModelDoc2)" veraltet ist, wäre es besser, auf die Methode "SaveAs (IModelDocExtension)" umzusteigen (siehe hier), die es Ihnen ermöglicht, eine bestimmte Anzahl von Fehlern durch die Rückgaben von "swFileSaveError_e Enumeration" und "swFileSaveWarning_e Enumeration" zu behandeln (siehe hier und hier). Seien Sie vorsichtig, die Art und Weise zum Speichern in PDF ist anders und muss über "ExportPdfData" gehen (siehe Beispiel hier).

Um mit Fehlern in VBA umzugehen, können Sie auch hier sehen.

Zu Ihrer Information, die Makros auf dieser Website sind in der Regel Codeschnipsel, in denen das Fehlermanagement nie durchgeführt wird, es liegt am Anforderer, sein Makro zu vervollständigen und zuverlässig zu machen, sonst kann es schnell zu einer spezifischen Entwicklung von Spezifikationen werden, dann wird es zu einer Arbeit...

Herzliche Grüße

 

1 „Gefällt mir“