Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
212to216
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
212to216
212to216
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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


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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige