![]() |
![]() |
|
![]() |
![]() |
|
Software Rat & Tat bei Softwareproblemen |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() |
![]() Hallo Leute!
Vielleicht kann mir jemand dabei helfen: Es soll sein IF(AND(C5>39;C5<59;G5>7000;G5<9900);"ok";"IF(AND(C 5>39;C5<59;G5>7000;G5<9900);"ok";"falsch")") WENN das eine passt DANN ok SONST WENN das andere passt DANN AUCH ok SONST falsch Ab dem 2. wenn gehts nicht mehr. Ist vielleicht nur eine Klammer im Weg? Danke mal im Voraus! |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() das zweite IF steht komplett unter hochkomma ("), so gehts sicher nicht.
Wenn dann eher: IF(AND(C5>39;C5<59;G5>7000;G5<9900);"ok";IF(AND(C 5>39;C5<59;G5>7000;G5<9900);"ok";"falsch")) und geht das nicht mit einem if und or? if(or(and(...);and(...));"ok";"falsch") |
![]() |
![]() |
![]() |
#3 |
Aussteiger
![]() |
![]() mit einer deutschen sprach-version von ms-office 2010 funktioniert die folgendermaßen bereinigte formel:
Code:
=WENN(UND(C5>39;C5<59;G5>7000;G5<9900);"ok";WENN(UND(C5>39;C5<59;G5>7000;G5<9900);"ok";"falsch"))
____________________________________
Praktizierender Eristiker No hace falta ser un genio para saber quién dijo eso. Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein. |
![]() |
![]() |
![]() |
#4 |
Newbie
![]() |
![]() Danke euch Beiden! :--)
Funtioniert jetzt wunderbar! Nur habe ich einen Denkfehler drinnen, es fehlen AND und OR. So kommt kein sinnvolles Ergebnis raus. IF(AND(C5>39;C5<59;G5>7000;G5<9900);"ok";IF(AND(C5 <39;C5>59;G5<7000);"ok";"falsch")) Beim zweiten IF (c5<39 OR c5>59) AND (g5<7000) Muss ich da jedesmal eine neue IF Verzweigung machen? |
![]() |
![]() |
![]() |
#5 |
Trashtroll
![]() |
![]() Nein musst du nicht...
Code:
IF(OR(AND(C5>39;C5<59;G5>7000;G5<9900);AND(C5<39;C5>59;G5<7000));"ok";"falsch")
____________________________________
It's more fun to write crap that nothing! Just kidding. ![]() Ich bin für kreative Rechtschreibung, da kann man keine Fehler machen |
![]() |
![]() |
![]() |
#6 |
Trashtroll
![]() |
![]() Was mir jetzt erst auffällt:
Code:
AND(C5<39;C5>59;G5<7000)
____________________________________
It's more fun to write crap that nothing! Just kidding. ![]() Ich bin für kreative Rechtschreibung, da kann man keine Fehler machen |
![]() |
![]() |
![]() |
#7 |
Newbie
![]() |
![]() jetzt hab ichs folgendermaßen geändert:
=IF(AND(C3>39;C3<59;G3>7000;G3<9900);"ok";IF((OR(C 3<39;C3>59)*AND(G3<7000));"ok";"falsch")) Es gehört noch erweitert auf *(AND(G3<7000)OR(G3>9900)) nach dem zweiten IF. Also WENN (c3<39 ODER c3>59) UND (g3<7000 ODER g3>9900) nur leider nimmt Excel das so nicht?! |
![]() |
![]() |
![]() |
#8 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Schreib dir eine VBA-Funktion. Damit ist alles übersichtlich und leicht lesbar. Außerdem gibt es kein Limit bei der Zahl der Verschachtelungen. mfg WB |
![]() |
![]() |
![]() |
#9 |
Newbie
![]() |
![]() Hab jetzt das zusammen geschustert, aber als Fehler kommt "Block IF without End IF)
Kann mir jemand sagen, ob das sonst passt, und wo der Fehler ist? Code:
Sub test() ' überprüfen For Each zelle In Bereich If zelle.Value(3, 3) > 39 And zelle.Value(3, 3) < 59 And zelle.Value(3, 7) > 7000 And zelle.Value(3, 7) < 9900 Then zelle.Value(3, 3).Font.ColorIndex = 8 Else If zelle.Value(3, 3) < 39 Or zelle.Value(3, 3) > 59 And zelle.Value(3, 7) < 7000 Or zelle.Value(3, 7) > 9900 Then zelle.Value(3, 3).Font.ColorIndex = 8 Else zelle.Value(3, 3).Font.ColorIndex = 1 End If End Sub |
![]() |
![]() |
![]() |
#10 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Es fehlt tatsächlich eine "End If". Vermutlich am Schluß, aber sicher kannst das nur du wissen. Außerdem fehlt next, um die Schleife zu schließen. zelle.Value(3, 3) dürfte auch kein korrekter Ausdruck sein. Insgesamt scheint es nicht die Umsetzung deiner Formel zu sein. Die ist mir aber zu kompliziert, um mich damit genau auseinander zu setzen. Hier ein paar grundsätzliche Infos: - Beginne jedes Modul mit der Zeile: Option Explicit Damit wird die Deklaration der Variablen erzwungen. Das vermeidet Fehler. - Um eine Formel zu ersetzen braucht es eine Funktion mit Rückgabewert. Dieser wird in der Zelle angezeigt. Eine Lösung mit For Each dürfte nicht zweckmäßig sein. Außerdem ist der Bereich nicht angegeben. Wenn du mit VBA keine Erfahrung hast, beginne mit einer einfachen Funktion. Oder beschreib mir verständlich, was du erreiche willst. Ich bring dann ein Beispiel, das du erweitern/anpassen kannst. mfg WB Geändert von wbendl (12.06.2012 um 15:18 Uhr). |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|