Hallo zuammen,
ich kämpfe schon seit einiger Zeit mit meinem Makro und habe nun keine Ideen mehr für einen neuen Lösungsansatz.
Ich hoffe jemand kann mir weiterhelfen. Achtung: Ich bin Makro-Anfänger.
Makro-Beschreibung
Das unter SolidWorks gestartete Makro öffnet eine Excel-Datei nachdem ich in einem UserForm die Bestell-Nr. eingegeben habe. Aus dieser Datei werden einzeln Zeichnungsnummern ausgelesen und über SolidWorks als PDF und DXF abgespeichert.
Das Problem
Wenn es mal bei der ersten Bestell-Nr. durchläuft, schafft das Programm es nicht, die zweite xls-Datei zu bearbeiten. Dann bleibt das Makro in dieser Zeile hängen. ActiveSheet.Cells(Zeile, 1).Select
Mir ist auch aufgefallen, dass im Task-Manager die Excel.exe nach Ausführung des Makros mehrmals auftaucht.
Unten eingefügt findet ihr das Sub für den Lieferanten XXX.
Für jede Idee bin ich dankbar.
Gruß
Hubert
Private Sub XXX()
Dim xlsBook As Excel.Workbook
Dim xlsApp As Excel.Application
Dim Sheets As Excel.Sheets
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim Zeile As Integer
Dim NummerEndung As String
Set xlsApp = CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Open("\\Pfad)
xlsApp.Visible = False
xlsBook.Activate
Zeile = 1
'On Error Resume Next
ActiveSheet.Cells(Zeile, 1).Select
Nummer = ActiveCell.FormulaR1C1
'On Error Resume Next
MkDir ("\\Pfad)
SuchenDrw
While Nummer <> ""
Set swApp = CreateObject("SldWorks.Application")
Set Zeichnung = swApp.OpenDoc(DateipfadDrw, swDocDrawing) 'DateipfadDrw ist mit slddrw-Datei
If Zeichnung Is Nothing Then
MsgBox (" Fehler beim Laden " + Nummer)
Else
Zeichnung.SaveAs2 "\\Pfad\" & BestellNr & "\" & Nummer & ".DXF", 0, True, False
Zeichnung.SaveAs2 "\\Pfad\" & BestellNr & "\" & Nummer & ".PDF", 0, True, False
swApp.CloseDoc Zeichnung.GetTitle
End If
Zeile = Zeile + 1
ActiveSheet.Cells(Zeile, 1).Select
Nummer = ActiveCell.FormulaR1C1
SuchenDrw
Wend
xlsBook.Close
Application.Quit
Load UserForm2
UserForm2.Show
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP