Discussion:
Application.InputBox und xlCalculationManual
(zu alt für eine Antwort)
Anh Tuan Hoang
2004-05-26 19:55:34 UTC
Permalink
Hallo,

ich hätte mal 2 Fragen:

1) Wenn ich Application.InputBox verwende und "Abbrechen" drücke, möchte ich
es auch als einen Abbruch verstehen. Allerdings möchte ich die eingabe von 0
auch verwerten. Nun wird aber bei "Abbrechen" der Wert "False"
zurückgegeben, der aber gleichzeitig 0 beträgt. Wie kann ich das Drücken des
Abbrechen-Buttons und die Eingabe von Null unterscheiden?

2) Wenn ich in einem Tabellenblatt mit
"Application.Calculation=xlCalculationManual" die Berechnungsautomatik
ausschalte, werden die Graphen in einem Diagramm nicht mehr automatisch
aktualisiert, auch nicht mit dem Befehl "Calculate". D.h. wenn ich die
Zahlenwerte einer Reihe ändere, passiert im Diagramm gar nichts. Wie kann
ich das umgehen?

Danke im voraus und Gruß
Tuan
Frank Kabel
2004-05-26 20:17:04 UTC
Permalink
Hi
wahrscheinlich gibt es da noch eine bessere Möglichkeit aber z.B.:
folgendes sollte funktionieren:
dim ret
ret=application.inputbox("Enter a value")
if ret=false and len(ret)>1 then
msgbox "Abbrechen gedrückt"
end if

--
Regards
Frank Kabel
Frankfurt, Germany
Post by Anh Tuan Hoang
Hallo,
1) Wenn ich Application.InputBox verwende und "Abbrechen" drücke, möchte ich
es auch als einen Abbruch verstehen. Allerdings möchte ich die eingabe von 0
auch verwerten. Nun wird aber bei "Abbrechen" der Wert "False"
zurückgegeben, der aber gleichzeitig 0 beträgt. Wie kann ich das Drücken des
Abbrechen-Buttons und die Eingabe von Null unterscheiden?
2) Wenn ich in einem Tabellenblatt mit
"Application.Calculation=xlCalculationManual" die
Berechnungsautomatik
Post by Anh Tuan Hoang
ausschalte, werden die Graphen in einem Diagramm nicht mehr
automatisch
Post by Anh Tuan Hoang
aktualisiert, auch nicht mit dem Befehl "Calculate". D.h. wenn ich die
Zahlenwerte einer Reihe ändere, passiert im Diagramm gar nichts. Wie kann
ich das umgehen?
Danke im voraus und Gruß
Tuan
Herbert Taferner
2004-05-26 20:28:33 UTC
Permalink
Hallo Frank,

oder

ret = InputBox("Eingabe")
If Not IsNumeric(ret) Then Exit Sub

mfg Herbert
Frank Kabel
2004-05-26 20:39:20 UTC
Permalink
Hi Herbert
folgende Zeile im Direktfenster des VBA Editors
?isnumeric(application.InputBox("enter"))

ergbit auch bei Abbruch ebenfalls 'Wahr'

--
Regards
Frank Kabel
Frankfurt, Germany
Post by Herbert Taferner
Hallo Frank,
oder
ret = InputBox("Eingabe")
If Not IsNumeric(ret) Then Exit Sub
mfg Herbert
Melanie Breden
2004-05-27 06:17:04 UTC
Permalink
Hallo Tuan,
Post by Anh Tuan Hoang
1) Wenn ich Application.InputBox verwende und "Abbrechen" drücke, möchte ich
es auch als einen Abbruch verstehen. Allerdings möchte ich die eingabe von 0
auch verwerten. Nun wird aber bei "Abbrechen" der Wert "False"
zurückgegeben, der aber gleichzeitig 0 beträgt. Wie kann ich das Drücken des
Abbrechen-Buttons und die Eingabe von Null unterscheiden?
wenn du den InputBox-Wert an eine Variant Variable übergibst, kannst du
wie folgt abfragen:

Dim varInput As Variant
varInput = Application.InputBox("Zahl eingeben", , "1", Type:=1)
If varInput = "Falsch" Then Exit Sub
Post by Anh Tuan Hoang
2) Wenn ich in einem Tabellenblatt mit
"Application.Calculation=xlCalculationManual" die Berechnungsautomatik
ausschalte, werden die Graphen in einem Diagramm nicht mehr automatisch
aktualisiert, auch nicht mit dem Befehl "Calculate". D.h. wenn ich die
Zahlenwerte einer Reihe ändere, passiert im Diagramm gar nichts. Wie kann
ich das umgehen?
Überwache den Datenbereich mit dem Change-Ereignis und berechne dann das
Tabellenblatt:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D1:D20")) Is Nothing Then Exit Sub
Me.Calculate
End Sub
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Anh Tuan Hoang
2004-05-27 15:53:32 UTC
Permalink
Post by Melanie Breden
Hallo Tuan,
Post by Anh Tuan Hoang
2) Wenn ich in einem Tabellenblatt mit
"Application.Calculation=xlCalculationManual" die Berechnungsautomatik
ausschalte, werden die Graphen in einem Diagramm nicht mehr automatisch
aktualisiert, auch nicht mit dem Befehl "Calculate". D.h. wenn ich die
Zahlenwerte einer Reihe ändere, passiert im Diagramm gar nichts. Wie kann
ich das umgehen?
Überwache den Datenbereich mit dem Change-Ereignis und berechne dann das
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D1:D20")) Is Nothing Then Exit Sub
Me.Calculate
End Sub
Ich schrieb ja, selbst wenn ich Calculate aufrufe, passiert im Diagramm gar
nicht. Komsicherweise ist dies auch nicht immer der Fall. Das heißt,
manchmal wird aktualisiert, manchmal nicht.

Gruß
Tuan
Anh Tuan Hoang
2004-05-27 15:55:00 UTC
Permalink
Post by Melanie Breden
Hallo Tuan,
Post by Anh Tuan Hoang
1) Wenn ich Application.InputBox verwende und "Abbrechen" drücke, möchte ich
es auch als einen Abbruch verstehen. Allerdings möchte ich die eingabe von 0
auch verwerten. Nun wird aber bei "Abbrechen" der Wert "False"
zurückgegeben, der aber gleichzeitig 0 beträgt. Wie kann ich das Drücken des
Abbrechen-Buttons und die Eingabe von Null unterscheiden?
wenn du den InputBox-Wert an eine Variant Variable übergibst, kannst du
Dim varInput As Variant
varInput = Application.InputBox("Zahl eingeben", , "1", Type:=1)
If varInput = "Falsch" Then Exit Sub
Das ist natürlich sehr elegant! Danke, auch an Frank und Herbert.
Loading...