You are currently viewing Einfache Auswertung von Eingaben

Einfache Auswertung von Eingaben

Es gibt immer mehrere Möglichkeiten, Eingaben in Zellen auszuwerten. Es geht auch immer komplizierter und auch einfacher. Hier geht es jedoch darum, möglichst einfach darzustellen, wie man an die Auswertung von Zellinhalten herangehen kann.

Das Ziel dieses Scripts

Eine einfache Auswertung der Eingabe in die Zelle „C4“ eines Excel-Tabellenblattes, in Verbindung mit einem kombinierten String für die Ausgabe in einer MsgBox sowie die Nutzung einer einfachen Select-Case-Anweisung.

Da die Eingabe von Werten (oder auch das Löschen von Werten) in eine Excel-Tabelle eine Änderung der Tabelle darstellt (Change-Ereignis), muss das Script aus der Prozedur „Worksheet_Change“ heraus aufgerufen werden. Das Script kann man dort direkt eingeben, oder von dort aus eine Funktion aufrufen, die dann das Script verarbeitet, wenn es sich bspw. in einem Modul befindet.

Private Sub Worksheet_Change(ByVal Target As Range)

    'Als Erstes prüfen, ob die letzte Änderung in Zelle C4 stattgefunden hat
    'If Not... Is Nothing = eine doppelte Verneinung = "ja"
    If Not Intersect(Target, Range("C4")) Is Nothing Then
    
        'erst dann: Variablen definieren
        Dim Typ As Byte, Eingabe As Variant, Ausgabe As String
        'Variablen vorbelegen
        Typ = 4
        Eingabe = Range("C4").Value
        
        'Eingabe auf Inhalt prüfen und der Eingabe einen Typ zuweisen
        If IsNumeric(Eingabe) = True Then Typ = 1
        If IsDate(Eingabe) = True Then Typ = 2
        If Eingabe = "" Then Typ = 3
        
        'Über eine Select-Case-Anweisung den Typ (zugewiesene Ziffer) auswerten
        Select Case Typ
            Case 1
                Ausgabe = "numerisch" & IIf(Eingabe > 100, " und größer 100", "")
            Case 2
                Ausgabe = "ein Datum: " & Format(Eingabe, "dddd, dd.mm.yyyy")
            Case 3
                Ausgabe = "leer"
            'Ist der Typ <> 1, 2 oder 3 wird hierher verzweigt:
            Case Else
                Ausgabe = Eingabe & " - weder numerisch noch ein Datum"
        End Select
        
        'Die Auswertung anzeigen, die MsgBox wird "zusammengesetzt"
        MsgBox "Ihre Eingabe war """ & Ausgabe & """.", vbInformation, "Auswertung"
        
        'Das Format der Zelle C4 für neue Eingaben wieder auf "Standard" setzen
        Range("C4").NumberFormat = "General"
        
    End If
    
End Sub

Ich freue mich über Meinungen, Ideen oder Kritik… schreiben Sie mir eine E-Mail »