Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Modul aufrufen funktioniert nur sporadisch

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Modul aufrufen funktioniert nur sporadisch (1483 mal gelesen)
sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 11:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

ich habe ein eher merkwürdiges Problem. Und zwar habe ich ein VBA Projekt, welches mehrere Makros enthält.
Neben den 4 eigentlichen Makros auch eine Modul, welches ein Startmenu für die anderen Makros darstellt.

Das funktioniert soweit problemfrei.
Um den Komfort etwas zu erhöhen habe ich in die Makros einen Code implementiert, der bei Abbruch des Makros das Startmenu wieder aufruft.
Das merkwürdige ist, dass dieser Code mal funktioniert und mal nicht - was für mich extrem unlogisch ist, da er entweder zu funktionieren hat, oder halt gar nicht. Aber nur ab und zu mal kann ich mir schwer erklären.

Daher bitte ich um eure Tipps, wo ich den Fehler eingebaut habe. Vielen Dank im Voraus.

anbei der Code:

Der Code des Startmenu:

Code:
Option Explicit

Public Opt_cancel As Integer


Public Sub CATMain()

    Load mainmenu
    mainmenu.StartUpPosition = 1
    mainmenu.Show vbModeless

End Sub

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


Exemplarisch der Aufruf eines Makros aus dem Startmenu:

Code:
Private Sub cmd_project_Click()

        mainmenu.Hide
        Projektstruktur.CATMain
       
End Sub


im Makro der Befehl, der hinter dem Abbruch-Button steht:

Code:
Private Sub CommandButton1_Click()

Unload Me
Opt_cancel = 1

End Sub


und der dazugehörige Code im Makro "Projektstruktur":

Code:
Public Projekt_Art
Public Projekt_Nr As String
Public Projekt_zNr As String
Public InputPraefix
Public Hauptverzeichnis

Public In_Verz As String
Public WORK_Verz As String
Public OUT_Verz As String

Public Opt_autoSave As Integer

Sub CATMain()

Opt_cancel = 0

'--------------- User-Form aufrufen
Form_Projekt.Show
'--------------- Ende User-Form aufrufen
Debug.Print "Opt_Cancel Projektstruktur"
Debug.Print Opt_cancel
'--------------- Abbruch und Hauptmenu aufrufen
    If Opt_cancel = 1 Then
    Startmenu.CATMain
    Exit Sub
End If
'--------------- Ende Abbruch und Hauptmenu aufrufen


Anmerkung: Der Wert Opt_Cancel wird korrekt auf den Wert 1 geändert, sobald man die Form abbricht. Er beendet das Makro auch korrekt (Exit Sub), jedoch erscheint das Startmenu nicht zuverlässig.

[Diese Nachricht wurde von sto.teac am 17. Jul. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Jul. 2015 11:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Hallo,

also ich weis nicht genau, was du da machst, aber wenn du im Code Opt_cancel = 0 verwendest und dieser in einer Schleife aufgerufen wird, ist es doch reiner Zufall, ob das mit Opt_Cancel = 1 funktioniert oder nicht. Wenn nämlich Cancel vorher gedrückt wird, wird es im Code wieder mit 0 überschrieben. Macht an dieser Stelle für mich auch keinen Sinn.

Als nächstes sei klar zu sagen, wenn du das Menu mit hide ausblendest, dann musst du entweder per .visible = true oder .show das ding wieder in Show setzen. Das "Load mainmenu" was auch immer da passiert, scheint mir schon zu viel und Startupposition dürfte beim zweiten Aufruf keine Auswirkung haben!

Das ist das, was ich unsauber finde. Mehr kann ich erst sagen, wenn es mehr Code gibt 

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Jul. 2015 11:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Noch ergänzend dazu.. Wenn du eine Form aufrufst und in dieser bleibst, dann musst du per Timer oder Schleife abfragen, ob Cancel auf True gesetzt wird, denn sonst läuft es einmalig durch und danach kannst du so oft auf Cancel drücken wie du magst, ohne dass etwas passiert...

Also so ganz schlau werde ich daraus leider noch nicht ... Mag aber auch an mir liegen   

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 12:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke schon mal für das Feedback.
Ich versuche die Idee dahinter noch mal logisch zu skizzieren:

- das Startmenu wird über einen Button in einer Toolbar aufgerufen
- über das Startmenu wird das Makro (als Beispiel) Projektstruktur aufgerufen
- in dem Moment wird das Startmenu ausgeblendet und das Makro Projektstruktur gestartet
- der User entscheidet sich das Makro Projektstruktur mit dem in dessen Userform enthaltenen Abbruch-Button zu beenden
- das Makro wird normal beendet und das Startmenu erneut aufgerufen

So ist es gedacht - eventuell wird auch nach erfolgreichen Abschluss des Makros das Startmenu wieder aufgerufen, aber bevor ich mir darüber Gedanken mache muss der Mechanismus erst einmal funktionieren.

Ich hoffe das Ziel konnte ich jetzt klar definieren?!

Zu den Anmerkungen:

Der Wert Opt_Cancel wird bei Start des Makros auf 0 gesetzt, um sicher zu gehen, dass das Makro nicht "aus versehen" durch einen alten Stand der Option abgebrochen wird.
Danach wird die Userform des Makros gestartet. Wird hier abgebrochen, wird die Userform geschlossen und der Wert Opt_Cancel auf 1 gesetzt.
Damit sollte dann die If-Option aktiv werden und das Makro beenden und das Startmenu aufrufen.
Jedoch macht es das nur unregelmäßig - und im Moment finde ich den Grund nicht warum es manchmal klappt und manchmal nicht, obwohl der Wert für Opt_Cancel immer korrekt gesetzt wird.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 12:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Update:

Aufgrund des Hinweises zu "load mainmenu" habe ich die Zeile durch "mainmenu.show" ersetzt.
Damit scheint es ohne Probleme zu funktionieren. Kann mir das ein erklären?

Update 2:

es liegt an dem vbModeless ... wenn ich das weg lasse, funktioniert es. Ich benötige diesen Modus aber, um weiter auf Catia zugreifen zu können, während das Menu geöffnet ist.
Vorschläge? 

[Diese Nachricht wurde von sto.teac am 13. Jul. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Jul. 2015 12:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Dann würde ich aber eher ...

Code:

Private Sub CommandButton1_Click()
  MainMenu.visible = true
  Unload Me
End Sub

... schreiben und ohne Variable arbeiten. Das sollte eigentlich auch gehen.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Jul. 2015 12:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von sto.teac:
Update:

Aufgrund des Hinweises zu "load mainmenu" habe ich die Zeile durch "mainmenu.show" ersetzt.
Damit scheint es ohne Probleme zu funktionieren. Kann mir das ein erklären?


Das sollte eigentlich klar sein, denn das load lädt die Form. Mit hide machst du diese aber nur unsichtbar, geladen bleibt diese trotzdem. Ein zweiter Load im VBA ist AFAIK nicht möglich.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Code:
MainMenu.visible = true


das verursacht einen compile error

und ob ich "mainmenu.hide" oder "unload me" für das Hauptmenu nehmen macht keinen Unterschied - zumindest tritt das Problem bei beiden Varianten auf.

Im Moment glaube ich eher, dass es mit dem vbModeless zusammenhaengt.
Soweit mir bekannt, kann man kein modeless benutzen, wenn ein modal aktiv ist. soweit so restriktiv, aber ich schließe ja das modal vorher wieder. von daher sollten diese sich doch eigentlich nicht in die quere kommen oder?!

[Diese Nachricht wurde von sto.teac am 13. Jul. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 13:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

eine neue Erkenntnis und noch mehr Unverständnis  

ich habe in meinem Makro eine Abfrage, ob im Bauteil eine Selektion vorgenommen wurde.
Diese Abfrage ist ganz normal im Code implementiert und schaut wie folgt aus:

Code:
If Usel.Count > 0 Then
    first_sel_value = Usel.Item(1).Value.Name
Else
    MsgBox ("Es wurde keine Auswahl getroffen! - Das Makro wird beendet.")
    Startmenu.CATMain
    Exit Sub
End If

wie der geneigte Leser erkennt, ist im else-Teil der Aufruf des Hauptmenu und die Beendigung des Makros programmiert.
Das funktioniert jedes mal!

Nun gehen wir davon aus, dass eine Selektion vorhanden ist und der Programmcode läuft weiter, bis die Userform des betreffenden makros aufgerufen wird:

Code:
'--------------- User_Form aufrufen
batch_rename.Show
'--------------- Ende User_Form aufrufen

In der Userform wir Abbrechen gedrückt:

Code:
Private Sub Cmd_cancel_Click()

    Opt_cancel = 1
    Unload Me

End Sub



und wir springen zurück in den normalen Code des Makros, wo folgende Schleife wartet:
Code:
'--------------- Abbruch und Hauptmenu aufrufen
If Opt_cancel = 1 Then
    Startmenu.CATMain

    Exit Sub
End If
'--------------- Ende Abbruch und Hauptmenu aufrufen


Die Schleife enthält den selben Code, wie weiter oben die Abfrage der Selektion im else-Bereich.
Dennoch funktioniert es hier nicht. Das Makro wird beendet, aber das Hauptmenu erscheint nicht, bzw. wird ebenfalls gleich wieder beendet.

Das verstehe ich einfach nicht  

[Diese Nachricht wurde von sto.teac am 13. Jul. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Jul. 2015 14:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Das habe ich weiter oben schon versucht zu erklären. Der Code läuft doch weiter. Demnach solltest du das im CommandButton machen...

Code:

Private Sub Cmd_cancel_Click()
    Startmenu.CATMain
    Unload Me
End Sub

AFAIK wartet das Programm nicht mit Aufruf der Form.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 14:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

aber wenn ich das in den CommandButton schreibe kehrt er ja dennoch in das Makro zurück, von dem aus die Form aufgerufen wird.
Und wenn ich dort ein Exit Sub integriere scheint er damit auch das Hauptmenu mit zu schließen. Lasse ich es weg will er das Makro weiter führen, was auch nicht zum Ziel führt.

Wie kann ich veranlassen, dass nur das Makro geschlossen wird, aber nicht das Hauptmenu.
Gibt es einen Befehl mit dem ich nur das explizit benannte Makro beende?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


Sehen Sie sich das Profil von joehz an!   Senden Sie eine Private Message an joehz  Schreiben Sie einen Gästebucheintrag für joehz

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: 13. Jul. 2015 15:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Hallo sto,

mal eine gemeine Zwischenfrage:

Warum legst Deine Makros nicht auf eine (eigene) Toolbar?

Just a thought,
Joe

------------------
The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence.
~Charles Bukowski

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 15:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

mein Chef wünscht sich dieses Menu, damit automatisch alle Aktualisierungen/Erweiterungen/neuen Makros an die User übergeben werden ohne das man sich neue Makros einbinden etc muss.
Und dazu kommt, dass ich das hinbekommen will. Kann doch nicht sein, dass ich mich von dem blöden Programm veräppeln lasse 

[Diese Nachricht wurde von sto.teac am 13. Jul. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


Sehen Sie sich das Profil von joehz an!   Senden Sie eine Private Message an joehz  Schreiben Sie einen Gästebucheintrag für joehz

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: 13. Jul. 2015 16:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sto.teac 10 Unities + Antwort hilfreich

Ah, die Eitelkeit! So geht's mir auch immer. :-)

Es ist ein wenig schwierig im bisherigen Thread den Faden zu finden.
Deshalb kurz, was ich bisher verstanden hab:

- es gibt in einer 'catvba' ein 'Hauptmakro', das nie seinen Namen ändert und per Button aus Catia aufrufbar ist;
- in derselben catvba sind n(gegenwärtig 4) Kinder-Makros mit eigenem Modul und eventuell eigener Userform.
- im Haupt-Makro gibt's eine Auswahlmöglichkeit um ein bestimmtes Kinder-Makro zu starten

Was ich jetzt gerne noch anfügen würde, ist, dass nach Beenden des Kindermakros die Kontrolle wieder zur aufrufenden Routine des Hauptmakros zurückkehrt.
Das geht automatisch, wenn das Makro noch im Speicher ist. Dazu braucht's kein nochmaliges Starten des Hauptmakros.

Deshalb eine Frage und ein Vorschlag:

- Schliessen die Kindermakros sauber ab? Auch nach Cancel?
- Setz den Start-Code für das Kinder-Makro zwischen ein 'Hide/Show' -Pärchen

Pseudo-Code:

Hide_MainMakro
Start_KinderMakro
Show_MainMakro

Hope it helps,
Joe

------------------
The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence.
~Charles Bukowski

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sto.teac
Mitglied
CAD Designer / LV series production


Sehen Sie sich das Profil von sto.teac an!   Senden Sie eine Private Message an sto.teac  Schreiben Sie einen Gästebucheintrag für sto.teac

Beiträge: 66
Registriert: 23.07.2010

Catia V5-6 R24 Release 2014 HF20

erstellt am: 13. Jul. 2015 17:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

soho ... ich glaube jetzt habe ich es 
habe jetzt ein buntes Potpourri aus unseren 3 Ideen gebaut 

die (scheinbare - muss noch in ein paar Tests endgültig verifiziert werden) Lösung schaut wie folgt aus:


Aufruf des KindMakros im Startmenu:

Code:
Private Sub cmd_bodies2product_ntool_Click()

'    Unload Me
            mainmenu.Hide
        Opt_NTool = 1
        bodies2product.CATMain
     
End Sub



Abbruch des KindMakros in dessen eigener Userform + Aufruf des ParentMakro:
Code:
Private Sub cmdbtn_cancel_Click()

    Opt_cancel = 1
    Unload Me
'    Startmenu.CATMain
    mainmenu.Show

End Sub



Wirkliches beenden im CATMain des KindMakros:
Code:
If Opt_cancel = 1 Then
'    Startmenu.CATMain
    Debug.Print "Schleife erreicht"
    Exit Sub

End If


Die Kombination aus den Hinweisen hat zu dieser Lösung geführt und ich bedanke mich freundlichst dafür und hoffe, dass diese wirklich standfest ist 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz