Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro in benutzerdefinierte Funktion umwandeln

Forumthread: Makro in benutzerdefinierte Funktion umwandeln

Makro in benutzerdefinierte Funktion umwandeln
06.02.2003 17:22:23
Hannes
Hallo liebe Excel-Gemeinde,

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


Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ist zwar unlogisch
07.02.2003 12:21:28
wolf.w.radzinski

'ne Function ohne Übergabeparameter, aber ..

schönes Wochenende -wr-

Function funktioniert imho ungefähr so
07.02.2003 12:56:44
wolf.w.radzinski

hier der geänderte Code...
~begin~
Function auftragszeit(Anzahlls As Range, Zeiten As Range)

Dim Z As Range
Dim maxzeit As Integer
Dim i as Integer

maxzeit = 0
If Anzahlls Is Nothing Then Exit Function
if Zeiten Is Nothing Then Exit Function
For i = 1 To Anzahlls.Cells.Count
If Anzahlls.Cells(i) <> 0 Then
If Zeiten.Cells(i) > maxzeit Then
maxzeit = Zeiten.Cells(i)
End If
End If
Next
auftragszeit = maxzeit
End Function

und aufgerufen wird er in Zelle G42 mit =auftragszeit([A26:A38];[I52:I64]}


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige