| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Userform beim Start zeigen (2355 mal gelesen)
|
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 23. Jul. 2007 08:03 <-- editieren / zitieren --> Unities abgeben:
Ein herzliches Guten morgen an alle, habe ein einfaches Problem, jedoch keine passende Lösung. Beim Öffnen einer AutoCad Zeichnung möchte ich, dass mir eine Userform angezeigt wird. Im Excel funktioniert das ja ganz einfach, mit: Private Sub Workbook_Open() UserForm1.Show End Sub Aber im Autocad??? Vielen Dank für die Hilfe. MfG Tutti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 23. Jul. 2007 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
Hi Tutti, Hier mal ein Beispiel aus der Hilfe: Code: Public WithEvents ACADApp As AcadApplication ' Use with Application Event Examples Sub Example_AcadApplication_Events() ' This example intializes the public variable (ACADApp) which will be used ' to intercept AcadApplication Events ' ' The VBA WithEvents statement makes it possible to intercept an generic object ' with the events associated with that object. ' ' Before you will be able to trigger any of the AcadApplication events, ' you will first need to run this procedure. ' We could get the application from the ThisDocument object, but that would ' require having a drawing open, so we grab it from the system. Set ACADApp = GetObject(, "AutoCAD.Application.17") End Sub Private Sub ACADApp_BeginOpen(FileName As String) ' This example intercepts an Application BeginOpen event. ' ' This event is triggered when a drawing is opened by AutoCAD. ' ' To trigger this example event: ' 1) Make sure to run the example that initializes ' the public variable (named ACADApp) linked to this event. ' ' 2) Use AutoCAD to open an existing drawing ' Use the "FileName" variable to determine which drawing file is being opened MsgBox "A drawing is about to be loaded from: " & FileName End Sub
Da kannst du ja einfach dein Userform1.Show dranhängen. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 23. Jul. 2007 09:58 <-- editieren / zitieren --> Unities abgeben:
So. Hab ich ausprobiert funktioniert aber nicht. Kann es sein, da wir im Hintergrund noch ein Zeichnungsverwaltungssystem laufen haben, daß das Makro nicht funktioniert bzw. die Befehle nicht angesprochen/übersrpungen werden? Wahrscheinlich wird das Makro beim öffnen aufgerufen, aber dann sofort durch die Hintergrundroutinen rausgeschmissen? Wie kann ich die Hintergrundroutinen stoppen bzw. im Makro einfügen, dass er alles stoppen soll, bis ich auf Okay in der Msgbox geklickt habe? (Bezugnehmend auf den Code von Carsten1210) Code: Private Sub ACADApp_BeginOpen(FileName As String) ' This example intercepts an Application BeginOpen event. ' ' This event is triggered when a drawing is opened by AutoCAD. ' ' To trigger this example event: ' 1) Make sure to run the example that initializes ' the public variable (named ACADApp) linked to this event. ' ' 2) Use AutoCAD to open an existing drawing ' Use the "FileName" variable to determine which drawing file is being opened MsgBox "A drawing is about to be loaded from: " & FileName End Sub
MfG Tutti
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 23. Jul. 2007 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
|
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 23. Jul. 2007 12:34 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 23. Jul. 2007 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
Hi, Hab deine Antwort gerade erst gesehen. Ich denke, das mit einer Acad-Version <= 2006 arbeitest. Da musst du die 17 gegen eine 16 tauschen ==> Set ACADApp = GetObject(, "AutoCAD.Application.16") Gruß, Carsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 24. Jul. 2007 08:16 <-- editieren / zitieren --> Unities abgeben:
So hier bin ich wieder. Vielen Dank an Carsten für den "Anstubser". Folgender Code hat mich zum Erfolg gebracht - Eingetragen in "ThisDrawing". Code: Public WithEvents AcadApp As AcadApplicationPrivate Sub AcadDocument_Activate() Userform1.Show End Sub
MfG Tutti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 24. Jul. 2007 12:48 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
Hi Tutti, du weisst aber, das du bei AcadDocument_Activate() jedes mal deine Userform angezeigt bekommst, auch wenn du nur zwischen zwei Zeichnungen (Fenster) wechselst?! Da würde doch eher mit BeginOpne arbeiten. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 25. Jul. 2007 15:06 <-- editieren / zitieren --> Unities abgeben:
Ja. Funktioniert aber aus was für Gründen auch immer bei mir nicht. Nur der Activate-Befehl führt zum Erfolg. Ich glaub langsam, das Datenverwaltungssystem im Hintergrund macht hier komische Dinge, von denen ich nichts weiß. MfG Tutti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |