Autor
|
Thema: Makro über VBA starten (7281 mal gelesen)
|
donbastiano Mitglied
Beiträge: 19 Registriert: 17.01.2011 Intel Core 2 Duo 3.00 Ghz 3 GB Arbeitsspeicher Windows XP Professional SP3 Catia V5 R18
|
erstellt am: 17. Jan. 2011 16:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich möchte gerne ein Makro über den Button in einer VBA userform starten lassen. Was für einen Befehl muss ich dafür verwenden? danke schon mal, donbastiano ------------------ bau den sofa grade Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 17. Jan. 2011 16:22 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
Servus, und Willkommen im Forum. Was willst du den mit dem VBA Makro starten? Ein anderes VBA, ein Modul innerhalb des gleichen Projektes (VBA), ein Modul innerhalb des gleichen Projektes oder ein CATSript/ CATVBS? Mehr Infos wären hier nötig. Ansonsten die SuFu hier verwenden oder einen Blick in die V5Automation werfen (Hinweis: ExecuteScript) PS: Bitte Systeminfo ausfüllen ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
donbastiano Mitglied
Beiträge: 19 Registriert: 17.01.2011 Intel Core 2 Duo 3.00 Ghz 3 GB Arbeitsspeicher Windows XP Professional SP3 Catia V5 R18
|
erstellt am: 17. Jan. 2011 16:32 <-- editieren / zitieren --> Unities abgeben:
Also. Ich habe ein Makro aufgenommen, in dem ich einen Körper generiere. Quelltext ist in VBScript verfasst. Jetzt möchte ich dieses Makro über eine mit VBA erstellte Userform, mittels eines Knopfes aufrufen lassen. ------------------ bau den sofa grade Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 17. Jan. 2011 16:47 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
Servus, warum kopierst du den Quellcode nicht einfach in ein neues Modul von deinem VBA hinein? Ansonsten könnte das so aussehen. Dieser Text wird in den Button hinterlegt mit dem du dein Makro starten willst. Code: '***Deklarationen für Function-Aufruf strProjekt = "OC_GUI.catvba" '*** VBA Project strMakro = "Start_Excel" '***Makroname strMakrostart = "CatMain" '***Welcher Teil vom Makro gestartet wird strProjektpfad = strOC_Pfad & "\" & strProjekt '***hier steht der Pfad drinnen wo die Datei (CATSript, CATVBS) liegt + das Project '***Function aufrufen Run_CatVBA strProjektpfad, strMakro, strMakrostart
Damit wird das Makro dann gestartet und die nötigen Variablen übergeben. Dieser Code steht dort drinnen mit dem du deine Userform startest. Code: Public Sub Run_CatVBA(strPfad As String, strMakro As String, strMakrostart As String) '***Deklarationen Dim vntParameter() As Variant Dim vntSystemService As Variant '***Makro aufrufen Set vntSystemService = CATIA.SystemService Call vntSystemService.ExecuteScript(strPfad, catScriptLibraryTypeVBAProject, strMakro, strMakrostart, vntParameter) End Sub
Mit der SuFu findet man sonst noch so einiges zu dem Thema. Sonst einfach mal in der V5Automation nach ExecuteScript suchen. Dort ist auch ein nettes Beispiel dazu.
------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelTreiber Mitglied Technischer Produktdesigner
Beiträge: 63 Registriert: 26.01.2011 Win XP/7 (64 Bit) Catia V5R18
|
erstellt am: 09. Mrz. 2011 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
Hallo, da dieser Thread ja schon offen ist , schreibe ich auch mal hier rein. Habe das gleiche Anliegen, habe ein Modul (modMain), das eine UserForm (UFKugeldoppelzapfen) aufruft. Dieses Modul (Datei: "M:\TreiberM\CATVBA\kugeldoppelzapfen.catvba") möchte ich über eine komplett andere Oberfläche eines anderen Moduls mit Klick auf ein Image öffnen, da ich ein Menü erstellen möchte, wo man sich zwischen verschiedenen Makros entscheiden kann. Habe mir die beiden oberen Codes mal angesehen und verstehe nur Bahnhof, wie genau muss meine ImageClick Procedure aussehen? Eine etwas simplere Antwort, bzw. eine etwas leichtere Erklärung wäre sehr hilfreich Danke im Vorraus ------------------ Grüße aus dem schönen Düsseldorf Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 10. Mrz. 2011 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
Servus, warum willst du zur Makroauswahl eine eigenes *.catvba erstellen? Ich hab alle Makros in einer einzigen VBA Datei drinnen und rufe die Makros wie weiter oben erwähnt, auf. Wenn es sich dann um einer Userform handelt brauchst du nur Userformname.Show. ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelTreiber Mitglied Technischer Produktdesigner
Beiträge: 63 Registriert: 26.01.2011 Win XP/7 (64 Bit) Catia V5R18
|
erstellt am: 14. Mrz. 2011 08:10 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
Die Sache ist die, nicht alle .catvba dateien sind von mir und ich erstelle für die anderen Mitarbeiter eine Benutzeroberfläche, wo sie leichter auf sämtliche Makros zugreifen können. Ich habe also von manchen Makros keine Rechte, um das Skript zu verwenden, kann die Prozedur lediglich starten und das versuche ich halt nun zu bewerkstelligen. Also muss ich irgendwie eine catvba datei über eine Benutzeroberfläche starten. ------------------ Grüße aus dem schönen Düsseldorf Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 14. Mrz. 2011 15:07 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
Servus, hab den obigen Code von mir nochmals probiert. Der läuft einwandfrei. In deiner fremden catvba Datei mußt du doch auch ein Modul haben, dass die anderen Makros (die in dieser catvba Datei drinnen sind) mit Userformname.Show aufruft. Genau dieses Modul mußt du dann in meinem obigen Code angeben. ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MichaelTreiber Mitglied Technischer Produktdesigner
Beiträge: 63 Registriert: 26.01.2011 Win XP/7 (64 Bit) Catia V5R18
|
erstellt am: 14. Mrz. 2011 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für donbastiano
|