Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
InputBox Abbruch ohne Datenverlust
21.12.2005 15:08:36
Reno
Hallo Leute,
wisst ihr vielleicht ob es bei der InputBox die Moeglichkeit gibt, den Prozess abzubrechen ohne das die Zielzelle bereinigt wird, sondern so gelassen wird wie sie vor dem Procedure-Start gefuellt war?
ich hoffe das ist einigermassen verstaendlich.
habe naemlich eine ziemlich lange prozedure:

Private Sub CommandButton1_Click()
MsgBox ("Please enter all requested data. If you don't know what is the right figure should be or if you are not sure leave the default figure as is, so the tool is not disabled.")
[d4] = InputBox("Number of hours per day of operation?", "Please enter all requested data...", 24, 5000, 5000)
[d5] = InputBox("Number of days per year?", "Please enter all requested data...", 365, 5000, 5000)
[d6] = InputBox("Flow Rate through hardware in m3/hr?", "Please enter all requested data...", 150, 5000, 5000)
[d11] = InputBox("Number of Filters in vessel?", "Please enter all requested data...", 200, 5000, 5000)
[d19] = InputBox("Number of hours for change out?", "Please enter all requested data...", 4, 5000, 5000)
[d20] = InputBox("Number of operators?", "Please enter all requested data...", 1, 5000, 5000)
[d21] = InputBox("Cost of change out per operator / hour (in £)?", "Please enter all requested data...", 35, 5000, 5000)
[d23] = InputBox("Are you charged for disposal by volume in m³ or by weight in kg? Put in a V for volume or a W for Weight, please.", "Please enter all requested data...", "V", 5000, 5000)
[d24] = InputBox("Filter diameter (inches)?", "Please enter all requested data...", 2.5, 5000, 5000)
[d25] = InputBox("Filter length (inches)?", "Please enter all requested data...", 40, 5000, 5000)
[d30] = InputBox("Cost of disposal / (m³) in £?", "Please enter all requested data...", 3000, 5000, 5000)
[d31] = InputBox("Cost Of Disposal / Kg in £?", "Please enter all requested data...", 12, 5000, 5000)
MsgBox ("       Thank you!")
End Sub

Ich meine wenn man nur einen wert aendern moechte, kann man sich zu diesem durchklicken und dann die Procedure beenden?
In dem oben aufgefuehrten Fall ist dies leider nicht moeglich, oder meint ihr das eine UserForm fuer dieses Beispiel besser waere?
Vielen Dank im Voraus.
Reno

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InputBox Abbruch ohne Datenverlust
21.12.2005 16:02:07
Uwe
Hi,
wie wär's mit:
If Variable = "" Then Exit Sub
nach dem Inputbox-Aufruf.
(Wenn man in der Inputbox auf Abbrechen klickt wird ein leerer String zurückgegeben.)
Gruß
Uwe
(:o)
AW: InputBox Abbruch ohne Datenverlust
21.12.2005 16:38:19
Reno
Hi Uwe,
vielen dank fuer deine schnelle antwort, aber das ist genau das was ich nicht moechte (eine leere Zelle) in der Ziel zelle befindet sich bereits ein wert, welcher bei einem abbruch nicht geloescht werden soll...
sorry
AW: InputBox Abbruch ohne Datenverlust
21.12.2005 18:53:59
Heino
Hallo Reno
Diese Lösung ist nicht schön, dafür aber selten.

Sub test()
Dim VorherD4 As String
Dim VorherD5 As String
Dim VorherD6 As String
Dim VorherD11 As String
Dim VorherD19 As String
Dim VorherD20 As String
Dim VorherD21 As String
Dim VorherD23 As String
Dim VorherD24 As String
Dim VorherD25 As String
Dim VorherD30 As String
Dim VorherD31 As String
VorherD4 = [d4]
VorherD5 = [d5]
VorherD6 = [d6]
VorherD11 = [d11]
VorherD19 = [d19]
VorherD20 = [d20]
VorherD21 = [d21]
VorherD23 = [d23]
VorherD24 = [d24]
VorherD25 = [d25]
VorherD30 = [d30]
VorherD31 = [d31]
MsgBox ("Please enter all requested data. If you don't know what is the right figure should be or if you are not sure leave the default figure as is, so the tool is not disabled.")
[d4] = InputBox("Number of hours per day of operation?", "Please enter all requested data...", 24, 5000, 5000)
If [d4] = "" Then [d4] = VorherD4
[d5] = InputBox("Number of days per year?", "Please enter all requested data...", 365, 5000, 5000)
If [d5] = "" Then [d5] = VorherD5
[d6] = InputBox("Flow Rate through hardware in m3/hr?", "Please enter all requested data...", 150, 5000, 5000)
If [d6] = "" Then [d6] = VorherD6
[d11] = InputBox("Number of Filters in vessel?", "Please enter all requested data...", 200, 5000, 5000)
If [d11] = "" Then [d11] = VorherD11
[d19] = InputBox("Number of hours for change out?", "Please enter all requested data...", 4, 5000, 5000)
If [d19] = "" Then [d19] = VorherD19
[d20] = InputBox("Number of operators?", "Please enter all requested data...", 1, 5000, 5000)
If [d20] = "" Then [d20] = VorherD20
[d21] = InputBox("Cost of change out per operator / hour (in £)?", "Please enter all requested data...", 35, 5000, 5000)
If [d21] = "" Then [d21] = VorherD21
[d23] = InputBox("Are you charged for disposal by volume in m³ or by weight in kg? Put in a V for volume or a W for Weight, please.", "Please enter all requested data...", "V", 5000, 5000)
If [d23] = "" Then [d23] = VorherD23
[d24] = InputBox("Filter diameter (inches)?", "Please enter all requested data...", 2.5, 5000, 5000)
If [d24] = "" Then [d24] = VorherD24
[d25] = InputBox("Filter length (inches)?", "Please enter all requested data...", 40, 5000, 5000)
If [d25] = "" Then [d25] = VorherD25
[d30] = InputBox("Cost of disposal / (m³) in £?", "Please enter all requested data...", 3000, 5000, 5000)
If [d30] = "" Then [d30] = VorherD30
[d31] = InputBox("Cost Of Disposal / Kg in £?", "Please enter all requested data...", 12, 5000, 5000)
If [d31] = "" Then [d31] = VorherD31
MsgBox ("       Thank you!")
End Sub

Anzeige
AW: InputBox Abbruch ohne Datenverlust
21.12.2005 19:43:05
Uwe
Hi Reno,
ich denke Du hast mich falsch verstanden. Probiers mal aus:
Wenn die Inputbox durch Klick auf "Abbrechen" beendet wird, bleibt der ursprüngliche Wert der Zelle erhalten (Der Wert für die EINGABE ist dann "". Und genau in dem falls wird ja Exit Sub ausgeführt!)
Klappt's vielleicht doch?
Gruß
Uwe
(:o)
AW: InputBox Abbruch ohne Datenverlust
22.12.2005 11:59:32
Reno
Hallo Heino , hallo Uwe,
vielen Dank nochmal fuer eure Hilfe.
UWE:
Ich muss dir wirklich sagen das es mit deiner Variante nicht so funktioniert wie ich es mir vorstellte. Ich habe es nochmals versucht, doch beim bestaetigen des Abbrechen bzw. Cancel Buttons wird der bisherige Wert (default) aus dem Bezugsfeld geloescht. Da ich dieses Tool fuer Kollegen bastle, welche nicht so ganz fit mit dem Rechner, ganz zu schweigen von Excel sind, wollte ich es so benutzerfreundlich wie nur moeglich machen.
Es koennte aber auch an mir liegen, aber eigentlich war es nicht so schwer deine Variante auszuprobieren. Sorry. Ich finde die Variante vom Heino gelungener da beim Bestaetigen des Cancel-Buttons der urspruengliche Wert ohne Probleme erhalten bleibt. mmh. Letztlich hat sich damit aber nur ein problem meinerseits geloest, naemlich das der urspruengliche Wert erhalten bleibt. Meine zweite Frage bezueglich des vorzeitigen Abbruchs der Prozedur konnte mit Heinos Variante leider nicht geloest werden.
Ich denke das Du, UWE, mit dem Exit Sub dem zweiten Problem schon ziemlich nahe warst.
Gibt es denn vielleicht eine Loesung beide Varianten miteinander zu verknuepfen, so das bei einem Abbruch der urspruengliche Wert erhalten bleibt und gleichzeitig das Procedere nicht vorgesetzt wird?
Meine derzeitig funktionierende Variante ist:

Private Sub CommandButton1_Click()
Dim VorherD4 As String
Dim VorherD5 As String
Dim VorherD6 As String
Dim VorherD11 As String
Dim VorherD19 As String
Dim VorherD20 As String
Dim VorherD21 As String
Dim VorherD23 As String
Dim VorherD24 As String
Dim VorherD25 As String
Dim VorherD30 As String
Dim VorherD31 As String
VorherD4 = [d4]
VorherD5 = [d5]
VorherD6 = [d6]
VorherD11 = [d11]
VorherD19 = [d19]
VorherD20 = [d20]
VorherD21 = [d21]
VorherD23 = [d23]
VorherD24 = [d24]
VorherD25 = [d25]
VorherD30 = [d30]
VorherD31 = [d31]
MsgBox ("Please enter all requested data. If you don't know what is the right figure should be or if you are not sure leave the default figure as is, so the tool is not disabled.")
[d4] = InputBox("Number of hours per day of operation?", "Please enter all requested data...", 24, 5000, 5000)
If [d4] = "" Then [d4] = VorherD4
[d5] = InputBox("Number of days per year?", "Please enter all requested data...", 365, 5000, 5000)
If [d5] = "" Then [d5] = VorherD5
[d6] = InputBox("Flow Rate through hardware in m3/hr?", "Please enter all requested data...", 150, 5000, 5000)
If [d6] = "" Then [d6] = VorherD6
[d11] = InputBox("Number of Filters in vessel?", "Please enter all requested data...", 200, 5000, 5000)
If [d11] = "" Then [d11] = VorherD11
[d19] = InputBox("Number of hours for change out?", "Please enter all requested data...", 4, 5000, 5000)
If [d19] = "" Then [d19] = VorherD19
[d20] = InputBox("Number of operators?", "Please enter all requested data...", 1, 5000, 5000)
If [d20] = "" Then [d20] = VorherD20
[d21] = InputBox("Cost of change out per operator / hour (in £)?", "Please enter all requested data...", 35, 5000, 5000)
If [d21] = "" Then [d21] = VorherD21
[d23] = InputBox("Are you charged for disposal by volume in m³ or by weight in kg? Put in a V for volume or a W for Weight, please.", "Please enter all requested data...", "V", 5000, 5000)
If [d23] = "" Then [d23] = VorherD23
[d24] = InputBox("Filter diameter (inches)?", "Please enter all requested data...", 2.5, 5000, 5000)
If [d24] = "" Then [d24] = VorherD24
[d25] = InputBox("Filter length (inches)?", "Please enter all requested data...", 40, 5000, 5000)
If [d25] = "" Then [d25] = VorherD25
[d30] = InputBox("Cost of disposal / (m³) in £?", "Please enter all requested data...", 3000, 5000, 5000)
If [d30] = "" Then [d30] = VorherD30
[d31] = InputBox("Cost Of Disposal / Kg in £?", "Please enter all requested data...", 12, 5000, 5000)
If [d31] = "" Then [d31] = VorherD31
MsgBox ("       Thank you!")
End Sub

Nochmals vielen Dank fuer eure bisherige Hilfe.
weihnachtliche Gruesse,
Reno
Anzeige
AW: InputBox Abbruch ohne Datenverlust
22.12.2005 18:04:14
Heino
Vielleicht so ?

Private Sub CommandButton1_Click()
Dim VorherD4 As String
Dim VorherD5 As String
Dim VorherD6 As String
Dim VorherD11 As String
Dim VorherD19 As String
Dim VorherD20 As String
Dim VorherD21 As String
Dim VorherD23 As String
Dim VorherD24 As String
Dim VorherD25 As String
Dim VorherD30 As String
Dim VorherD31 As String
VorherD4 = [d4]
VorherD5 = [d5]
VorherD6 = [d6]
VorherD11 = [d11]
VorherD19 = [d19]
VorherD20 = [d20]
VorherD21 = [d21]
VorherD23 = [d23]
VorherD24 = [d24]
VorherD25 = [d25]
VorherD30 = [d30]
VorherD31 = [d31]
MsgBox ("Please enter all requested data. If you don't know what is the right figure should be or if you are not sure leave the default figure as is, so the tool is not disabled.")
[d4] = InputBox("Number of hours per day of operation?", "Please enter all requested data...", 24, 5000, 5000)
If [d4] = "" Then [d4] = VorherD4: GoTo Fehler
[d5] = InputBox("Number of days per year?", "Please enter all requested data...", 365, 5000, 5000)
If [d5] = "" Then [d5] = VorherD5:  GoTo Fehler
[d6] = InputBox("Flow Rate through hardware in m3/hr?", "Please enter all requested data...", 150, 5000, 5000)
If [d6] = "" Then [d6] = VorherD6: GoTo Fehler
[d11] = InputBox("Number of Filters in vessel?", "Please enter all requested data...", 200, 5000, 5000)
If [d11] = "" Then [d11] = VorherD11:  GoTo Fehler
[d19] = InputBox("Number of hours for change out?", "Please enter all requested data...", 4, 5000, 5000)
If [d19] = "" Then [d19] = VorherD19:  GoTo Fehler
[d20] = InputBox("Number of operators?", "Please enter all requested data...", 1, 5000, 5000)
If [d20] = "" Then [d20] = VorherD20:  GoTo Fehler
[d21] = InputBox("Cost of change out per operator / hour (in £)?", "Please enter all requested data...", 35, 5000, 5000)
If [d21] = "" Then [d21] = VorherD21:  GoTo Fehler
[d23] = InputBox("Are you charged for disposal by volume in m³ or by weight in kg? Put in a V for volume or a W for Weight, please.", "Please enter all requested data...", "V", 5000, 5000)
If [d23] = "" Then [d23] = VorherD23:  GoTo Fehler
[d24] = InputBox("Filter diameter (inches)?", "Please enter all requested data...", 2.5, 5000, 5000)
If [d24] = "" Then [d24] = VorherD24:  GoTo Fehler
[d25] = InputBox("Filter length (inches)?", "Please enter all requested data...", 40, 5000, 5000)
If [d25] = "" Then [d25] = VorherD25:  GoTo Fehler
[d30] = InputBox("Cost of disposal / (m³) in £?", "Please enter all requested data...", 3000, 5000, 5000)
If [d30] = "" Then [d30] = VorherD30:  GoTo Fehler
[d31] = InputBox("Cost Of Disposal / Kg in £?", "Please enter all requested data...", 12, 5000, 5000)
If [d31] = "" Then [d31] = VorherD31:  GoTo Fehler
MsgBox ("       Thank you!")
GoTo ende
Fehler:
MsgBox (" Die Bearbeitung wurde abgebrochen ")
ende:
End Sub

Anzeige

62 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige