Autor
|
Thema: Probleme mit SelectElement in VBA (7425 mal gelesen)
|
torspezialist Mitglied
Beiträge: 44 Registriert: 29.06.2003
|
erstellt am: 19. Jul. 2004 21:16 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, hoffentlich kann mir jemand helfen. Ich muß am DO eine Ausarbeitung zu einem Makro abgeben, in dem der User interaktiv einen Block oder eine Linie aus einem CATpart auswählen soll und der Name dieses ausgewählten Elements in eine Textbox eines USERForms (VBA) übernommen wird. Leider hat VBA mit der Anweisung SelectElement irgendein Problem (siehe angehängtes Bild). Der Quellcode stammt von meiner "Ziethen-Bibel", allerdings klappt es in VBA nicht (siehe Fehlermeldung) Ich bin am Verzweifeln und daher für jeden Tip und jeden Beispielcode WIRKLICH DANKBAR!!!! Gruß Torspezi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
em Michael Kirsch Mitglied Teamleiter KBE Methoden & Tools
Beiträge: 222 Registriert: 21.10.2002 CATIA V5 R16 CATIA V5 R18 CATIA V5 R19 NX 5 NX 6 NX 7.5
|
erstellt am: 19. Jul. 2004 23:57 <-- editieren / zitieren --> Unities abgeben: Nur für torspezialist
Hallo torspezialist, laut Dokumentation ist die Funktion SelectElement der Klasse Selection "deprecated", d. h. wird nicht mehr unterstützt. An deren Stelle tritt nur die Funktion SelectElement2 mit identischer Syntax. Es müsste also bei Dir heißen: E = UserSel.SelectElement2("....") Viele Grüße, Michael Kirsch ------------------
www.em.ag
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bartleby Mitglied
Beiträge: 102 Registriert: 17.06.2004 Win XP V5R12 SP3, SP5 Win 2000 SP4 V5R12 SP3
|
erstellt am: 20. Jul. 2004 07:26 <-- editieren / zitieren --> Unities abgeben: Nur für torspezialist
Noch nicht ganz, auch mit der SelectElement2("") gehts noch nicht die Fehlermeldung ist und bleibt die selbe. Was mir noch aufgefallen ist: auch die Definition von "E As CATBSTR" ist ausgeblendet weil's net als benutzerdefinierte Variable existiert so die Fehlermeldung, also kann er mit CATBSTR nicht als Catia-Bezeichnungs-Var. erkennen, macht aber nix hab mal Variant vereinbart, da macht man nix falsch. (evtl. unterschied VB-VBA-CatScript?) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bartleby Mitglied
Beiträge: 102 Registriert: 17.06.2004 Win XP V5R12 SP3, SP5 Win 2000 SP4 V5R12 SP3
|
erstellt am: 20. Jul. 2004 08:30 <-- editieren / zitieren --> Unities abgeben: Nur für torspezialist
|
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 20. Jul. 2004 09:30 <-- editieren / zitieren --> Unities abgeben: Nur für torspezialist
Hallo Versuch doch mal der Variabel UserSel keinen Typ zuzuweisen. Also nur: Dim UserSel Dadurch kommt es zu einer späten Bindung, bei mir hat das geholfen!
------------------ Grüße TStone "Respektiere die Macht der Worte, wähle sie mit Bedacht!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001
|
erstellt am: 20. Jul. 2004 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für torspezialist
Sub CATMain () ' Auswahl festlegen ----------------------------------------------- Dim Was(1) Was(0) = "Pad" Was(1) = "Line" ' Selektion definieren und leeren --------------------------------- Dim UserSel As Selection Set UserSel= CATIA.ActiveDocument.Selection UserSel.Clear ' Selektion vornehmen lassen -------------------------------------- Dim E As CATBSTR E = UserSel.SelectElement(Was, "Pad oder Linie wählen.", true) If E = "Normal" Then MsgBox(UserSel.Item(1).Value.Name) Else MsgBox ("Abbruch") End If ' Selektion freigeben -------------------------------------------- UserSel.EndSelectElement UserSel.Clear End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
torspezialist Mitglied
Beiträge: 44 Registriert: 29.06.2003
|
erstellt am: 20. Jul. 2004 21:11 <-- editieren / zitieren --> Unities abgeben:
Hallo noch einmal, vielen Dank für die zahlreichen Antworten. Ich habe mich noch einmal selbst drangesetzt und die Lösung gefunden: Die Deklaration als "Selection" war das Problem!!! In VBA solte man eine Selektion einfach als "OBJECT" deklarieren, dann läuft es - obwohl ich das schon merkwürdig find... Nochmals danke für Eure Antworten...bis demnächst Torspezi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str Mitglied
Beiträge: 119 Registriert: 17.01.2001
|
erstellt am: 24. Jan. 2006 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für torspezialist
|