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

Count if

Count if
03.12.2020 14:10:19
Mila
Hallo Herber Forum,
mir wurde schon vor ein paar Tagen hier weitergeholfen,...nun bin ich etwas durcheinander mit meinem Code...
Er macht soweit alles was ich möchte, jedoch möchte ich etwas verbessern und zwar, dass beim prüfen in Spalte 7, wenn es nicht Schubert oder Werner ist, auch hochgezählt wird und das ganze dann in L3 steht. Dabei ist die Länge der zu untersuchen Spalte variabel.

For lzeile = 1 To 500
If Sheets("Dateneingabe").Cells(lzeile, 7).Value = "Schubert" Or Sheets("Dateneingabe").Cells( _
lzeile, 7).Value = "Werner " Then
Zähler2 = Zähler2 + 1
End If
Next
Sheets("Auswertung").Range("L3").Value = Zähler1
Sheets("Auswertung").Range("K3").Value = Zähler2
Cells(3, 1) = WorksheetFunction.CountA(Sheets(1).Range("A:A")) - 1
With Sheets("Dateneingabe")
Sheets("Auswertung").Range("M3").Value = _
WorksheetFunction.CountBlank(.Range("G1:G" & .Cells(Rows.Count, 7).End(xlUp).Row))
End With
Kann mir bitte jemand weiterhelfen :(
Liebe Grüße,
Mila

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

Betreff
Datum
Anwender
Anzeige
AW: Count if
03.12.2020 14:22:58
Werner
Hallo,
das wäre dann ein Fall für den Else Zweig.
For lzeile = 1 To 500
If Sheets("Dateneingabe").Cells(lzeile, 7).Value = "Schubert" _
Or Sheets("Dateneingabe").Cells(lzeile, 7).Value = "Werner " Then
Zähler2 = Zähler2 + 1
Else
Zähler1 = Zähler1 + 1
End If
Next
Sheets("Auswertung").Range("L3").Value = Zähler1
Sheets("Auswertung").Range("K3").Value = Zähler2
Cells(3, 1) = WorksheetFunction.CountA(Sheets(1).Range("A:A")) - 1
With Sheets("Dateneingabe")
Sheets("Auswertung").Range("M3").Value = _
WorksheetFunction.CountBlank(.Range("G1:G" & .Cells(Rows.Count, 7).End(xlUp).Row))
End With
Gruß Werner
Anzeige
AW: Count if
03.12.2020 14:36:53
Mila
Hallo Werner,
vielen lieben Dank, das klappt schonmal, jetzt habe ich allerdings noch ein Problem:
Ich habe ja mein i bis 500 definiert, ich möchte aber das nur die Länge der Spalte 1 Sheets("Dateneingabe") berücksichtigt wird, wie kann ich das denn am besten einbauen?
Vielen Dank :)
AW: Count if
03.12.2020 14:44:15
Werner
Hallo,
warum häppchenweise und nicht gleich?
With Worksheets("Dateneingabe")
For lzeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(lzeile, 7).Value = "Schubert" Or .Cells(lzeile, 7).Value = "Werner " Then
Zähler2 = Zähler2 + 1
Else
Zähler1 = Zähler1 + 1
End If
Next
Worksheets("Auswertung").Range("L3").Value = Zähler1
Worksheets("Auswertung").Range("K3").Value = Zähler2
.Cells(3, 1) = WorksheetFunction.CountA(Sheets(1).Range("A:A")) - 1
Worksheets("Auswertung").Range("M3").Value = _
WorksheetFunction.CountBlank(.Range("G1:G" & .Cells(.Rows.Count, 7).End(xlUp).Row))
End With
Gruß Werner
Anzeige
AW: Count if
03.12.2020 14:55:29
Mila
Vielen Dank, das klappt schonmal :)
Aber irgendwas stimmt da noch leider nicht, die Werte die bei L eingetragen werden entsprechen nicht dem Ergebnis
Es müssten alle Felder die einen Text beinhalten, aber kein Werner und Schubert und keine leeren Zeilen berücksichtigt werden, wo ist denn da der Fehler?
AW: Count if
03.12.2020 15:31:18
Werner
Hallo,
entweder so:
Public Sub aaa()
With Worksheets("Dateneingabe")
For lzeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(lzeile, 7).Value = "Schubert" Or .Cells(lzeile, 7).Value = "Werner " Then
Zähler2 = Zähler2 + 1
Else
If .Cells(lzeile, 7)  "" Then
Zähler1 = Zähler1 + 1
End If
End If
Next
Worksheets("Auswertung").Range("L3").Value = Zähler1
Worksheets("Auswertung").Range("K3").Value = Zähler2
.Cells(3, 1) = WorksheetFunction.CountA(Sheets(1).Range("A:A")) - 1
Worksheets("Auswertung").Range("M3").Value = _
WorksheetFunction.CountBlank(.Range("G1:G" & .Cells(.Rows.Count, 7).End(xlUp).Row))
End With
End Sub
oder so, du zählst doch die leeren Zellen sowieso schon:
Public Sub aaa()
With Worksheets("Dateneingabe")
For lzeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(lzeile, 7).Value = "Schubert" Or .Cells(lzeile, 7).Value = "Werner " Then
Zähler2 = Zähler2 + 1
Else
Zähler1 = Zähler1 + 1
End If
Next
Worksheets("Auswertung").Range("L3").Value = Zähler1
Worksheets("Auswertung").Range("K3").Value = Zähler2
.Cells(3, 1) = WorksheetFunction.CountA(Sheets(1).Range("A:A")) - 1
Worksheets("Auswertung").Range("M3").Value = _
WorksheetFunction.CountBlank(.Range("G1:G" & .Cells(.Rows.Count, 7).End(xlUp).Row))
.Range("L3") = Zähler1 - Worksheet("Auswertung").Range("M3")
End With
End Sub

Dann fällt die zusätzliche Prüfung innerhalb der If-Schleife weg.
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige