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

Welche Schleife/Bedingung sinnvoll?

Welche Schleife/Bedingung sinnvoll?
30.10.2018 15:33:55
Anna
Hallo,
mir fehlt bei folgender Situation ein bisschen die Logik.
Ich durchsuche Spalte R nach den Zahlen 1,2,3 & 4. Wenn eine der Zahlen gefunden wurde, dann wird die gesamte Tabelle (Spalte R) nach dieser Zahl gefiltert und mir die Ergebnisse in ein anderes Tabellenblatt kopiert. Soweit so gut.
Nun habe ich das ganze in eine If-ElseIf-Else Bedingung verpackt. Wenn nun aber bsps. die Zahl 2 gefunden wurde, wird mir die restliche Tabelle nicht mehr nach den Zahlen 3 & 4 durchsucht. Was vollkommen logisch ist, mir fällt nur leider keine andere Möglichkeit ein wie ich alles durchsuchen kann. Danke für eure Ideen!
If WorksheetFunction.CountIf(Range("R:R"), "1") > 0 Then
ActiveSheet.Range("A1:W" & letzteZeile).Autofilter Field:=18, Criteria1:="1"
freieZeileTab = Worksheets("Namensliste").Cells(Rows.Count, 1).End(xlUp).Row
Set C = Range("R2:R" & letzteZeile)
Set tt = Sheets("Namensliste").Cells(freieZeileTab + 1, 1)
C.Copy Destination:=tt
Set D = Range("B2:B" & letzteZeile)
Set uu = Sheets("Namensliste").Cells(freieZeileTab + 1, 2)
D.Copy Destination:=uu
freieZeileTab = Worksheets("Namensliste").Cells(Rows.Count, 1).End(xlUp).Row
ElseIf WorksheetFunction.CountIf(Range("R:R"), "2") > 0 Then
ActiveSheet.Range("A1:W" & letzteZeile).Autofilter Field:=18, Criteria1:="2"
freieZeileTab = Worksheets("Namensliste").Cells(Rows.Count, 1).End(xlUp).Row
Set C = Range("R2:R" & letzteZeile)
Set tt = Sheets("Namensliste").Cells(freieZeileTab + 1, 1)
C.Copy Destination:=tt
Set D = Range("B2:B" & letzteZeile)
Set uu = Sheets("Namensliste").Cells(freieZeileTab + 1, 2)
D.Copy Destination:=uu
freieZeileTab = Worksheets("Namensliste").Cells(Rows.Count, 1).End(xlUp).Row
ElseIf WorksheetFunction.CountIf(Range("R:R"), "3") > 0 Then
ActiveSheet.Range("A1:W" & letzteZeile).Autofilter Field:=18, Criteria1:="3"
freieZeileTab = Worksheets("Namensliste").Cells(Rows.Count, 1).End(xlUp).Row
Set C = Range("R2:R" & letzteZeile)
Set tt = Sheets("Namensliste").Cells(freieZeileTab + 1, 1)
C.Copy Destination:=tt
Set D = Range("B2:B" & letzteZeile)
Set uu = Sheets("Namensliste").Cells(freieZeileTab + 1, 2)
D.Copy Destination:=uu
freieZeileTab = Worksheets("Namensliste").Cells(Rows.Count, 1).End(xlUp).Row
ElseIf WorksheetFunction.CountIf(Range("R:R"), "4") > 0 Then
ActiveSheet.Range("A1:W" & letzteZeile).Autofilter Field:=18, Criteria1:="4"
Set C = Range("R2:R" & letzteZeile)
Set tt = Sheets("Namensliste").Cells(freieZeileTab + 1, 1)
C.Copy Destination:=tt Set D = Range("B2:B" & letzteZeile)
Set uu = Sheets("Namensliste").Cells(freieZeileTab + 1, 2)
D.Copy Destination:=uu
End If

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Welche Schleife/Bedingung sinnvoll?
30.10.2018 15:48:44
Daniel
Hi
Im If-Then-Else wird immer nur der erste zutreffende IF-Block ausgeführt und danach sofort zum End If gesprungen.
Dh die weiteren Teile werden nicht mehr überprüft.
die Lösung wäre hier, für jede Zahl einen eigenständigen IF_Block zu verwenden:
dh nicht so
If CountIF(..., 1) > 0 Then
ElseIF CountIf(..., 2) > 0 then
ElseIF CountIf(..., 3) > 0 then
ElseIF CountIf(..., 4) > 0 then
End If
sondern so
If CountIF(..., 1) > 0 Then
end if
IF CountIf(..., 2) > 0 then
End If
IF CountIf(..., 3) > 0 then
End If
IF CountIf(..., 4) > 0 then
End If
Gruß Daniel
Anzeige
AW: Welche Schleife/Bedingung sinnvoll?
30.10.2018 15:58:08
Daniel
Hi
filtere doch einfach nach allen 4 Zahlen gleichzeitig:
If Worksheetfunction.Countif(Range("R:R"), ">=1", Range("R:R"), "
Gruß Daniel
AW: Welche Schleife/Bedingung sinnvoll?
30.10.2018 20:53:32
Anna
Hallo Daniel,danke für deine beiden Antworten!
Auf die erste mit den einzelnen Anweisungen hätte ich auch selber kommen können...Brett vorm Kopf...deshalb tausend Dank!
Die zweite sieht sehr elegant gelöst aus, nur bekomme ich einen Kompilierungsfehler bei CountIf...
"Falsche Anzahl an Argumenten oder ungültige Zuweisung von Eigenschaften" Ich kann sie also nicht testen.
Also Danke dir für den Hinweis!!
Anzeige
AW: Welche Schleife/Bedingung sinnvoll?
31.10.2018 08:19:13
PeterK
Hallo
"CountIfs" (ZähleWenns) statt "CountIf" (ZähleWenn)
AW: Welche Schleife/Bedingung sinnvoll?
31.10.2018 11:14:56
Anna
Hallo Peter,
vielen Dank - jetzt funktioniert es & gibt natürlich sinn.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige