Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Auslesen von Zeile endet in Fehler 429

Auslesen von Zeile endet in Fehler 429
08.05.2020 14:05:24
Zeile
Moin,
für folgende Aufgabenstellung schreibe ich derzeit ein Makro:
Ich möchte von dem Programm Solidworks auf eine zuvor erstellte Excel Datei(Zelle A1) zugreifen. Diese soll dann für einen Nummerngenerator herhalten und (um 1 erhöht) wieder zurückgeschrieben werden. Wenn ich nun das Makro starte kommt es sehr häufig vor, dass ich die Fehrlermeldung
Laufzeitfehler '429': ActiveX-Komponente konnte Objekt nicht erstellen
bekomme. Nach ein bisschen Recherche konnte ich den Fehler auf den Befehl "GetObject" festmachen aber hier komm ich nun nicht mehr weiter...
Brauche ich noch zusätzliche Verweise um auf Excel zuzugreifen oder wo dran liegt das?
Hier einmal der Code:

Const NMB_FORMAT As String = "00"
Option Explicit
Dim swapp                   As SldWorks.SldWorks
Dim swModel                 As SldWorks.ModelDoc2
Dim myD1            As SldWorks.Dimension
Dim objSource      As Excel.Worksheet
Dim xl              As Excel.Workbook
Dim Errors          As Long
Dim Warnings        As Long
Dim Name1, Name2    As String
Sub Nummerngenerator()
Dim Konstrukteur_K  As String
Dim NMB_SRC_FILE_PATH As String
Dim sName As String
Dim sDate As String
Set swapp = Application.SldWorks
Set swModel = swapp.ActiveDoc
sName = swModel.CustomInfo("3dCreatedBy")
If sName = "" Then
MsgBox ("Bitte Konstrukteur angeben!")
Exit Sub
End If
If sName = "Beispiel1" Then
Konstrukteur_K = "RA"
ElseIf sName = "Beispiel9" Then
Konstrukteur_K = "MC"
ElseIf sName = "Beispiel8" Then
Konstrukteur_K = "LH"
ElseIf sName = "Beispiel7" Then
Konstrukteur_K = "LL"
ElseIf sName = "Beispiel6" Then
Konstrukteur_K = "KM"
ElseIf sName = "Beispiel5" Then
Konstrukteur_K = "NE"
ElseIf sName = "Beispiel21" Then
Konstrukteur_K = "KO"
ElseIf sName = "Beispiel4" Then
Konstrukteur_K = "JW"
ElseIf sName = "Beispiel2" Then
Konstrukteur_K = "JZ"
End If
sDate = Format(Date, "yymmdd")
If Dir("T:\Austauschordner\Test\" & Konstrukteur_K & sDate & ".xlsx")  "" Then
Else
MsgBox ("Nummerngenerator nicht aktiv!")
Exit Sub
End If
NMB_SRC_FILE_PATH = "T:\Austauschordner\Test\" & Konstrukteur_K & sDate & ".xlsx"
main NMB_SRC_FILE_PATH, Konstrukteur_K, sDate
End Sub
Sub main(NMB_SRC_FILE_PATH As String, Konstrukteur_K As String, sDate As String)
Set swapp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swapp.ActiveDoc
Dim lastNumber As Integer
Dim Excel     As Excel.Application
Dim x, y      As Integer
Dim excel_NOK As Boolean
Dim FileName As String
Dim wb        As Excel.Workbook
Set Excel = GetObject(, "Excel.Application")
' Wenn ein Fehler auftritt dann läuft Excel noch nicht
If Err.number  0 Then excel_NOK = True
Err.Clear
' Wenn Excel noch nicht läuft, dann wird es gestartet
If excel_NOK = True Then
Set Excel = CreateObject("excel.application")
End If
FileName = swapp.GetCurrentMacroPathName
Set wb = Excel.Workbooks.Open(NMB_SRC_FILE_PATH)
x = 1
y = 1
lastNumber = Excel.ActiveSheet.Cells(y, x).Value
wb.Save
Excel.Quit
Dim thisNumber As Integer
thisNumber = lastNumber + 1
swModel.CustomInfo("PartNo") = Konstrukteur_K & sDate & Format(thisNumber, NMB_FORMAT)
StoreNumber NMB_SRC_FILE_PATH, thisNumber
End Sub
Sub StoreNumber(filePath As String, number As Integer)
Dim Excel     As Excel.Application
Dim x, y      As Integer
Dim excel_NOK As Boolean
Dim FileName As String
Dim wb        As Excel.Workbook
Set Excel = GetObject(, "Excel.Application")
' Wenn ein Fehler auftritt dann läuft Excel noch nicht
If Err.number  0 Then excel_NOK = True
Err.Clear
' Wenn Excel noch nicht läuft, dann wird es gestartet
If excel_NOK = True Then
Set Excel = CreateObject("excel.application")
End If
FileName = swapp.GetCurrentMacroPathName
Set wb = Excel.Workbooks.Open(filePath)
x = 1
y = 1
Excel.ActiveSheet.Cells(y, x).Value = number
wb.Save
Excel.Quit
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auslesen von Zeile endet in Fehler 429
08.05.2020 16:40:32
Zeile
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
GrußformelHomepage
Anzeige
AW: Auslesen von Zeile endet in Fehler 429
11.05.2020 07:52:56
Zeile
Was mir noch aufgefallen ist:
Wenn ich eine andere Excel Datei auf habe, bzw kurz nach dem Schließen, funktioniert das Makro einwandfrei.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige