Mike verwendet VLOOKUP regelmäßig in seinen Arbeitsblättern, fragt sich jedoch, ob es eine Möglichkeit gibt, die Funktion dazu zu bringen, ein Makro auszuführen, wenn sie keinen Wert zurückgibt.

Es gibt verschiedene Möglichkeiten, wie Sie dieses Problem angehen können. Zunächst können Sie mithilfe einer bedingten Formel bestimmen, ob VLOOKUP einen Wert oder einen Fehler zurückgibt. Wenn ein Fehler zurückgegeben wird, kann die Formel eine benutzerdefinierte Funktion (MyUDF) ausführen, wie hier gezeigt:

=IF(ISERROR(VLOOKUP(B2,CODES,1,FALSE)),MyUDF(), VLOOKUP(B2,CODES,1,FALSE))

Sie müssen lediglich sicherstellen, dass Sie Ihren tatsächlichen VLOOKUP-Code (zweimal) in die Formel einfügen und MyUDF durch den Namen der benutzerdefinierten Funktion ersetzen, die Sie auslösen möchten.

Ein anderer Ansatz besteht darin, einen Ereignishandler für das Ereignis „Berechnen“ einzurichten.

Dies kann wie im Folgenden recht einfach sein:

Private Sub Worksheet_Calculate()

If IsError(Range("A1")) Then Call Macro1 End Sub

In diesem Beispiel wird davon ausgegangen, dass sich die VLOOKUP-Formel in Zelle A1 befindet und Sie ein Makro mit dem Namen Macro1 ausführen möchten, wenn VLOOKUP einen Fehler zurückgibt. Ihr Makro kann dann alles tun, was Sie brauchen. Denken Sie auch daran, dass der Ereignishandler „Berechnen“ im ThisWorksheet-Objekt platziert werden sollte.

Sie können den Calculate-Ereignishandler auch etwas robuster gestalten, wie hier gezeigt:

Private Sub Worksheet_Calculate()

On Error GoTo myMac     Worksheets(1).Select     If Range("A1").Value Then         Exit Sub     End If myMac:

Macro1   'macro to run if VLOOKUP fails End Sub

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (10107) gilt für Microsoft Excel 2007 und 2010. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: