▄berlagerte Produkte aus Tabellen suchen und auflisten

Meine Arbeitsmappe enthΣlt verschiedene Tabellen mit Materialien und dem jeweils zugeh÷rigen Verfallsdatum. Nun m÷chte ich in einer weiteren Tabelle automatisch alle verfallenen Materialien auflisten. Kann ich das in Excel ohne einen gro▀en Programmieraufwand realisieren?

Ganz ohne Programmierung kommen Sie da nicht aus. Mit einem relativ kleinen VBA-Makro k÷nnen Sie diese Aufgabe jedoch zumindest bei gleich aufgebauten Einzeltabellen meist recht elegant l÷sen. In der ge÷ffneten Arbeitsmappe fⁿhren Sie den Befehl ╗Extras | Makro | Makros½ aus. Dann geben Sie dem Makro einem Namen wie zum Beispiel äVerfallô und klicken auf die SchaltflΣche ╗Erstellen½. Im VBA-Editor geben Sie nun folgende Programmzeilen ein: (Das Listing finden Sie auf der Heft-CD unter CHIP-Code verfall.) Sub Verfall() Dim i, j, n, x, y As Variant Dim info As String x = Sheets.Count Sheets.Add After:=Worksheets(x) Sheets(x + 1).Select Sheets(x + 1).Name = äVerfallene Produkteô n = 2 For i = 1 To x For j = 1 To 1000 If Worksheets(i) .Cells(j, 3) <> äô Then If Worksheets(i) .Cells(j, 3) < Now Then Sheets(i).Select Rows(j).Select Selection.Copy Sheets(x + 1).Select Rows(n).Select ActiveSheet.Paste n = n + 1 End If End If Next j Next i Application.CutCopyMode = False Sheets(x + 1).Select Range(äA1ô).Select info = Str(n - 2) + ä Produkte sind verfallenô MsgBox (info) End Sub Nach der Definition der n÷tigen Variablen ermittelt das Makro die Anzahl der Tabellen und fⁿgt nach dem letzten Blatt die neue Tabelle ╗Verfallene Produkte½ ein. Die Variable ╗n½ dient als ZΣhler fⁿr die verfallenen Produkte und zur Ansteuerung der richtigen Zeile in der Auflistung. Die beiden Schleifen mit ╗i½ und ╗j½ durchlaufen alle Tabellen und darin jeweils 1.000 Zeilen. Diesen Wert k÷nnen Sie anpassen, je nachdem, wie viele Materialien eine Tabelle maximal enthΣlt. Im gezeigten Beispiel setzt die Gr÷▀e ╗Worksheets(i). Cells(j,3)½ voraus, dass die Verfallsdaten in jeder Tabelle in der dritten Spalte stehen. Wenn diese Zelle nicht leer ist, prⁿft die nΣchste Anweisung, ob das Datum vor dem aktuellen Zeitpunkt liegt. In diesem Fall kopiert das Makro die betreffende Zeile in die neue Tabelle mit den verfallenen Produkten. Am Ende schaltet das Makro den Kopiermodus wieder aus und informiert ⁿber die Anzahl der verfallenen Produkte. Falls Ihre Einzeltabellen unterschiedlich aufgebaut sind, mⁿssen Sie die erste Schleife entfernen und die darin stehenden Anweisungen wiederholt in den Programmcode einfⁿgen. Dann k÷nnen Sie fⁿr jede Tabelle getrennt die passenden Einstellungen vornehmen. Bevor Sie das Makro zum nΣchsten Mal ausfⁿhren, mⁿssen Sie die zuvor angelegte Tabelle ╗Verfallene Produkte½ l÷schen oder zumindest umbenennen. Das Makro legt diese Tabelle stets neu an.