|  
                                             
	Hallo Forum 
	Ich bin VBA-Anfänger und habe mir ein Makro mit Hilfe des Forums und anderen Hilfen gebastelt. Das Makro funktioniert eigentlich soweit ganz gut bis auf einen Punkt. Und zwar bekomme ich einfach nicht hin, dass in der InputBox ein fehlerhaftes Datum (z.B. 32.12.2016 oder 29.2.2017 oder einfach nur eine Zahl "5" als fehlerhaft zurückgewiesen wird. 
	Das Makro sieht wie folgt aus: 
	Option Explicit 
	  
	Private Sub Workbook_BeforeClose(Cancel As Boolean) 
	  
	'Das Makro soll Tage in einem bestimmten Bereich zusammenzählen und dann ein (und in der Folge weitere) Pop-Up-Fenster öffnen 
	  
	Dim Bereich As range 
	Dim Box As String 
	Box = "MsgBox" 
	  
	'Dieser Bereich soll zusammengezählt werden 
	Set Bereich = Tabelle1.range("d15:d40") 
	  
	'Summe soll in Zelle D41 geschrieben werden 
	Tabelle1.range("d41").Value = Application.WorksheetFunction.Sum(Bereich) 
	  
	'Zelle G2 ungleich geprüft 
	If range("g2").Value <> "geprüft" Then 
	    'Bereich grösser als 90 (Tage) 
	    If range("d41") >= 90 Then 
	        MsgBox "Heizung prüfen! (>= 90 Tage)", vbOKOnly + vbExclamation 
	        Box = MsgBox("Wurde die Heizung geprüft?", vbYesNoCancel + vbQuestion") 
	            If Box = vbYes Then 
	                ThisWorkbook.Sheets("Tabelle1").range("g2").Value = "geprüft" 
	                ThisWorkbook.Sheets("Tabelle1").range("h2").Value = VBA.Environ("UserName") 
	                ThisWorkbook.Sheets("Tabelle1").range("i2").Value = Format(Now, "DD.MM.YYYY_HH:MM:SS") 
	                range("g2:i2").Interior.ColorIndex = 4 
	                ThisWorkbook.Sheets("Tabelle1").range("g10").Value = InputBox("Welche Firma?") 
	                ThisWorkbook.Sheets("Tabelle1").range("g13").Value = InputBox("Wann geprüft? Bitte Datum eingeben!", , Format(Now, "DD.MM.YYYY")) 
	                    If IsDate(range("g13").Text) Then 
	                    range("g13").Value = Format(range("g13").Text, "DD.MM.YYYY") 
	                    Else 
	                    range("g13").Value = "Bitte korrektes Datum eingeben" 'Schreibt Text in Zelle G13 wenn Eingabe leer 
	                    End If 
	            ElseIf Box = vbNo Then 
	                ThisWorkbook.Sheets("Tabelle1").range("g2").Value = "NICHT geprüft!!!" 
	                ThisWorkbook.Sheets("Tabelle1").range("h2").Value = VBA.Environ("UserName") 
	                ThisWorkbook.Sheets("Tabelle1").range("i2").Value = Format(Now, "DD.MM.YYYY_HH:MM:SS") 
	                range("g2:i2").Font.Bold = True 
	                range("g2:i2").Interior.ColorIndex = 3 
	            Else 
	                MsgBox "Warum brichst Du ab?" 
	        End If 
	    End If 
	End If 
	  
	End Sub 
	  
	Wie geschrieben, bin ich VBA-Anfänger von dem her könnte das Makro vermutlich besser oder anders dargestellt werden :-) . Wer kann mir helfen? 
	Besten Dank für Eure Hilfe. 
	  
	Daniel 
	  
     |