Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
576to580
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
576to580
576to580
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

viele Bedingungen in If-Funktionen

viele Bedingungen in If-Funktionen
03.03.2005 09:55:33
Eva
Hallo,
bei folgendem Code werden meiner Prüfung nach nur die ersten Argumente in den if-Funktionen geprüft. Gibt es also eine Maximalanzahl an Argumenten für if-Funktionen? Oder habe ich einen gravierenden Fehler?

Sub MitarbeiterListeAnpassen()
Dim i As Integer
For i = 3 To 5400
Application.DisplayAlerts = False
If Cells(i, 5).Value = "67407" Or Cells(i, 5).Value = "67410" Or Cells(i, 5).Value = "67420" Or Cells(i, 5).Value = "67430" Or Cells(i, 5).Value = "67440" Or Cells(i, 5).Value = "67450" Or Cells(i, 5).Value = "67460" Or Cells(i, 5).Value = "67470" Or Cells(i, 5).Value = "67480" Or Cells(i, 5).Value = "B2407" Or Cells(i, 5).Value = "B2410" Or Cells(i, 5).Value = "B2420" Or Cells(i, 5).Value = "B2430" Or Cells(i, 5).Value = "B2440" Or Cells(i, 5).Value = "B2450" Or Cells(i, 5).Value = "B2460" Or Cells(i, 5).Value = "B2490" Or Cells(i, 5).Value = "B2730" Then
If Cells(i, 7).Value = "DD OP" Or Cells(i, 7).Value = "DD VA" Or Cells(i, 7).Value = "DD FK" Or Cells(i, 7).Value = "DD SL" Or Cells(i, 7).Value = "DD SO" Or Cells(i, 7).Value = "DD SP" Then Call ZeileLöschen(i)
End If
Next i
Application.DisplayAlerts = True
End Sub


Sub ZeileLöschen(i As Integer)
'Probe mit Färben
'Rows(i).Interior.ColorIndex = 33
Rows(i).EntireRow.Delete
End Sub

Dank+Gruß
Eva

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: viele Bedingungen in If-Funktionen
03.03.2005 10:25:18
u_
Hallo,
derart umfangreiche sind in einer Select Case-Struktur besser untergebracht.

Sub MitarbeiterListeAnpassen()
Dim i As Integer
On Error GoTo ERRHANDLER
For i = 3 To 5400
Application.DisplayAlerts = False
Select Case Cells(i, 5)
Case "67407", "67410", "67420", "67430", "67440", "67450", "67460", "67470", _
"67480", "B2407", "B2410", "B2420", "B2430", "B2440", "B2450", "B2460", _
"B2490", "B2730"
Select Case Cells(i, 7)
Case "DD OP", "DD VA", "DD FK", "DD SL", "DD SO", "DD SP"
Call ZeileLöschen(i)
End Select
End Select
Next i
ERRHANDLER:
Application.DisplayAlerts = True
End Sub

Gruß
Anzeige
AW: viele Bedingungen in If-Funktionen
03.03.2005 10:41:30
Eva
Danke sehr.
Komischerweise bleibt das Problem, dass nicht alle unter Case1 aufgelisteten Argumente mit dem ersten Durchlauf erfasst werden. Ich muss im Moment noch mehrmals den Code starten, um alle mit den betreffenden Argumenten betroffenen Zeilen zu löschen.
Wo liegt hier der Haken?

Sub MitarbeiterListeAnpassen()
Dim i As Integer
On Error GoTo ERRHANDLER
For i = 3 To 5400
Application.DisplayAlerts = False
Select Case Cells(i, 5)
Case "67407", "67410", "67420", "67430", "67440", "67450", "67460", "67470", _
"67480", "B2407", "B2410", "B2420", "B2430", "B2440", "B2450", "B2460", _
"B2490", "B2730"
Select Case Cells(i, 7)
Case "DD OP", "DD VA", "DD FK", "DD SL", "DD SO", "DD SP"
Call ZeileLöschen(i)
End Select
End Select
Next i
ERRHANDLER:
Application.DisplayAlerts = True
End Sub


Sub ZeileLöschen(i As Integer)
'Probe mit Färben
'Rows(i).Interior.ColorIndex = 33
Rows(i).EntireRow.Delete
End Sub

Gruß
Eva
Anzeige
AW: viele Bedingungen in If-Funktionen
03.03.2005 10:45:39
Andre
Das liegt an dem Löschen. Wenn z.B. die Zeilen 4 und 5 diese Kriterien erfüllen und Zeile 4 als erste gelöscht wird, wird Zeile 5 automatisch zu Zeile 4. Der Zähler, der gleichzeitig auch die Zeile angibt ist aber indessen schon eine Zahl weiter, also bei 5.
D.h. die ursprüngliche Zeile 5 wurde gar nicht erst überprüft!
Gruß Andre
AW: viele Bedingungen in If-Funktionen
03.03.2005 10:49:18
Hajo_Zi
Hallo Andre,
beim löschen von Zeilen macht es sich immer gut wenn man von der letzten zur ersten Zeile läuft.
For i = 5400 To 3 Step -1
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: viele Bedingungen in If-Funktionen
03.03.2005 10:49:05
u_
Hallo,
lösche rückwärts!
For i=5400 to 3 step -1
Gruß
Dank an alle! Es funktioniert gut. ot
03.03.2005 12:11:33
Eva
mm
AW: viele Bedingungen in If-Funktionen
03.03.2005 10:41:44
Andre
Hi Eva,
das ist etwas umständlich. Versuch´s mal auf diese Weise:
In die Arrays schreibst du deine Argumente und dann mal laufen lassen.

Sub test()
Inhalt = Array(67407, 67410, 67420)
Inhalt2 = Array("DD OP", "DD VA", "DD FK")
For j = 0 To UBound(Inhalt)
If Cells(i, 5).Value = Inhalt(j) Then
For k = 0 To UBound(Inhalt2)
If Cells(i, 7).Value = Inhalt2(k) Then
Call ZeileLöschen(i)
End If
Next k
End If
Next j
End Sub

Das ist überschaubarer.
Gruß Andre
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige