| |
| KISTERS 3DViewStation - Der Schlüssel zur Einsparung von CAD-Lizenzen, eine Pressemitteilung
|
Autor
|
Thema: VBA prüfen ob aktives Fenster ein Produkt ist (991 mal gelesen)
|
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 18. Sep. 2018 10:54 <-- editieren / zitieren --> Unities abgeben:
Hallo , Ich habe folgendes Problem Ich möchte per Marko Prüfen ob das aktive Fenster ein Produkt ist, wenn ja soll mit dem Code fortfahren wenn nicht soll er das Makro beenden. wer kann mir da helfen. Danke im voraus . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
afaliwan Mitglied Ingenieur
Beiträge: 8 Registriert: 10.06.2016 CatiaV5 R32 SP2 Windows 10 Enterprise HP ZBook Fury 17.3 inch G8 Mobile Workstation
|
erstellt am: 18. Sep. 2018 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Hallo, ich mach das immer so: Code:
Dim oRequestProduct As Document Set oRequestProduct = CATIA.ActiveDocument Select Case TypeName(oRequestProduct) Case "ProductDocument" Case Else MsgBox "Kein Produkt im aktiven Fenster. Bitte gewünschtes Produkt öffnen.", 16 Exit Sub End Select
------------------ "Die Genialität einer Konstruktion liegt in ihrer Einfachheit. Kompliziert bauen kann jeder." - Sergej P. Koroljow [Diese Nachricht wurde von afaliwan am 18. Sep. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 18. Sep. 2018 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Hallo, If TypeName(CATIA.ActiveDocument) = "ProductDocument" then Else End if oder auch als Select Case Select Case TypeName(CATIA.ActiveDocument) Case "ProductDocument": Case "PartDocument": Case "DrawingDocument": Case Else: End Select Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 19. Sep. 2018 08:12 <-- editieren / zitieren --> Unities abgeben:
Danke nochmals für eure Hilfe Ich habe das ganz anders gelöst. If CATIA.Documents.Count = 0 then MsgBox "Kein Dokument geöffnet, Bitte öffnen Sie ein Produkt" Exit Sub End if Dim oDocument As Document Set oDocument = CATIA.ActiveDocument if TypeName(oDocument) = "PartDocument" Then MsgBox "Falsche Dokumentart geöffnet. Bitte öffnen Sie ein Produkt" Exit Sub if TypeName(oDocument) = "DrawingDocument" Then MsgBox "Falsche Dokumentart geöffnet. Bitte öffnen Sie ein Produkt" Exit Sub end if end if End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 19. Sep. 2018 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Hallo, das mit dem CATIA.Documents.Count könnte schief gehen weil CATIA nach dem Schließen eines Dokuments diese nicht aus der Documents Collection rausschmeißt. Evtl. wird du hier mit CATIA.Windows.Count glücklicher. Allerdings könnte das immer noch der CATIA Desk sein. Ich mache das meistens so: Code:
Dim P_oPartDoc as PartDocument On Error Resume Next Set P_oPartDoc = CATIA.ActiveDocument If Err.Number <> 0 Then MsgBox "No or wrong document loaded (supports CATParts only).", vbInformation, "Program abort" Exit Sub End If On Error GoTo 0
Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |