Hallo Ralf,
sorry für meine späte Meldung, war viel unterwegs.
Grob zur Struktur:
Ich rufe einen Dialog über ein Makro auf welchens ich in das Kontextmenü einbinde. In diesem Dialog wird ein Bauteil auf Knopfdruck z. Bsp. um +500mm Richtung x verschoben.
Makro test: Zuordnung des selektierten Teils und Start des Dialogs - hier werden in der Initialize die Kenndaten des selektierten Teils ausgelesen und in den Dialog übertragen. Da dieser evtl. noch aktiv ist, schliesse ich ihn, bevor ich neu lade, um an die aktuellen Werte zu gelangen. Ich bin etwas schludrig mit meinen Deklarationen. Vielleicht ist das ja auch schon der Fehler.
sub test()
Set sel = ThisApplication.ActiveDocument.SelectSet
If sel.Count = 1 Then
On Error Resume Next
Unload UserForm1
UserForm1.Show
Else
UserForm2.Show (Modal)
End If
End Sub
Das funktioniert manchmal den ganzen Tag, manchmal aber auch nur 10mal. Dann bricht das Makro in der set sel Zeile ab, weil das ThisApplication Objekt leer ist. Das ist eben komisch, weil es doch nicht sein kann. Inventor ist doch gestartet und läuft???
Wenn die Fehlermeldung einmal kommt, muss ich I2013 erst wieder komplett neu starten.
Ich hoffe, das konkretisiert einiges. Habe jetzt auch mal eine richtige Deklaration gemacht.
Dim oApp As Inventor.Application
Set oApp = ThisApplication
Dim sel As SelectSet
Set sel = oApp.ActiveDocument.SelectSet
Mal sehen, vielleicht bringt es was.
VG Tom
------------------
Einfach mal rechts fahren....
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP