Produkte mit Verfallsdatum 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 gro▀en Programmieraufwand umsetzen?

Ganz ohne Programmierung kommen Sie 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 oder Sie kopieren das Listing von 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.