Thema Datum  Von Nutzer Rating
Antwort
09.04.2009 09:05:41 Pete
NotSolved
09.04.2009 10:22:54 Holger
NotSolved
Rot Aw:Aw:Do...While until Schleife Abbrechen (Holger)
09.04.2009 12:25:04 Pete
NotSolved

Ansicht des Beitrags:
Von:
Pete
Datum:
09.04.2009 12:25:04
Views:
1036
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Do...While until Schleife Abbrechen (Holger)
Hallo Holger.

Spitzenmäßig, läuft!


Danke Dir!


Gruß Pete



Holger schrieb am 09.04.2009 10:22:54:

Hallo Pete,
jetzt verstehe ich, was du meinst. Du meinst die Abbrechen-Buttons auf den Input-Boxen.
Die Do-Loop-Schleifen sollen verhindern, dass falsche Eingaben erfolgen, mit denen das Programm später nichts anfangen kann. Werden Abbrechen-Button oder -Kreuz geklickt, wird ein leerer String zurückgegeben. Dabei kann nicht unterschieden werden, ob kein Eintrag in das Textfeld der Inputbox erfolgte, oder eines dieser Buttons angeklickt wurde. Die Do-Loop-Schleife ist allerdings so programmiert, dass sie eine Eingabe erwartet, und im anderen Fall wieder die Inputbox zeigt.
Wenn du nur vernüftige Eingaben erwartest, kannst du diese Prüfung natürlich weglassen. Um die Änderungen zu minimieren also
Sub Eingeben(text, wert)
wert = InputBox(text, Messwerte, wert)
End Sub
Wenn du die Prüfung willst, könntest du z.B.
Sub Eingeben(text, wert)
Static t
t = text
Do
wert = InputBox(t, Messwerte, wert)
t = text + vbCrLf + "Geben Sie einen vernünftigen Wert ein!"
if wert="" then
a=msgbox("Wollen Sie abbrechen?",vbyesno)
if a=vbyes then wert="Abbruch":exit sub
Loop While wert = ""
End Sub
Hinter jedem Aufruf von Sub eingeben muss dann sinngemäß
if ming="Abbruch" then exit sub
eingefügt werden (if maxg="Abbruch" then exit sub usw)
Vielleicht sollte man zweckmäßigerweise die sub Eingabe dann in die Hauptroutine integrieren. Dazu sind aber im wesentlichen nur einige Umstellungen erforderlich, die du bestimmt selbst hinbekommst.
Gruß
Holger


Pete schrieb am 09.04.2009 09:05:41:

Guten Morgen Holger,

mein Programm sieht wie unten aufgeführt aus. Ich habe das selbe Problem wie du. Ich finde diesen Abbrechen Button oder das Schließen Kreuzchen ebenfalls nicht.

Das Programm läuft einwandfrei, einzig und alleine dieser Abbrechen Button bereit noch Kummer.

Ich habe mir schon über diese Do... Loop while Funktion den Kopf zerbrochen, aber bin zu keinem Ergebnis gekommen.

Gruß Pete


Holger schrieb am 08.04.2009 17:39:54:

Hallo Pete,
welchen Code hast du dem Abbrechen-Button zuordnet? Endet das Makro nicht von selbst?
Gruß
Holger

Pete schrieb am 08.04.2009 15:38:55:

Hallo zusammen,
Hallo Holger,

ich habe deine Anmerkung letztes Mal versucht umzusetzen und siehe da die Corel Geschichte läuft jetzt tatsächlich, wenn gleich es auch ein langer Weg bis dahin war.

Nun habe ich jedoch noch eine Bitte an Dich. Du erinnerst dich sicherlich noch an dein Programm zu der Messwert Abfrage. Leider komm ich bei einem Problem absolut nicht weiter.

Wenn man den Abbrechnen Button drückt soll das Makro verlassen werden. Nun ist es jedoch so, dass wenn man den Abbrechen Button drückt immer wieder die Aufforderung zur Eingabe kommt.

Kannst du mir hierbei bitte weiter helfen

Gruß pete


Sub Eingeben(text, wert)
Static t
t = text
Do
wert = InputBox(t, Messwerte, wert)
t = text + vbCrLf + "Geben Sie einen vernünftigen Wert ein!"
Loop While wert = ""

End Sub

Sub messungen()

Eingeben "Geben Sie den MinGrenzwert ein!", ming
ming = CDbl(Replace(ming, ".", ","))
Eingeben "Geben Sie den MaxGrenzwert ein!", maxg
maxg = CDbl(Replace(maxg, ".", ","))
Do
Eingeben "Geben Sie ein Datum Zeitraum von bis ein! (Format: tt.mm.jjjj - tt.mm.jjjj)", Datum
Loop Until InStr(Datum, "-")
Do
Eingeben "Geben Sie Uhrzeit Zeitraum von bis an! (Format: hh:mm - hh:mm)", uhr
Loop Until InStr(uhr, "-")
Eingeben "Bitte geben Sie die Spalte an, in der Messwerte überprüft werden sollen.", sp
dvon = CDate(Trim(Left(Datum, InStr(Datum, "-") - 1)))
dbis = CDate(Trim(Mid(Datum, InStr(Datum, "-") + 1)))
uvon = CDate(Trim(Left(uhr, InStr(uhr, "-") - 1)))
ubis = CDate(Trim(Mid(uhr, InStr(uhr, "-") + 1)))

Cells.Interior.ColorIndex = xlNone
sp = Columns(sp).Column

For i = 1 To Cells(Rows.Count, sp).End(xlUp).Row
a = Cells(i, 1)
b = Cells(i, 2)

If a >= dvon And a = uvon And b = ming And Cells(i, sp) <= maxg Then
Cells(i, sp).Interior.Color = vbGreen
Else
Cells(i, sp).Interior.Color = vbRed

End If
Next i
End Sub



Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
09.04.2009 09:05:41 Pete
NotSolved
09.04.2009 10:22:54 Holger
NotSolved
Rot Aw:Aw:Do...While until Schleife Abbrechen (Holger)
09.04.2009 12:25:04 Pete
NotSolved