Ich möchte folgendes tun: Im zweiten Arbeitsblatt möchte ich eine Tabelle, in welcher in der ersten Spalte fortlaufende Nummern stehen. Diese Nummern kommen auf den Arbeitsblättern 3-?? in unterschiedlicher Anzahl vor. Nun soll sobald in der ersten Spalte eine Nummer eingegeben wird (also eine neue fortlaufende Nummer hinzugefügt wird) gezählt werden, wie oft genau diese Nummer (also 001 ungleich 0012) in den Arbeitsblättern 3-?? insgesamt vorkommt und in Spalte zwei ausgegeben werden. Es können in einem Feld auch mehrere Nummern stehen, also z.B. "001, 002". Dann sollte es bei 001 und 002 eins anzeigen.
als erster Ansatz könntest du dir mal diese benutzerdefinierte Funktion von Thomas Ramel anschauen. Die Funktion musst du in ein allgemeines Modul deiner Tabelle kopieren.
Code:
Public Function ZählenWennTabellen(Tab1 As String, _ Tab2 As String, _ Bereich As Range, _ Suchkriterium As String) As Double
Dim intI As Integer Dim intJ As Integer Dim intTab As Integer Dim Wert As Double
If Suchkriterium = "" Then ZählenWennTabellen = 0 Exit Function End If
intI = Worksheets(Tab1).Index intJ = Worksheets(Tab2).Index
For intTab = intI To intJ Set Bereich = ActiveWorkbook.Worksheets(intTab) _ .Range(Bereich.Address) Wert = Wert + Application.WorksheetFunction.CountIf _ (Bereich, Suchkriterium) Next intTab ZählenWennTabellen = Wert End Function
Der Aufruf erfolgt mit (vgl. auch die Erläuterung direkt im Code):
Zitat:Es können in einem Feld auch mehrere Nummern stehen, also z.B. "001, 002". Dann sollte es bei 001 und 002 eins anzeigen.
Wenn ich diese Aussage richtig verstehe, dann ist das mit dem obigen Code nicht machbar.
Evtl. wäre auch eine Pivottabelle mit entsprechender Konsolidierung eine Alternative, aber um das zu entscheiden verrätst du zuwenig über deinen genauen Tabellenaufbau.
Gruß Peter
Folgende(r) 1 Nutzer sagt Danke an Peter für diesen Beitrag:1 Nutzer sagt Danke an Peter für diesen Beitrag 28 • Hawkeye
Habe die Liste jetzt nochmals etwas umgestellt und an diesen Beitrag angehängt, so ist es wohl einfacher
Auf dem Blatt Component List sollen die Einheiten aufgelistet werden. Unter Part Number steht der zu suchende Wert und bei Parts needed sollte das Total der Tabellenblätter 3-"zum letzten" stehen.
Die Werte stehen auf den Tabellenblättern immer in Spalte H und I (H die "Part Number" und I die Anzahl). Es kommen noch ca. 30 Blätter wie das 006_KY 58 dazu.
Dim intI As Integer Dim intJ As Integer Dim intTab As Integer Dim Summe As Double
If Suchkriterium = "" Then SummeWennTabellen = 0 Exit Function End If
If Summe_Bereich Is Nothing Then Set Summe_Bereich = Bereich
intI = Worksheets(Tab1).Index intJ = Worksheets(Tab2).Index
For intTab = intI To intJ Set Bereich = ActiveWorkbook.Worksheets(intTab) _ .Range(Bereich.Address) Set Summe_Bereich = ActiveWorkbook.Worksheets(intTab). _ Range(Summe_Bereich.Address)