Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
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

Zellbereich auf Value "ok" prüfen

Zellbereich auf Value "ok" prüfen
Martin
Habe einen syntaktischen Knoten im Kopf und würde mich über einen Tipp zur entwirrung freuen.
In meiner Tabelle sollen pro Zeile die Zellen der Spalten W bis AS auf Übereinstimmung mit dem .Value "ok" geprüft werden. Ich schaffe es nicht mit einer Anweisung die oben genannten Zellen auf einmal zu prüfen.
Ich kann die Prüfung mit einer mega langen AND Kette durchführen, würde es aber lieber in einem überschaubaren Quellcode durchziehen.
Bsp.:

Sub pruefen()
Dim iRow As Integer, iRowL As Integer
Set iRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 4 To iRowL
If Cells(iRow, [Die Spalten W bis AS der aktuellen Zeile]).Value = "ok" Then
usw...
End Sub

alternative If Anweisung, die bei mir funktioniert:
If Cells(iRow, 23).Value = "ok" AND Cells(iRow, 24).Value = "ok" .... AND Cells(iRow, 45).Value = "ok" Then
usw...

Der Kursive Ansatz funktioniert ist jedoch viel zu umständlich. Wie kann ich das kürzen und die Übersichtlichkeit verbessern?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellbereich auf Value "ok" prüfen
16.08.2011 13:05:35
Beverly
Hi Martin,
ungetestet:
If Application.CountIf(Range(Cells(irow, 23), Cells(irow, 45)), "ok") = 23 Then



AW: Zellbereich auf Value "ok" prüfen
16.08.2011 18:24:30
Martin
Habs jetzt mit ner verschachtelten Schleife gelöst. Falls es jemanden interessiert.
Sub copyOK()
Dim wks As Worksheet
Dim iRow As Integer, iRowL As Integer, iRowT As Integer
Dim iCol As Integer
Dim countOK As Long 'einfach ein Zähler, der den "ok" Status erfast und bei der  _
auswertung hilft
Set wks = Worksheets("OK")
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 5 To iRowL 'erste Schleife für den Zeilendurchlauf bis zur letzten Zeile
countOK = 1 'Zähler könnte auch auf 0 stehen, jedoch für meine Zwecke besser auf dem Wert  _
1        For iCol = 23 To 49 'Schleife für die Spaltendurchläufe
If Cells(iRow, iCol).Value = "ok" Then
countOK = countOK + 1
End If
Next iCol
If countOK = 28 Then 'sollten alle Spalten einer Zeile den Wert OK haben, dann wird  _
die Zeile kopiert
iRowT = wks.Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(iRow).Copy wks.Rows(iRowT)
End If
Next iRow
wks.Columns.AutoFit
Application.CutCopyMode = False
End Sub

Anzeige
AW: Zellbereich auf Value "ok" prüfen
16.08.2011 20:40:46
Beverly
Hi Martin,
da kann ich nur sagen: warum einfach wenn es auch kompliziert geht und den Code wesentlich langsamer macht.


300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige