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

Tabellenblatt durch Kriterienfeld selektieren

Tabellenblatt durch Kriterienfeld selektieren
27.11.2007 09:45:24
Stefan
Hi!
Meine Problemstellung:
Ich baue eine statistische Auswertung auf, in der verschiedene Maschinen auf jeweils einem eigenen Tabellenblatt dargestellt werden. Zusätzlich soll es eine Zusammenfassung geben, in der die Werte der Maschinen abteilungsweise aufsummiert ausgegeben werden.
Hierfür wird auf den Maschinentabellenblättern jeweils an gleicher Stelle die zugehörige Abteilung angegeben.
Ich suche nun eine Möglichkeit, wie ich auf dem Abteilungsblatt bewerkstelligen kann, dass die richtigen Maschinen (also die, wo die entsprechende Abteilung vermerkt ist) selektiert werden. Einfach gesprochen sollen sämtliche Tabellenblätter der Datei durchgegangen werden und kontrolliert werden, welche Abteilung in einem festen Feld eingetragen ist und anhand dessen summiert werden. Es wäre also so ähnlich wie die SUMMEWENN-Formel, nur eben blätterübergreifend.
Kennt da jemand eine Möglichkeit?
Da die Datei auch verschickt und von Personen ohne großartige Excelkenntnisse u.U. auch bearbeitet werden soll, wären Makros oder Pivot-Tabellen, die immer wieder aktualisiert werden müssten nicht die richtige Wahl. Es soll also rein formelmäßig funktionieren.
Grüße und Danke,
Stefan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt durch Kriterienfeld selektieren
27.11.2007 11:31:00
fcs
Hallo Stefan,
die verschiedenen SUMMEN und Array-Formeln funktionieren über mehrere Tabellen nicht unbedingt.
Das Problem läßt sich meines Wissens nur mit eienr benutzerdefinierten Funktion lösen.
Nachfolgend ein Beispiel, wobei "Übersicht" das Blatt mit der Zusammenfassung ist in dem Funktion verwendet wird.
Gruß
Franz

Public Function SummeBlaetter(Abteilung As String) As Double
Dim wks As Worksheet
Application.Volatile
For Each wks In ThisWorkbook.Worksheets
If wks.Name  "Übersicht" Then
If wks.Range("A1") = Abteilung Then
SummeBlaetter = SummeBlaetter + wks.Range("B2")
End If
End If
Next
End Function


Anzeige
AW: Tabellenblatt durch Kriterienfeld selektieren
27.11.2007 14:20:04
Stefan
Danke
Komme damit allerdings nicht wirklich zurecht. Was genau muss ich damit tun und wie spreche ich die Funktion an?

AW: Tabellenblatt durch Kriterienfeld selektieren
27.11.2007 16:12:59
fcs
Hallo Stefan,
die Funktion muss du im VBA-Editor in ein Modul in der Datei einfügen, in der die Function benutzt werden soll.
Die Funktion wird dann wie jede andere EXCEL-Funktion eingegeben.
z. Beispiel:

=SummeBlaetter(C3)
In C3 der Zusammenfassung steht dann der Abteilungsname, für den die Summe
berechnet werden soll
Public Function SummeBlaetter(Abteilung As String) As Double
Dim wks As Worksheet
Application.Volatile
For Each wks In ThisWorkbook.Worksheets
If wks.Name  "Übersicht" Then
If wks.Range("A1") = Abteilung Then
SummeBlaetter = SummeBlaetter + wks.Range("B2")
End If
End If
Next
End Function


Im Code der Function muss du
- ggf. Tabellenblattnamen für Zusammenfassung anpassen (im Beispiel: Übersicht)
- ggf. die Zelladresse anpassen in der in den Maschinenblättern die Abteilung steht (im Beispiel: A1)
- ggf. die Zelladresse anpassen deren Wert in den Maschinenblättern summiert werden soll (im Beispiel: B2)
Gruß
Franz

Anzeige
AW: Tabellenblatt durch Kriterienfeld selektieren
28.11.2007 08:42:00
Stefan
Leider funktioniert es nicht, es erscheint nur "#NAME?".
Habe die Funktion im VBA-Editor unter "DieseArbeitsmappe" kopiert.
Wo ich aber auch ein Problem sehe:
Die Funktion summiert ja immer nur ein Feld auf. Ich muss allerdings durchaus über 100 verschiedene Summen bilden, das heißt, im Beispiel "B2" müsste flexibel sein, so das ich die Formel auch einfach "runterziehen" kann.

AW: Tabellenblatt durch Kriterienfeld selektieren
28.11.2007 12:01:00
fcs
Hallo Stefan,
die Funktion darf nicht unter "DieseArbeitsmappe" einfügt werden, sondern muss in einem Modul. ggf. muss du erst im VBA-Editor ein Modul einfügen.
Flexibilität der Adresse "B1":
Das geht auch, dann muss man die Zelladressen auch als Parameter an die Funktion übergeben.
Gruß
Franz

Public Function SummeBlaetter(Abteilung As String, ZelleAdresse As String) As Double
Dim wks As Worksheet
Application.Volatile
For Each wks In ThisWorkbook.Worksheets
If wks.Name  "Übersicht" Then
If wks.Range("A1") = Abteilung Then
SummeBlaetter = SummeBlaetter + wks.Range(ZelleAdresse)
End If
End If
Next
End Function
Formelbeispiel:
=SummeBlaetter($B$1;"B" & ZEILE(B2))


Anzeige
AW: Tabellenblatt durch Kriterienfeld selektieren
28.11.2007 12:56:24
Stefan
Hey, danke, die Formel ansich funktioniert.
Das "Ziehen" geht aber nur nach unten, nicht zur Seite. Ich nehme an das liegt daran, dass "B" hier fest vorgegeben ist. Wie mach ich das ganze komplett flexibel?
Grüße,
Stefan

AW: Tabellenblatt durch Kriterienfeld selektieren
28.11.2007 16:57:00
fcs
Hallo Stefan,
um das ganze noch flexibler zu machen muss man Zeile und Spalte als Parameter in der Funktion übergeben.
Falls es keine Probleme macht kannst du die If-Bedingung zur Prüfung des Blattes "Übersicht" weglassen.
Die Funktion muss dann etwas modifiziert werden.

Public Function SummeBlaetter(Abteilung As String, Zeile As Long, Spalte As Integer) As Double
Dim wks As Worksheet
Application.Volatile
For Each wks In ThisWorkbook.Worksheets
If wks.Range("A1") = Abteilung Then
SummeBlaetter = SummeBlaetter + wks.Cells(Zeile, Spalte)
End If
Next
End Function
Formel-Beispiel:
=SummeBlaetter($B$1;ZEILE(B4);SPALTE(B4))


Die Zellen für die Funktionen ZEILE und SPALTE muss du dann entsprechend anpassen.
Gruß
Franz

Anzeige
AW: Tabellenblatt durch Kriterienfeld selektieren
29.11.2007 13:54:08
Stefan
Danke, funktioniert.
Nur mit einer Einschränkung, ich muss in der Formel eine andere Reihenfolge beachten, zuerst SPALTE und dann ZEILE, also SummeBlaetter($b§1;SPALTE(B4);ZEILE(B$)). Woran liegt dies, leuchtet mir momentan nicht wirklich ein? Weil eigentlich ist die Reihenfolge ja anders definiert.

AW: Tabellenblatt durch Kriterienfeld selektieren
28.11.2007 13:02:00
Stefan
Gleich noch eine Frage:
If wks.Name "Übersicht" Then
ist doch eigentlich nur dazu da, um die Übersichtsseite auszuschließen. Wenn auf dieser Seite in dem Feld, wo ich die Abteilung vorgebe sowieso nichts drinsteht, dann kann ich die Zeile in der Formel doch eigentlich weglassen, da die Übersichtssteite ja eh nicht einbezogen wird.
Sehe ich das richtig?

Anzeige
AW: Tabellenblatt durch Kriterienfeld selektieren
29.11.2007 13:55:00
Stefan
War ich wohl zu voreilig, funktioniert alles bestens so, wie du geschrieben hast, danke.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige