Anzeige
Archiv - Navigation
1852to1856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

IF mit mehreren Bedingungen fürs IF

IF mit mehreren Bedingungen fürs IF
04.11.2021 22:48:14
Andreas
Hallo,
ich möchte die Zeile der aktiven Zelle löschen wen der Wert in der rechten Nachbarzelle
weder A,B,C,D,E,F ist.
Dache es würde wie folgt gehen, hab da wohl falsch gedacht und würde mich sehr
über eine Hilfestellung freuen. Vielen Dank vorab!

Sub Test()
Dim Bedingung As String
Bedingung = ActiveCell.Offset(0, 1)
If Bedingung  "A" Or "B" Or "C" Or "D" Or "E" Or "F" Then ActiveCell.EntireRow.Delete
End Sub
irgendwo muss er Fehler beim (ist doch Zeichen für ungleich oder?) liegen oder bei den "Or"
Kommas gehen jedenfalls auch nicht :-(

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IF mit mehreren Bedingungen fürs IF
04.11.2021 23:09:25
volti
Hallo Andreas,
eine Möglichkeit....
Code:

[Cc]

Sub Test() Select Case ActiveCell.Offset(0, 1).Value Case "A", "B", "C", "D", "E", "F" ActiveCell.EntireRow.Delete End Select End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
andersrum
04.11.2021 23:22:08
Werner
Hallo Karl-Heinz,
nö, gerade andersrum.

Sub Test()
Select Case ActiveCell.Offset(, 1)
Case "A", "B", "C", "D", "E", "F"
Case Else: ActiveCell.EntireRow.Delete
End Select
End Sub
Gruß Werner
AW: andersrum
04.11.2021 23:29:40
volti
Ups,
ja Werner, man sollte die Aufgabenstellung schon richtig lesen, aber es ist schon spät :-)
Gruß
Karl-Heinz
Bei mir....
04.11.2021 23:31:49
Werner
Hallo Karl-Heinz,
....ist das noch nicht spät. Hab Nachtdienst und noch ein paar Stündchen vor mir.
Gruß Werner
AW: andersrum
04.11.2021 23:44:21
Andreas
ja so klappts !! Danke !!!
Gerne u. Danke für die Rückmeldung. o.w.T.
04.11.2021 23:55:32
Werner
AW: andersrum
05.11.2021 03:02:25
Andreas
ach o jemine... ich verzweifel ... der Code funktioniert für das löschen wunderbar .... ABER...
Jetzt folgendes Problem - um die Tabelle durchzuarbeiten muss ich ja mit ActiveCell.Offset(1, 0)
von oben nach untern durch das Arbeitsblatt navigieren. Also so in etwa...

Sub Test()
Select Case ActiveCell.Offset(, 1)
Case "A", "B", "C", "D", "E", "F"
Case Else: ActiveCell.EntireRow.Delete
End Select
ActiveCell.Offset(1, 0)
End Sub
Wenn ich nun aber zB drei mal Hintereinander "X" in der Tabelle stehen habe, dann löscht der
nicht das zweite. Das erste schon, aber durch das löschen der Spalte rückt die Tabelle nach oben,
mit ActiveCell.Offset(1, 0) gehe ich aber gleichzeitig eine Spalte tiefer und überspringe somit das zweite "X"
und lande dann beim dritten.
Anzeige
AW: andersrum
05.11.2021 07:56:58
Volti
Moin Andreas,
da gehst du statt von oben nach unten von unten nach oben.
Gruß KH
AW: IF mit mehreren Bedingungen fürs IF
04.11.2021 23:32:45
Andreas
Leider LÖSCHT der so immer wenn A,B,C,D,E,F in der Zelle stehen. Er soll aber eben gerade nur bei diesen Werten nicht löschen
Deswegen hatte ich es in meinem Versuch mit Ungleich "" statt mit Gleich "=" versucht ...
Als Lerneffekt...
04.11.2021 23:31:10
{Boris}
Hi Andreas,
...neben der Tatsache, dass man das auch mit Select Case lösen kann:

If Bedingung  "A" Or "B" Or "C" Or "D" Or "E" Or "F" Then
muss heißen:

If Bedingung  "A" And Bedingung  "B" And Bedingung  "C" And Bedingung  "D" And Bedingung  "E" And Bedingung  "F" Then
Also: 1. Jede Wahrheitsprüfung komplett abfragen und 2. And statt Or nehmen, da es ja UND-Bedingungen sind.
VG, Boris
Anzeige
AW: Als Lerneffekt...
05.11.2021 03:06:25
Andreas
Hallo Boris, danke für deine Erklärung. Das war dann wohl ein Denkfehler, ich dacht ich muss sagen "Wenn in der Zelle A steht, oder B steht oder C steht etc. dann lösche sie." --- Oh man bin ich froh das VBA keine Fremdsprache ist mit der ich einem Fremden Land Essen bestellen muss ;-)
AW: Als Lerneffekt...
05.11.2021 10:03:51
Daniel
Hi
OR und AND sind Rechenoperatoren wie + und *, dh links und rechts des Operators muss ein Wahrheitswert stehen und der Operator kombiniert dann beide Wahrheitswerte zu einem neuen Wahrheitswert (so wie + die beiden Zahlen, die links und rechts vom Plus stehen, zu einer neuen Zahl kombiniert).
alternativ zum Wahrheitwert darf dort natürlich auch eine weitere Berechnung oder ein Vergleich stehen, welcher im Sinne einer erweiterten "Punkt vor Strich"-Regel zuerst berechnet wird und dann den Wahrheitwert ergibt.
Gruß Daniel
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige