Excel VBA - If Not ... Like ... Wurm drin
Irgendwie hab ich den Wurm drin...
Ich habe es mit beiden untenstehenden Codes probiert und jedes mal bringt er den MsgBox Text, der auf dir If anweisung folgt, auch wenn eingabe 1 "1" oder "5" enthält.
- ElseIf Not eingabe1 Like "1" Or Not eingabe1 Like "5" And eingabe2 Like "" Then
- ElseIf eingabe1 <> "1" Or eingaben1 <> "5" And eingabe2 = "" Then
4 Antworten
Also ohne mich groß darin zu vertiefen würde ich sagen:
ElseIf eingabe1 <> "1" And eingabe1 <> "5" And eingabe2 = "" Then
...
SO wird der Then-Teil ausgeführt, wenn weder 1 noch 5 in der Variablen steht.
Das "OR" in Deiner Formel heißt ja dass eingabe1 ungleich 1 oder ungleich 5 ist, und das ist natürlich immer der Fall, wenn sie 1 ist, ist sie ungleich 5 und wenn sie 5 ist, ist sie ungleich 1.
Und natürlich solltest Du nicht ....eingaben1 <>5 schreiben, denn das wäre eine andere Variable!
i ch kenne zwar das Like (noch?) nicht, aber lass mal das** then** nach Elseif weg, da gehört keins hin. Stattdessen das, was dann gemacht werden soll, in der nächsten Zeile.
Oder ist es die erste Bedingung, dann heißt es nur if ... then
in der zweiten Zeile ist es auf jeden Fall verkehrt!
Ersetze mal das like durch = , dann müsste es auch gehen!
vllt stammt das Like aus einer anderen Sprache?
Dein Code ist kein VBA, es enthält Anweisungen aus dem SQL
Wenn ich Deine Ausführungen richtig deute dann müsste der Code so sein :
If eingabe1 <> "1"And eingabe1 <> "5" And eingabe2 = "" Then
MsgBox "Erfüllt"
else
MsgBox "nicht erfüllt"
end if
Dieser Sch...Editor hier macht die Eingabe von ungleich (Kleiner als gefolgt von größer als) im Code unmöglich. Daher nochmal den Code als Bild.

OT:
Dieser Sch...Editor hier macht die Eingabe von ungleich (Kleiner als gefolgt von größer als) im Code unmöglich.
DAS habe ich bis vor kurzem auch gedacht, aber die fehlerhafte Anzeige z.B. von > als >
erscheint nur in der Vorschau, beim Schreiben, und nicht mehr nach dem hochladen!
a <> b
Ansonsten hatte ich die Korrektur mit And statt Or auch schon vorgeschlagen.
Also für alle, die es noch interessiert, die Lösung:
ElseIf Not (eingabe1 = "1" Or eingabe1= "5") And eingabe2= "" Then
nene, geht schon dann weiter :-) Nur hängt er mir ebenan der Bedingung, er führt somit immer das then (was danach kommt) aus, auch wenn 1 oder 5 drin steht