PDA

Vollständige Version anzeigen : Zählen über mehrere Tabellenblätter


andreashh
27.07.2012, 12:24
Hallo,
ich habe eine Arbeitsmappe mit mehreren Tabellenblättern. Jetzt möchte ich ab dem 5 Tabellenblatt jedes Tabellenblatt im Bereich P11:P18 nach Werten durchsuchen. Im Bereich P11:P18 können nur Zahlen stehen oder gar nichts. Die Anzahl der Tabellenblätter kann unterschiedlich sein. Ich möchte auch keine Summe errechnen, sondern nur die Anzahl der Eingaben. Das Ergebnis soll im Tabellenblatt Auswertung in Zelle A1 stehen. z.B.

Sheets("Auswertung").Range("A1") = WorksheetFunction.Count(Range("P11:P18"))


Mit einem Tabellenblatt ist es für mich kein Problem, aber mehrere Tabellenblätter schon.
Würde mich riesig freuen, wenn mir einer helfen könnte.

Vielen Dank
Andreas

hary
27.07.2012, 13:01
Hallo
ungetestet.
Sub zaehlen()
Dim wks As Worksheet
Dim zahl As Long
For Each wks In Worksheets
If wks.Name <> "Auswertung" Then
zahl = zahl + WorksheetFunction.Count(wks.Range("P11:P18"))
End If
Next
Sheets("Auswertung").Range("A1") = zahl
End Sub

gruss hary

andreashh
27.07.2012, 13:34
Hallo Hary,

vielen Dank für die schnelle Hilfe. Es funktioniert super. Ich wollte nur gerne, dass die Schleife erst ab den fünften Tabellenblatt anfängt zu zählen.

Ich hab das jetzt ein bisschen Anfängermäßig umgebaut. Nicht ganz so elegant wie Deine Lösung. Ich kann mir leider nur mit select weiterhelfen.

Sub zaehlen()
Dim zahl As Long
Dim AnzahlSheets As Integer


For AnzahlSheets = 1 To ThisWorkbook.Sheets.Count
If (AnzahlSheets > 4) Then
Sheets(AnzahlSheets).Select
zahl = zahl + WorksheetFunction.Count(Range("P11:P18"))
End If
Next
Sheets("Auswertung").Range("A1") = zahl
Sheets("Auswertung").Select
End Sub


Nochmal vielen Dank für die schnelle Hilfe.
Wünsche Dir ein schönes Wochenende.

Gruß Andreas

hary
27.07.2012, 13:43
Hallo
Sollte so passen.
Sub zaehlen()
Dim zahl As Long
Dim AnzahlSheets As Integer
For AnzahlSheets = 5 To ThisWorkbook.Sheets.Count
zahl = zahl + WorksheetFunction.Count(Sheets(AnzahlSheets).Range("P11:P18"))
Next
Sheets("Auswertung").Range("A1") = zahl
Sheets("Auswertung").Select
End Sub

gruss hary

andreashh
27.07.2012, 14:03
Hallo Hary,

nochmals vielen Dank. Sieht schon professioneller aus, als meine Select Lösung. :) Funktioniert auch bestens.

Habe mich riesig gefreut.

Viele Grüße Andreas