AW: Interner Fehler 51
02.01.2021 14:36:44
Werner
Hallo,
die meisten Variablen nicht deklariert - ganz schlecht.
Fehler ist in der Initialize Prozedur der Userform. Mit Format(... bekommst du Text und keine Zahl.
Teste mal:
Private Sub UserForm_Initialize()
Dim start As Double, ende As Double, int24 As Long, intval As Long, intval2 As Double
Dim zähler As Long, intervall As Double, intzähler As Long, intnumber As Long, dlp As Long
'Fill Tage Von
With date_from_day
.Text = "01"
For zähler = 1 To 31
.AddItem zähler
Next zähler
End With
'Fill Monate Von
With date_from_month
.Text = "Januar"
.List = Worksheets("Config").Range("Monatsliste").Value
End With
'Fill Jahre mit Angabe aus Kalender Von
With date_from_year
.Text = Worksheets("Kalender").Range("F2").Value
.AddItem Worksheets("Kalender").Range("F2").Value
End With
'Fill Tage Bis
With date_since_day
.Text = "01"
For zähler = 1 To 31
.AddItem zähler
Next zähler
End With
'Fill Monate Bis
With date_since_month
.Text = "Januar"
.List = Worksheets("Config").Range("Monatsliste").Value
End With
'Fill Jahre mit Angabe aus Kalender Bis
With date_since_year
.Text = Worksheets("Kalender").Range("F2").Value
.AddItem Worksheets("Kalender").Range("F2").Value
End With
'Fill Memberlist
With member_list
.ColumnWidths = "60; 60; 75"
.List = Worksheets("Mitarbeiter").Range("B3:D20").Value
End With
start = CDbl(CDate(Format(Worksheets("Config").Range("I3").Value, "hh:mm")))
ende = CDbl(CDate(Format(Worksheets("Config").Range("I4").Value, "hh:mm")))
int24 = (24 * 60) / Worksheets("Config").Range("I5").Value
intval = Worksheets("Config").Range("I5").Value
intval2 = intval / 60
If intval >= 60 Then
If intval2 >= 10 Then
intervall = Format(intval2 & ":00", "hh:mm")
Else
intervall = Format("0" & intval2 & ":00", "hh:mm")
End If
Else
intervall = CDbl(CDate(Format("00:" & Worksheets("Config").Range("I5").Value, "hh:mm")))
End If
intzähler = CDbl(start) / CDbl(intervall)
intnumber = int24 - intzähler
'Zeit von
With time_from
For zähler = 0 To intnumber
.AddItem Format(CDate(start) + CDate(intervall) * zähler, "hh:mm")
Next zähler
.Text = Format(CDate(start) + CDate(intervall) * 0, "hh:mm")
End With
'Zeit bis
With time_since
For zähler = 0 To intnumber
.AddItem Format(CDate(start) + CDate(intervall) * zähler, "hh:mm")
Next zähler
.Text = Format(CDate(start) + CDate(intervall) * 0, "hh:mm")
End With
'Fill Devices
Dim last As Integer
last = Worksheets("Geräte").Cells(Rows.Count, 1).End(xlUp).Row - 1
With device_list
For dlp = 0 To last - 2
.ColumnWidths = "50; 50; 50; 50"
.List = Worksheets("Geräte").Range("B3:E1000").Value
Next
End With
End Sub
Gruß Werner