Autor
|
Thema: Makro zwischenzeitlich anhalten (3562 mal gelesen)
|
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 19. Aug. 2005 13:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe das Problem meines letzten Beitrages "Neues Part als CATIA.ActiveDocument" eingrenzen können! Stehe aber nun schon wieder vor einem Neuen. Hier nochmal ein Code der das Problem verdeutlichen soll: Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.Add("Part") Dim part1 As Part Set part1 = partDocument1.Part Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim OpenBody1 As HybridBody Set OpenBody1 = hybridBodies1.Add() OpenBody1.Name = "xyz" Dim hybridShapeFactory1 As Factory Set hybridShapeFactory1 = part1.HybridShapeFactory Dim hybridShapePointCoord1 As HybridShapePointCoord Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(100,50,75) Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("xyz") hybridBody1.AppendHybridShape hybridShapePointCoord1 part1.InWorkObject = hybridShapePointCoord1 part1.Update Dim Selection1 Set Selection1 = CATIA.ActiveDocument.Selection Selection1.Clear Selection1.Add (hybridShapePointCoord1) MsgBox(Selection1.Item(1).Value.Name) Set visPropertySet1 = Selection1.VisProperties visPropertySet1.SetShow 1 part1.Update End Sub Startet man das Makro in einem leeren CATIA meckert es erstmal die Methode CATIA.ActiveDocument an. Wenn bereits ein Part geöffnet war, wird auch ein neues Part erzeugt in dem ein Punkt erzeuget wird der ausgeblendet wird! Dieser Punkt wird aber nur ausgeblendet (NOSHOW) wenn man erst den neuen Partnamen eingibt und dann die MsgBox wegklickt. Macht man es andersrum funzt es nicht. Er meckert zwar nicht aber der Punkt wird nicht ausgeblendet. Offensichtlich arbeitet CATIA das Makro im Hintergrund weiter ab, obwohl der User den neuen Partnamen noch nicht eingegeben hat. Das erklärt auch die Fehlermeldung mit "CATIA.ActiveDocument". Meine Frage wäre: Besteht die Möglichkeit das Makro so lange anzuhalten bis der User den Namen eingegeben hat. Falls nicht würde mich interessieren ob man bei der Parterzeugung den Partnamen im Makro vorgeben kann. Add("Part","Name") funktioniert nicht wie im Produkt. Siehe auch mein oben erwähntes Posting! Viele Grüße und allen ein Schönes Wochenende! Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MaxZ Mitglied Computer Aided Designer
Beiträge: 125 Registriert: 24.05.2005
|
erstellt am: 19. Aug. 2005 14:23 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo! Ich hab deinen Code mal ausprobiert und etwas geändert und bei mir klappt ansich jetz alles was du möchtest glaub ich. Kein Teil offen, eins erzeugen, umbenennen, openbody erzeugen, umbenennen, punkt erzeugen, punkt verstecken. Copy und Paste mal den Code: Sub CATMain() Set documents1 = CATIA.Documents Set partDocument1 = documents1.Add("Part") Set part1 = partDocument1.part hlp = part1.Name Set partDocument1 = CATIA.ActiveDocument Set product1 = partDocument1.GetItem(hlp) product1.PartNumber = "test_Number" Set hybridBodies1 = part1.HybridBodies Set OpenBody1 = hybridBodies1.Add() OpenBody1.Name = "xyz" Set hybridShapeFactory1 = part1.HybridShapeFactory Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(100, 50, 75) Set hybridBody1 = hybridBodies1.Item("xyz") hybridBody1.AppendHybridShape hybridShapePointCoord1 part1.InWorkObject = hybridShapePointCoord1 part1.Update Set Selection1 = CATIA.ActiveDocument.Selection Selection1.Clear Selection1.Add hybridShapePointCoord1 'MsgBox Selection1.Item(1).Value.Name Set visPropertySet1 = Selection1.VisProperties visPropertySet1.SetShow 1 part1.Update End Sub Habs allerdings als catvba ausprobiert, nicht als catscript. Vielleicht hilfts, Ciao Max <edit> V5 R12 SP6 </edit>
[Diese Nachricht wurde von MaxZ am 19. Aug. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 21. Aug. 2005 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo Thomas, ich habe deinen neuen Post erst gelesen, nachdem ich den alten bereits beantwortet hatte. Hier sind wir also schon einen Schritt weiter. Du kannst in den Tools Options die Einstellung so ändern, das nicht mehr nach einem Namen gefragt wird, wenn du ein neues Teil erzeugst. Die msgbox mit der Abfrage nach dem Namen erscheint dann nicht mehr. Ab R14 ist das Problem behoben (unabhänig von der Einstellung in den Tools Options) An Max: Hast du die entsprechende Einstellung in den Tools Options oder kommt die Abfrage nach dem neuen Namen bei dir auch noch? Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MaxZ Mitglied Computer Aided Designer
Beiträge: 125 Registriert: 24.05.2005
|
erstellt am: 22. Aug. 2005 07:33 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Guten Morgen Tomtom! Hab bei mir die Option auf "nicht-nach-neuem-Namen-fragen" gesetzt, drum kommt bei mir die Abfrage nicht. ob sie kommt wenn nach neuem Namen gefragt werden soll weiß ich nicht. Ciao Max ------------------ --- Der frühe Vogel fällt nicht weit vom Stamm. --- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 22. Aug. 2005 11:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Max, habe deinen Code kopiert und gesichert. Leider ohne Unterschied zu meinem. Beim ersten Durchlauf ohne bereits ein Dokument geöffnet zu haben läuft das Makro nicht durch und es erscheint wieder die Fehlermeldung(siehe Bild). Falls bereits ein Dokument geöffnet ist, kommt zwar keine Fehlermeldung aber es wird auch nichts ausgeblendet. Vermutlich weil sich die Selection auf das bereits geöffnete Dokument bezieht! Hallo TomTom, wo finde ich denn den Schalter unter Tools/Optionen? Hab gerade schon gesucht aber leider nicht gefunden. Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MaxZ Mitglied Computer Aided Designer
Beiträge: 125 Registriert: 24.05.2005
|
erstellt am: 22. Aug. 2005 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Das ist schon seltsam. Wie gesagt, ich habs als CATvba laufen lassen und grad erst als CATScript getestet. Klappt bei mir aber beides Fehlerfrei. Evtl. liegts echt an dem Schalter. Ciao Max ------------------ --- Der frühe Vogel fällt nicht weit vom Stamm. --- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 22. Aug. 2005 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 23. Aug. 2005 11:45 <-- editieren / zitieren --> Unities abgeben:
Hallo TomTom, hallo Max! Habe unseren Administrator gebeten, die Änderung in den Tools/Optionen vorzunehmen und siehe da es funktioniert! Es liegt also definitiv an dem Schalter! Die Frage ist jetzt nur noch, ob jemand eine Möglichkeit weiß, wie man so etwas unterbinden kann. Lässt sich ein Makro anhalten bis eine bestimmte Usereingabe gemacht worden ist? Es ist ja wohl offensichtlich so, das das Makro im Hintergrund weiterläuft, auch wenn noch kein neuer PartName eingegeben ist und so zwangläufig eine Fehlermeldung (Method ActiveDocument failed) kommen muss, falls noch kein Part existiert. So ganz verstehe ich das sowieso nicht, da ich bei einer Inputbox doch auch Variablen Werte zuweisen kann die anschliessend dann korrekt verarbeitet werden. Naja, mal sehen ob jemand eine Lösung weiß! Vielleicht kann man es über eine Schleife lösen ... Gruß, Thomas
------------------ ------------------------------------------------- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 23. Aug. 2005 14:23 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal! Habe gerade eine Billig-Lösung für das Problem gefunden! Zuerst hatte ich an eine Schleife gedacht die solange läuft bis der Variablen "Partname" ein Wert zugewiesen wird. Funktioniert aber leider nicht, da CATIA der Variablen "Partname" sofort einen Wert zuweist auch wenn der User noch nicht "OK" gedrückt heisst. Wenn man ein neues Part erzeugt erscheint ja eine Inputbox in der ein Defaultname eingetragen ist (z.B. PART1). Dieser Wert wird sofort zugewiesen. Meine "Billig-Lösung" ist einfach ein Messagebox zu öffnen, die erst weggeklickt werden darf nachdem der Partname eingegeben ist. Hat bei mir funktioniert! Nun ist es egal ob bereits ein Part geöffnet ist oder nicht! Is' zwar sehr unelegant wie ich finde, aber mit fällt z.Zt nichts besseres ein! Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.Add("Part") Dim part1 As Part Set part1 = partDocument1.Part MsgBox ("Achtung! Bitte erst den Namen des neuen Parts eingeben und dann diese Box wegklicken!") Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim OpenBody1 As HybridBody Set OpenBody1 = hybridBodies1.Add() OpenBody1.Name = "xyz" Dim Selection1 as Selection Set Selection1 = CATIA.ActiveDocument.Selection Selection1.Clear Selection1.Add (OpenBody1) Set visPropertySet1 = Selection1.VisProperties visPropertySet1.SetShow 1 part1.Update End Sub Ich hoffe von Euch hat jemand eine bessere Lösung !!!
Gruß Thomas
------------------ ------------------------------------------------- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 05. Nov. 2015 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo zusammen Zitat: Original erstellt von AlfaRomeo75: Meine "Billig-Lösung" ist einfach ein Messagebox zu öffnen, die erst weggeklickt werden darf nachdem der Partname eingegeben ist. Hat bei mir funktioniert! Nun ist es egal ob bereits ein Part geöffnet ist oder nicht! Is' zwar sehr unelegant wie ich finde, aber mit fällt z.Zt nichts besseres ein!
Wie ist es möglich, irgendwelche Aktionen in Catia von Hand durchzuführen während die Msgbox auf dem Bildschirm ist? Bei mir lässt sich nichts anklicken solange die Msgbox offen ist. Gruß Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 05. Nov. 2015 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 05. Nov. 2015 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Ein Produkt soll als CATPart manuell erstellt werden und das Makro danach weiterlaufen. Da ich momentan keine andere Lösung finde wollte ich das Makro über die Msgbox anhalten und nach der manuellen ProductToPart Umwandlung wieder weiterlaufen lassen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 05. Nov. 2015 12:36 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 05. Nov. 2015 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Diese Funktion ist laut DS leider ab ab V5R24Sp01 nicht mehr verfügbar ohne das Zusatzprodukt "DF1". Deshalb muss diese ProduktToPart Umwandlung manuell stattfinden... Ist es irgendwie möglich das so zu tun während die Msgbox auf dem Bildschirm ist? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 05. Nov. 2015 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 05. Nov. 2015 17:40 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Vielen Dank Joe, das war eine gute Idee Jetzt habe ich aber das Problem, das das Makro bei dem Aufruf "UserForm1.Show vbModeless" nicht anhält, sondern einfach weiterläuft, obwohl ich in der UserForm ShowModal auf false gestellt habe. [Diese Nachricht wurde von Peter91 am 05. Nov. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Nov. 2015 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Servus Und wenn du in der Userform ein CommandButton einfügst, das dann das weitere Makro (also der Rest) erst aufruft? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 05. Nov. 2015 18:25 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 05. Nov. 2015 18:27 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Edit: So war's auch gedacht. Wenn Du unbedingt die Form nur zum Pausieren :-) verwenden willst: '-------------------------------schnipp---------------------------- Hallo Peter, hab ich gesagt, dass Du in den Form-Properties Showmodal verändern sollst? >:-| Lass das bitte mal auf 'True'. Aufruf der Form(MsgBox) zB:
Code:
Public bFinished as booleanSub CATMain() bFinished = False UserForm2.Show vbModeless do if bFinished = true exit do doevents ' <-- wichtig! sonst blockierst Du mit der Schleife das Makro loop End Sub
In 'UserForm2_Initialize()' geht's dann weiter. Wenn Du mit Deiner PtoP-Umwandlung fertig bist, klickst Du auf OK. In der Routine für OK_Click setzt Du dann bFinished = True. Hope it helps, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SteelNinja Mitglied Student - Maschinenbau
Beiträge: 9 Registriert: 03.02.2016 Catia V5R18 Catia V5R21 Catia V5R25
|
erstellt am: 21. Mrz. 2016 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo zusammen, ich wollte auch über eine UserForm mein Makro anhalten. Wird benötigt, damit der User die Baugruppe richtig im Bildschirm einpassen kann (je nach Wunsch) und danach werden automatisch Screenshots erstellt. Da die Screenshots nur optional sind, würde ich das gerne so einbauen. Habe obiges Makro dann so umgebaut, dass es in VBA bei mir ohne Fehlermeldung läuft. Erstmal nur einzeln, um die Wartefunktion zu testen. Code: Dim bFinished As Boolean Sub CATMain() bFinished = False UserForm1.Show vbModeless Do If bFinished = True Then UserForm1.Hide Exit Do End If DoEvents ' <-- wichtig! sonst blockierst Du mit der Schleife das Makro Loop MsgBox "Macro Done", vbInformation End Sub
Der Code meiner Userform sieht dann so aus. Dabei ist bFinish der Button Name.
Code: Private Sub bFinish_Click() bFinished = True End Sub
Wenn ich dann auf "OK" klicke, passiert aber nichts. Wenn ich allerdings per Makro bFinished = True setze, wird das Makro sauber durchgewunken - nur halt ohne Wartezeit... In einem Excel Beispiel, dass ich gefunden habe, wurde auch nicht mehr deklariert und dieses scheint zu funktionieren... Muss ich das Makro mit der Userform doch noch extra verbinden? Oder stehe ich einfach nur aufm Schlauch? Schon mal vielen Dank und Grüße Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 21. Mrz. 2016 11:00 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hi Ninja, kommt mir so bekannt vor ...? Probier mal: Im Code der Hauptform(Modul geht wahrscheinlich auch):
Code:
Load frmWaitDlg 'makro anhalten 'wait for form to close Unload frmWaitDlg 'weiter, nachdem beendet
Der Code von frmWaitDlg sieht dann so aus: Code:
Option Explicit Dim bFinished As BooleanPrivate Sub btnOK_Click() bFinished = True End Sub Private Sub UserForm_Initialize() Caption = strMacroName & " " & strMacroVers lblWaitDlg.Caption = "Create external parameters in drawing." & vbCrLf _ & "Click 'OK' when finished." Me.Show vbModeless Do If bFinished = True Then Exit Do DoEvents Loop Me.Hide End Sub
wobei die Makro-Konstanten im Modul deklariert sind als Code:
'macro constants Public Const strMacroName As String = "ParmDoctor" 'macro name Public Const strMacroVers As String = "V1.2" 'macro version
Der Dialog sieht so aus --> Hope it helps, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SteelNinja Mitglied Student - Maschinenbau
Beiträge: 9 Registriert: 03.02.2016 Catia V5R18 Catia V5R21 Catia V5R25
|
erstellt am: 21. Mrz. 2016 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
89marbru Mitglied
Beiträge: 25 Registriert: 13.06.2016 Catia V5R21 Windows 7 catvba
|
erstellt am: 14. Jun. 2016 10:26 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hi, danke für das Makro. Ist genau das was ich gesucht habe und funktioniert top. Kannst du mir bitte zu folgender Zeile deines Codes noch etwas sagen: lblWaitDlg.Caption = "Create external parameters in drawing." & vbCrLf _ & "Click 'OK' when finished." "lblWaitDlg" erkennt er bei mir nicht. Wie ist die Variable definiert? Zurzeit habe ich die Zeile auskommentiert und "bFinished = True" manuell gesetzt um das Makro zu testen. Vielen Dank schon mal!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Jun. 2016 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 14. Jun. 2016 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
89marbru Mitglied
Beiträge: 25 Registriert: 13.06.2016 Catia V5R21 Windows 7 catvba
|
erstellt am: 14. Jun. 2016 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
89marbru Mitglied
Beiträge: 25 Registriert: 13.06.2016 Catia V5R21 Windows 7 catvba
|
erstellt am: 14. Jun. 2016 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Guten Tag zusammen, so das mit dem Pausieren klappt wunderbar. Da ich bei jedem Pausieren in die UserForm einen anderen Text mit Anweisungen schreiben möchte, würde ich gerne den Text der UserForm als Variable definieren den ich dann zuvor setze. Mein Module soll dann die UserForm mit einer Variable aufrufen. Mit Public Const funktioniert die Übergabe von "Module" an "UserForm" super aber ich kann die Public Const nicht im Code ändern. Ich hab auch schon im Forum und Internet geschaut aber konnte nichts passendes finden was funktioniert hat. Ich will etwas das wie folgt aussieht: Sub CATMain() . . . name_pub_1 = "Hallo" 'dieser Text soll dann in der UserForm stehen Load frmWaitDlg 'makro anhalten Unload frmWaitDlg 'weiter, nachdem beendet . . . name_pub_2 = "Hi" 'dieser Text soll dann in der UserForm stehen Load frmWaitDlg 'makro anhalten Unload frmWaitDlg 'weiter, nachdem beendet . . . End Sub Habt ihr da eine Idee? Notfalls müsste ich halt für jede Pause eine eigene UserForm erstellen, das klappt aufjedenfall. Danke schön und einen schönen Tag, Marbru Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 14. Jun. 2016 16:50 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hi, Zitat:
ich kann die Public Const nicht im Code ändern
Nachdem Du die Variable als konstant definiert hast, kann's nicht gehen ;-) Ich klau jetzt kurz von mir selbst: Probier mal: Im Code der Hauptform(Modul geht wahrscheinlich auch): Code:
strDlg="Hallo" 'definieren des Dialog-Textes Load frmWaitDlg 'makro anhalten 'wait for form to close Unload frmWaitDlg 'weiter, nachdem beendet
Der Code von frmWaitDlg sieht dann so aus: Code:
Option Explicit Dim bFinished As Boolean Private Sub btnOK_Click() bFinished = True End Sub Private Sub UserForm_Initialize() Caption = strMacroName & " " & strMacroVers lblWaitDlg.Caption = strDlg & vbCrLf _ & "Click 'OK' when finished." Me.Show vbModeless Do If bFinished = True Then Exit Do DoEvents Loop Me.Hide End Sub
wobei die Makro-Konstanten im Modul deklariert sind als Code:
'macro constants Public Const strMacroName As String = "ParmDoctor" 'macro name Public Const strMacroVers As String = "V1.2" 'macro version Public strDlg As String 'der Dialog-Text
Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
89marbru Mitglied
Beiträge: 25 Registriert: 13.06.2016 Catia V5R21 Windows 7 catvba
|
erstellt am: 15. Jun. 2016 08:48 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Eingebaut und funktioniert :-) Vielen Dank! Haha ja klar, wenn die Variable konstant ist kann es ja nicht klappen. Ich hatte dies gestern auch schon bemerkt aber keine Lösung gefunden. Danke nochmal =D Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |