semper
Goto Top

Excel Inputbox Zahl 0 eingeben

Hey Leute,

Ich habe das Problem und hoffe das mir jemand weiterhelfen kann.

Ich schreibe Zahlen in eine Inputbox und diese werden in Spalte A nach unten fortlaufend eingetragen . Nur die Zahl 0 nimmt er nicht. Gebe Ich die Zahl Null ein und bestätige mit Enter oder OK schließt sich das Inputfenster und die Zelle bleibt leer.

Hier der Code:

Sub InputWerte()
   Dim var As Variant
   Dim iRow As Integer
   If IsEmpty(Cells(1, 1)) Then
      iRow = 1
   Else
      iRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
   End If
   var = 1
   Do Until var = False
      var = Application.InputBox( _
         prompt:="Wert:", _  
         Default:=var, _
         Type:=1)
      If var = False Then Exit Sub
      Cells(iRow, 1).Value = var
      iRow = iRow + 1
   Loop
End Sub

Kann mir da jemand helfen das auch die 0 wie eine Zahl behandelt wird und wie alle anderen fortlaufend eingetragen wird?

Danke

Content-ID: 586560

Url: https://administrator.de/forum/excel-inputbox-zahl-0-eingeben-586560.html

Ausgedruckt am: 24.12.2024 um 16:12 Uhr

Meierjo
Lösung Meierjo 11.07.2020 um 15:17:15 Uhr
Goto Top
Hallo

Kurzum:
Wenn var=0 ist, wird var als False interpretiert, und der Code wird beendet.
Kannst du sehen, wenn du den Code in der Entwicklungs-Umgebung mit F8 Schritt für Schritt abarbeitest

Dein Code läuft das erste Mal durch, da du vor dem Eintritt in die Schleife var=1 festlegst.
Wenn dann in der Inputbox der Wert 0 eingegeben wird, wird in Zeile 15 der Code beendet, da var = false.

Du kannst das Verlassen der Schleife unterbinden, indem du zb den Code in Zeile 10 und Zeile 15 änderst
var=0
.
Dann macht aber der Code aus meiner Sicht keinen Sinn mehr.

Was willst du denn überhaupt erreichen, was ist das Ziel??

Gruss
semper
semper 12.07.2020 um 05:39:58 Uhr
Goto Top
Ein User von einem Anderen Forum hat den Code umgeschrieben:

Sub InputWerte()
Dim var As Variant
Dim iRow As Integer
If IsEmpty(Cells(1, 1)) Then
iRow = 1
Else
iRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
var = 1
Do Until VarType(var) = vbBoolean And var = False
var = Application.InputBox( _
prompt:="Wert:", _
Default:=var, _
Type:=1)
If VarType(var) = vbBoolean And var = False Then Exit Sub
Cells(iRow, 1).Value = var
iRow = iRow + 1
Loop
End Sub

So funktioniert es