Thema Datum  Von Nutzer Rating
Antwort
09.04.2015 15:39:36 Uwe
Solved
Blau Inputbox erscheint zweimal
11.04.2015 00:03:53 Gast43597
NotSolved
13.04.2015 16:49:14 Uwe
NotSolved

Ansicht des Beitrags:
Von:
Gast43597
Datum:
11.04.2015 00:03:53
Views:
718
Rating: Antwort:
  Ja
Thema:
Inputbox erscheint zweimal

Du gibst nicht genau an was du letztendlich für ein Verhalten wünscht.

Daher kann ich unten im Quellcode nur erahnen ob es sich so verhält wie gewollt.

 

Allgemein gilt:

  • Sprungmarken vermeiden! Dafür gibt es ja schließlich If-Then.

 

Mein Vorschlag:

Option Explicit

Sub Bsp()
  
  Dim retVal As Variant
  Dim msgResult As VbMsgBoxResult
  
  Do
    msgResult = MsgBox("Stimmt diese Zahl?" & vbNewLine & _
                      Worksheets("T1").Range("B3").Value, _
                    Buttons:=vbYesNo, _
                    Title:="Frage")
    
    If msgResult = vbYes Then
      
      Range("B4").Value = Range("B3").Value
      
      retVal = Application.InputBox( _
                      "Geben Sie noch eine Zahl ein" & vbNewLine & _
                      "", _
                    Title:="", _
                    Type:=1)
      
      If VarType(retVal) <> vbBoolean Then
        Range("B5").Value = retVal
      End If
      
    Else 'result = vbNo
      
      retVal = Application.InputBox( _
                      "Bitte geben Sie die richtige Zahl ein" & vbNewLine & _
                      "", _
                    Title:="Zahl Abfrage", _
                    Type:=1)
      
      If VarType(retVal) <> vbBoolean Then
        Worksheets("T1").Range("B3").Value = retVal
      End If
      
      Worksheets("T2").Range("B3").Value = retVal
    End If
    
  Loop Until (msgResult = vbYes) Or (VarType(retVal) = vbBoolean)
  
  Call MsgBox("Fertig.", vbInformation)
  
End Sub

 

InputBox oder Application.InputBox (zweite gibt es nur in Excel) liefern einem ggf. False (Datentyp: Boolean) und das willst du ja abfangen. Also kannst du nicht einfach eine Variable mit Datenentyp Integer angeben (da wird False zu 0 gecastet), zumal der Nutzer ja auch was eingeben könnte was keine Zahl ist und dann gibt es einen Laufzeitfehler (die Prüfung auf eine Zahl kommt übrigens hier durch die Angabe Type:=1 bei Application.InputBox).

 

Gruß


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.2015 15:39:36 Uwe
Solved
Blau Inputbox erscheint zweimal
11.04.2015 00:03:53 Gast43597
NotSolved
13.04.2015 16:49:14 Uwe
NotSolved