Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Familienstand abfragen

Betrifft: Familienstand abfragen von: Hans Egonschmidt
Geschrieben am: 17.11.2014 16:55:55

Hallo,

ich habe die Aufgabe das ich per MsgBox am Ende ausgeben soll ob die Eingabe richtig oder falsch ist. In meiner Aufgabe dreht es sich darum das ich den Familienstand per Inputbox eingeben soll (getrennt, ledig oder geschieden als Beispiel) und ausgeben soll ob es diesen Familienstand gibt und dies mit einer positiven Rückmeldung ausgeben soll oder eine negative bei falscher Eingabe. Falls es sich um Zahlen handelt sollen diese eine Fehlermeldung ausgeben.

Ich habe schon soweit angefangen aber bekomme am Ende immer "Typenunverträglichkeit" zu lesen.

Option Explicit
Sub Familienstand()
Dim dFamilienstand As String
Dim vFamilienstand As Variant

vFamilienstand = InputBox("Geben Sie einen Familienstand ein!")
    If IsNumeric(vFamilienstand) = True Then
    MsgBox ("Zahlen sind nicht erlaubt!")
    Exit Sub
    
    Else: dFamilienstand = vFamilienstand
    End If
    
    If dFamilienstand = "ledig" Or "getrennt" Or "geschieden" Then
    
    MsgBox ("Richtige Eingabe!")
    
    Else
    MsgBox ("Falsche Eingabe!")
    
    End If


End Sub
Wäre sehr dankbar für Vorschläge/Tipps.

  

Betrifft: doppelt ...owT von: Matthias L
Geschrieben am: 17.11.2014 16:59:18




  

Betrifft: AW: Familienstand abfragen von: Michael
Geschrieben am: 17.11.2014 17:00:20

Hallo Hans!

Hier ein Vorschlag, wie Du das umsetzen kannst - alle "richtigen Eingaben" müsstest Du dann analog noch einbauen, und ich würde diese auch in der ersten User-Abfrage (Inputbox) auflisten, damit der User weiß, was er eingibt...

Sub Familienstand()

    Dim Eingabe As String
    Dim Warnung As String
    
    Eingabe = InputBox("Familienstand angeben:", "Familienstand")
    
    Select Case Eingabe
    
        Case Is = "geschieden"
            Warnung = MsgBox("Richtige Eingabe!", vbInformation, "Eingabe OK")
        Case Is = "ledig"
            Warnung = MsgBox("Richtige Eingabe!", vbInformation, "Eingabe OK")
        Case Is = "verheiratet"
            Warnung = MsgBox("Richtige Eingabe!", vbInformation, "Eingabe OK")
        Case Else
            Warnung = MsgBox("Falsche Eingabe!", vbInformation, "Eingabe Falsch")
    End Select
    

End Sub
Hoffe das hilft Dir weiter!
Michael


  

Betrifft: Case Is = "geschieden", "ledig", "verheiratet" ... von: Matthias L
Geschrieben am: 17.11.2014 17:20:34

Hallo

Geht übrigens auch so

Option Explicit
Sub Familienstand()
Dim Eingabe As String
Eingabe = InputBox("Familienstand angeben:", "Familienstand")
If StrPtr(Eingabe) = 0 Then Exit Sub
Select Case Eingabe
Case Is = "geschieden", "ledig", "verheiratet"
 MsgBox "erlaubte Eingabe!", vbInformation, Eingabe
Case Else
 MsgBox "ungültige Eingabe!", vbCritical
End Select
End Sub
Gruß Matthias


  

Betrifft: AW: Case Is = "geschieden", "ledig", "verheiratet" ... von: Michael
Geschrieben am: 17.11.2014 17:50:51

Hallo Matthias!

Stimmt, Deine Select...Case ist eine schön schlanke Version. Vergesse ich gerne, dass ich einem Case mehrere Ausprägungen in einem Aufwaschen anhängen kann.

Hier lernt man sogar als Antwortender :-).

Schönen Abend allen!
Michael


 

Beiträge aus den Excel-Beispielen zum Thema "Familienstand abfragen"