Hallo schibo,
ich verstehe Dein Problem nicht so ganz, darum mal ein erster Ansatz :
Du bewegst Dich hier in einem Bereich, der nennt sich boolsche Logik.
Du willst 3 Parameter auswerten die jeweils 1 oder 0 sind (oder eben ="" Oder ““) das sind also 8 Zustände und das sieht dann so aus :
A B C
0 0 0 =
0 0 1 =
0 1 0 =
0 1 1 =
1 0 0 =
1 0 1 =
1 1 0 =
1 1 1 =
Wenn Du Deine Bedingungen erstellst schreib erst mal A B C so auf, wie Du es haben willst
A““ B““ C““
Dann ergänze um Deine und/oder Bedingungen
A““ AND ( B““ OR C““) bedeutet also :
B oder C muss etwas enthalten UND A muss etwas enthalten
A=““ AND ( B““ OR C““) bedeutet also :
B oder C muss etwas enthalten UND A darf nichts beinhalten
(A““ AND B““ AND C=““) OR (A““ AND B=““ AND C““)
( A UND B NICHT C ) oder ( A UND C UND NICHT B) muss etwas enthalten
Du musst Dir einfach vorstellen, das VBA auf jede Frage mit 1 oder 0 auf Deine Frage antwortet und dabei Klammern berücksichtigt.
1 bedeutet schreib was in D
0 bedeutet schreib nix
Dabei werden eben einfach erst die Wert in der Klammer ermittelt und dann mit dem Wert außerhalb verglichen.
Wenn ich Dein Problem also richtig verstanden habe, sollte dir folgendes weiterhelfen :
Sub aa()
.’ Füllt Spalte D mit ja, wenn in A und (B und/oder C) einen Wert haben
.’ A B C
.’ 0 0 0 = 0
.’ 0 0 1 = 0
.’ 0 1 0 = 0
.’ 0 1 1 = 0
.’ 1 0 0 = 0
.’ 1 0 1 = 1
.’ 1 1 0 = 1
.’ 1 1 1 = 1
.Dim rng As Range
.For Each rng In Range(„D1:smiley:10“)
…If Cells(rng.Row, 1).Value „“ And (Cells(rng.Row, 2).Value „“ Or Cells(rng.Row, 3).Value „“) Then
…rng.Value = „ja“
…End If
…Next rng
End Sub