Excel vba - if funktion mit zwei bedingungen

… wie kann ich erkennen welche bedingung nicht erfüllt wurde?

als Beispiel hier:
If laufzeit > 20 Or kapital > 10000 Or zinssatz > 8 Then
MsgBox „fail“

…anstatt des „fails“ soll geschrieben werden welche bedingung genau falsch gelaufen ist, zb „laufzeit ist zu hoch“.

dankeschön

Hallo 93cracker93

Dim strMsgBox as string
strMsgBox = „“
If laufzeit > 20 then strMsgBox = „Laufzeit > 20“ & vbcrlf
If kapital > 10000 then strMsgBox = strMsgBox & „Kapital > 10000“ & vbcrlf
If zinssatz > 8 Then strMsgBox = strMsgBox & „Zinssatz > 8“ & vbcrlf
If strMsgBox > „“ then MsgBox strMsgBox

Gruss
fonti46

Sorry, Antwort ist natürlich Access VBA (meine Spezialität) sollte aber in Excel auch so funktionieren

Hallo,

da wird wohl nichts anderes uebrig bleiben als jeder Bedingung einzeln abzufragen

Dim tmpStr as String

if laufzeit > 20 then
tmpStr = "Laufzeit > 20 " & vbNewLine
end if
if kapital > 10000 then
tmpStr = tmpStr & "kapital > 10000 " & vbNewLine
end if
if zinssatz > 8 then
tmpStr = tmpStr & "zinssatz > 8 "
end if

MsgBox tmpStr

Ein elegantere Loeung faellt mir in diesem Zusammenhang nicht ein.

Tschau
Peter

du mußt den Fehler zuerst einer Variablen übergeben:

fehler = „“
If laufzeit > 20 then fehler = „Laufzeit ist zu hoch“
If kapital > 10000 then fehler = „Kapital ist zu hoch“
If zinssatz > 8 then fehler = „Zinssatz ist zu hoch“

if fehler „“ then MsgBox fehler

Hallo,
versuchs mal so:

If laufzeit > 20 Then Meldung1 = „Laufzeit ist zu hoch!“

If kapital > 10000 Then Meldung2 = „Kapital ist zu hoch!“

If zinssatz > 8 Then Meldung3 = „Zinssatz ist zu hoch!“

Meldung = Meldung1 & " " & Meldung2 & " " & Meldung3

If laufzeit > 20 Or kapital > 10000 Or zinssatz > 8 Then

MsgBox Meldung
End If

Gruß,
Ptonka

Hallo 93cracker93,

Einzige Lösung: einzeln abfragen, z. B.

If laufzeit > 20 then
msgbox „laufzeit zu hoch (1 - 20)“
exit sub bzw. exit function
end if

if kapital > 10000 then
msgbox „Kapital zu hoch (max. 10000)“
end if

if zinssatz > 8 Then
msgBox „Zinssatz zu hoch (5 - 8)“
end if

Gruß
Harry

Das geht meines Erachtens nur über zusätzliche If-Konstrukte:

If laufzeit \> 20 Or kapital \> 10000 Or zinssatz \> 8 Then
 If laufzeit \> 20 then msgbox "laufzeit \> 20"
 If kapital \> 10000 then msgbox "kapital \> 10000"
 If zinssatz \> 8 then msgbox "zinssatz \> 8"
End if

Viele Grüße,
BellHouse

Hallo, ich gehe mal davon aus, dass für die Laufzeit, das Kapital und den Zinssatz jeweils eine Spalte benutzt wird und der jeweilige Wert, bei dem eine Meldung erscheinen soll fest definiert ist. In diesem Fall würde ich es mit einer bedingten Formatierung versuchen, bei der das entsprechende Feld dann farbig gekennzeichnet wird. Die bedingte Formatierung findest du im Kontextmenue Format. Falls du noch Fragen dazu hast, frag einfach.
Gruß
Volker

tut mir leid, kann nicht helfen.
Gruß
Brandis

Entweder die if-Klauseln einzeln prüfen und entsprechenden Text ausgeben oder mit der Select Case Anweisung arbeiten. Auch hier dann im entsprechenden Fall eine separate MsgBox ausgeben

Hallo

dabei kann ich dir leider nicht helfen.

LG
Miss Excel