Ich habe unten stehenden Code als Makro hinter ein Textfeld gelegt. Er funktioniert soweit. Lieber hätte ich aber das ganze als benutzerdefinierte Funktion direkt in die Zelle "G42" gelegt.
Ich habe es auch versucht, aber irgendwie schaffe ich es nicht. Ich erhalte immer einen Laufzeitfehler.
Hat jemand eine Idee, wie man das so schreiben könnte, dass es funtkioniert?
Sub auftragszeit()
Dim nr1, nr2 As Integer
Dim zelle1, zelle2, zellennr1 As String
Dim zellennr2 As String
Dim anzahlls As Variant 'Entspricht der Anzahl der einzelnen Lackstufen
Dim zeiten As Variant 'Entspricht den Auftragsbezogenen Zeiten
Dim zeit As Integer
Dim maxzeit As Integer
anzahlls = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
For i = 0 To UBound(anzahlls)
nr1 = 26 + i
zellennr1 = nr1
zelle1 = "A" + zellennr1
anzahlls(i) = ActiveSheet.Range(zelle1).Value
Next
zeiten = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
For j = 0 To UBound(anzahlls)
nr2 = 52 + j
zellennr2 = nr2
zelle2 = "I" + zellennr2
zeiten(j) = ActiveSheet.Range(zelle2).Value
Next
maxzeit = 0
For k = 0 To UBound(anzahlls)
If anzahlls(k) <> 0 Then
zeit = zeiten(k)
If zeit > maxzeit Then
maxzeit = zeit
Else:
End If
Else:
End If
Next
ActiveSheet.Range("g42").Value = maxzeit
End Sub