Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Probleme mit VBA

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:  Probleme mit VBA (1401 mal gelesen)
danielsc
Mitglied



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

Beiträge: 45
Registriert: 18.06.2009

erstellt am: 29. Jul. 2009 13:55    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

Ich hab ja schon vor längerer zeit mal geschrieben das ich Probleme mit meinem VBA unter CATIA hab (hier) und dachte damals ich hab alle Fehler behoben. Jetzt ist mir aber schon vor ein paar wochen aufgefallen das ich von einem Modul kein anderes Modul aufrufen kann.

Also im ersten Modul steht:

Code:
Sub Variable()
a="Test"
call Zeigen(a)
end sub

und im zweiten Modul steht:

Code:
Sub Zeigen(a)
Msgbob a
end sub

Wenn ich jetzt des erste Modul starte müßte er mir ja einfach eine Msgbox mit dem Text "Test" ausgeben. Macht er aber nicht sondern gibt mir in der Zeile call Zeigen(a) einen Fehler aus. OK bis jetzt hab ichs dann einfach so gemacht das ich alles in ein Modul geschrieben hab.

Also so:

Code:
Sub Variable()
a="Test"
call Zeigen(a)
end sub
------------------------------------
Sub Zeigen(a)
Msgbob a
end sub

Ist zwar bestimmt keine schöne Lösung aber wenigstens funktioniert es dann.

Nun hab ich aber das Problem das ich eine Form in mein Programm einbauen will. Diese muß Nicht-Modal sein weil es möglich sein muß während sie angezeigt wird noch ein paar Sachen in CATIA zu erledigen (Messen, Linien zeichnen,...).


Eigentlich wär das ja auch kein Problem, denn ich würde dann einfach bei bestätigen irgend einer der Commandbuttons in der Form mit dem call-Befehl ein neues Modul öffnen und dann läuft das Makro eben ab diesem Modul weiter. Aber weil ich ja keine Module von einer anderen Form/Modul ansprechen kann ist mir das nicht möglich.

So und nun zu meinen Fragen:
1. Woran könnte es liegen das dies bei mir in VBA nicht möglich ist?

2. Wenn ich den Fehler in VBA nicht beheben kann, wüßtet ihr irgend eine Lösung dafür, dass die Form Nicht-Modal angezeigt wird aber der restliche Programmcode erst ausgeführt wird wenn man einen Button in der From clickt?

[Diese Nachricht wurde von danielsc am 29. Jul. 2009 editiert.]

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

Speedway04
Mitglied
Konstrukteur


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

Beiträge: 30
Registriert: 16.07.2007

erstellt am: 29. Jul. 2009 14:11    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 danielsc 10 Unities + Antwort hilfreich

Hallo danielsc,

wenn ich aus einem Modul ein anderes aufrufen möchte gebe ich

Call Modulname

an.
Zu 2 kann ich dir leider nichts sagen.

------------------
mfg
Udo

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 29. Jul. 2009 14:14    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 danielsc 10 Unities + Antwort hilfreich

Hallo Daniel,

natürlich kannst du ohne Probleme ein Prozedur bzw. Funktion etc. aus einem anderen Modul aufrufen. Du musst aber VBA sagen in welchen Modul sich die Funktion, Prozedur, etc. befindet.

Ändere mal dein Code ab und versuche es nochmals so:

Im ersten Modul (der Name sei mal "StartModul") steht:

Code:

Sub Variable()
  Dim a as String
  a="Test"
  TargetModul.Zeigen(a)
End Sub

Im zweiten Modul (der Name sei "TargetModul") steht:

Code:

Sub Zeigen(TextAsString)
  Msgbob TextAsString
end sub


Jetzt sollte das ohne Probleme laufen. Du kannst hierbei auf alle in den aktiven Libraries verfügbaren Prozeduren, etc. zugreifen. Du musst VBA aber IMMER sagen in welchem Modul er den die entsprechende Sub bwz. Function findet 

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

danielsc
Mitglied



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

Beiträge: 45
Registriert: 18.06.2009

erstellt am: 29. Jul. 2009 14:48    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

ok des werd ich dann morgen doch gleich mal ausprobieren. (bin grad nicht in der arbeit und hab kein CATIA hier)

Hab halt früher schon in Excel VBA programmiert und da ging des auf meine Weise ohne Probleme. Bin dann davon ausgegangen das es bei VBA in CATIA genauso läuft.

Mfg Danny

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