Hilfe bei einer Excel-Funktion?

...komplette Frage anzeigen Tabelle - (Excel, Funktion)

1 Antwort

Da brauchst du doch kein VBA für. Einfach in D5:

=rho*0,5*PI()*B5^2*C5^3*(16/27)

Das ziehst du herunter. 

Für rho legst du einen Namen im Namensmanager mit dem entsprechenden Wert an oder verweist auf eine andere Zelle.

In E5 kannst du dann abfragen:

=WENN(C5>=25;"abgeschaltet";D5)

__________________

Wenn du das in VBA lösen willst, dann würde ich v und r und evtl. die Dichte als Parameter übergeben

Function Leistung2(v As Double, r As Double, rho As Double)

hey danke für deine schnelle Antwort. ich muss die Aufgabe leider als VBA lösen und ohne Parameter :(

0
@unioner03

Dann solltest du dir die Variablen aus dem Arbeitsblatt ziehen:

v = Sheets(1).Range("C5").Value
...

Das geht, ist nur etwas unschöner, weil es weniger flexibel ist.

Wenn du das für alle Zeilen haben willst, müsstest du noch eine Schleife drum packen:

For each rLeistung in Range("D5:D100")
  v = rLeistung.Offset(0,-1).Value
  ...
0
@Suboptimierer

hab das jetzt versucht mit "for each..." un dhab da noch die zeile für r hingeschrieben...wie schließe ich die schleife einfach mit next...oder muss da noch was dahinter?...weil so wioe ich es jetzt hab krieg ich nur "#Wert"

0
@unioner03

Ja, genau. Du schließt die Schleife mit Next

vor der Schleife legst du rho fest, in der Schleife liest du dann r und v aus den Zellen des Sheets. Als letzten Befehl kannst du dann in rLeistung das Resultat deiner Formel schreiben.

Wenn du einen Fehler bekommst, würde ich da mal durch debuggen. #Wert klingt nach Konvertierungsfehler zwischen Datentypen.

0
@Suboptimierer

so funktioniert das leider nicht....wahrscheinlich mach ich nen doofen Fehler...aber ich weiß nicht welchen...hast du ne Lösung?

Function Leistung2()


rho = 100000 / (Rs * 371.15)

For Each Leistung2 In Range("D7:D23")

v = Leistung2.Offset(0, -1).Value
r = Leistung2.Offset(0, -2).Value

Leistung2 = rho * 0.5 * pi * r ^ 2 * v ^ 3 * (16 / 27)

Next

If v >= 25 Then Leistung2 = "abgeschaltet"

End Function
0

Was möchtest Du wissen?