Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro (sauber) beenden

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:  Makro (sauber) beenden (1334 mal gelesen)
Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 12. Jun. 2008 16:06    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,

ich hab mein Makro soweit schon recht weit. Nun hab ich eine Situation, da hab ich keine Idee mehr obwohl es bestimmt recht einfach ist.

Und zwar hab ich einige If schleifen und auch eine Do loop Schleife. In dieser verschachtelung habe ich eine InputBox in der ich etwas abfrage. Dort ist außer dem button OK auch der Button CANCEL. Nur wenn ich auf Cancel klicke führt er den Code ganz normal weiter aus als wie wenn ich OK anklicke.

Hab schon versucht erst aus der Do lopp sache mit "exit do" herauszukommen und dann mit einem END das Makro einfach beenden.

Aber an der Stelle läuft das Makro einfach weiter. Auch ein einfaches END wenn nichts in der Inputbox steht (Len(inhalt)=0) funktioniert nicht.


Weiß von Euch jemand Rat?

Grüße

Tiberius

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 12. Jun. 2008 16:22    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 Tiberius 10 Unities + Antwort hilfreich

Hallo Tiberius,

zunächst muss ich einfach anmerken, dass der Ausdruck "If Schleife" mir reichlich weh tut, es sind Anweisungen, keine Schleifen.  Ja ich musste mal klug******en.

Nun zu deiner Frage, also das OK und Cancel musst du prüfen, deine Box hat einen Rückgabewert, ich glaube 6 und 7 müssten das sein, könnte aber uach ein String "OK/Cancel" sein.

Wenn es auf 7 oder Cancel steht, oder was auch immer, jedensfalls wenn du Abbrechen musst, dann mach einfach ein "Exit Sub", ich gehe mal davon aus, dass die Funktion in einer Sub steht, ansonsten "Exit Function" oder wenn du sehr unsauber programmieren willst ein Goto und dann am Ende eine Sprungmarke definieren.

Hoffe dein Problem richtig verstanden zu haben.

MfG
Lila

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 12. Jun. 2008 16:46    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 Tiberius 10 Unities + Antwort hilfreich

Hallo Tiberius,

normalerweise weist du ja der InputBox auch eine Variable zu also:

Code:

Abfage = InputBox("Bitte geben sie eine Zahl ein","Hinweis",0)

Wenn der User Abbrechen drückt musst du das Makro wahrscheinlich beenden, da das Makro ohne dieser Abfrage nicht mehr sauber laufen kann. Also musst du halt direkt nach deiner InputBox eine Abfrage starten. Das solltest du so und so den es kann ja mal sein, das der Anwender statt ener Zahl ein Buchstabe eingibt und dann läuft dein Makro nicht mehr sauber ;)
Schau dir mal das Codebeispiel an:

Code:

Sub Test()


Dim Abfrage As String 'Hier musst du dir erst mal Definieren was der User überhaupt eingeben darf!
Do
On Error Resume Next
Abfrage = InputBox("Bitte geben Sie eine Ganzzahl ein", "Hinweis")

'Falls der User abbrechen drueckt
    If Abfrage = "" Then
        Box = MsgBox("Der User hat abbrechen gedrueckt!", vbInformation, "Hinweis")
        Exit Sub
    End If
   
'Falls der User ein falschen Dateityp eingibt (zB einen Buchstaben). Hier wird die Abfrage wiederholt!
    Dim AbfrageFin As Integer
    AbfrageFin = Abfrage
    If Err.Number <> 0 Then
        Box = MsgBox("Hat eine falsche Information eingegeben" + Chr(10) + "Bitte geben sie eine GANZZAHL ein!", vbInformation, "Abbruch")
    End If
Loop Until Err.Number = 0
On Error GoTo 0

Box = MsgBox("Der User hat die Zahl " & AbfrageFin & " eingegeben", vbInformation, "Hinweis")

End Sub


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

Die KATJA ist halt doch nur ne zickige Französin

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 12. Jun. 2008 19:37    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

Hi,

danke schonmal für die Tipps. Das Makro läuft schon soweit daß alles abgefangen ist was eingegeben werden kann. Nur der ABBRUCH Button war nicht abgefangen. Und ich glaub Exit Sub hatte ich noch nicht probiert. Werde es morgen mal in der Firma testen.

Bei mir handelt es sich in der Tat um einen String der bei der inputbox eingegeben wird. Es ist an der Stelle aber auch ein Leerstring möglich, so daß ein Leerstring nicht unbedingt mit der Abbruchtaste gleichzusetzen ist.

Ach ja, ich hab das eigentlichs chon sehr sauber aufgebaut, mußte jedoch einen Teil von einem bestehenden Makro übernehmen. Ich bitte um Entschuldigung wegen der Ausdrucksweise aber es mußte einfach schnell gehen und ich denke jeder weiß das man oft mehrere Dinge auf der Arbeit gleichzeitig macht;-)

Grüße

Tiberius

[Diese Nachricht wurde von Tiberius am 12. Jun. 2008 editiert.]

[Diese Nachricht wurde von Tiberius am 12. Jun. 2008 editiert.]

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