Microsoft Excel

Herbers Excel/VBA-Archiv

If Funktionen mit VBA ( Excel 2016 )

Betrifft: If Funktionen mit VBA ( Excel 2016 ) von: Ali
Geschrieben am: 12.03.2016 09:09:47

Guten Morgen,

ich wollte mit VBA eine If Then Funktion schreiben, die da wie folgt aussieht:

Public Function vez1uew(s1 As Double, tges As Double, tw As Double, b1 As Double, ru As Double,  _
vb1b4 As _
Double) As Double
    
    If s1 >= tges And tw >= s1 Then _
    vez1uew = Pi / 3 * (b1 ^ 2 + b1 * ru + ru ^ 2) * s1 - vb1b4
    
    If s1 >= tges And tw < s1 Then _
    vez1uew = (Pi / 3 * (b1 ^ 2 + b1 * ru + ru ^ 2) * s1 - vb1b4) * tw / s1

End Function
Leider gibt mir Excel in der entsprechenden Zelle nur #Wert! aus. Kann mir jemand helfen?

Vielen Dank schon mal.

  

Betrifft: AW: If Funktionen mit VBA ( Excel 2016 ) von: Ali
Geschrieben am: 12.03.2016 09:14:24

PS: in der Zelle für tw ( wenn es kein Wert gibt ) soll ein Minuszeichen stehen ( "-" ) stehen können. Deswegen gibt mir Excel #Wert! aus.


  

Betrifft: AW: If Funktionen mit VBA ( Excel 2016 ) von: Daniel
Geschrieben am: 12.03.2016 09:50:42

Hi

dann musst du tw als Variant deklarieren, denn nur das Minuszeichen alleine ist ein Text und somit kann tw Text oder Zahl sein.
die Abfrage ob tw dann "-" ist oder eine Zahl, würde ich an den Anfang stellen.
bei grösser-kleiner-Vergleichen von Texten mit Zahlen sind Texte immer grösser als Zahlen.

wenn du die Kreiszahl PI (3,14...) in VBA verwenden willst, musst du Worksheetfunction.Pi nehmen.
bei dir ist Pi nur eine Variable, die nicht deklariert wurde und auch keine Wertzuweisung hat.

Gruß Daniel


  

Betrifft: AW: If Funktionen mit VBA ( Excel 2016 ) von: Ali
Geschrieben am: 12.03.2016 10:01:47

Klasse! Beide Ratschläge haben mich weitergebracht.

Besten Dank.


 

Beiträge aus den Excel-Beispielen zum Thema "If Funktionen mit VBA ( Excel 2016 )"