Wenn in einem Netzwerk bzw. mehreren Benutzern Dateien ausgetauscht werden, kommt es immer wieder vor, dass unterschiedliche Versionen in Excel zum Einsatz kommen. Das führt dazu, dass bestimmte Funktionen nicht zur Verfügung stehen. Neu sind beispielsweise seit 2007 folgende Funktionen:

  • SUMMEWENNS
  • ZÄHLENWENNS
  • alle Funktionen des Add-in „Analyse-Funktionen“
  • MITTELWERTWENN und MITTELWERTWENNS

Ich möchte hier nur mal die beiden Funktionen ISTGERADE und ISTUNGERADE herausgreifen, und an ihnen exemplarisch demonstrieren, wie man mittels eines Add-Ins diese auch für Versionen unter 2007 (auch ohne installierten „Analyse-Funktionen“-Addin) verwenden kann. 

Funktion ISTGERADE und ISTUNGERADE

Erläuterungen:

  • Beide Funktionen nehmen eine Double-Zahl (myZahl) als Parameter an.
  • ISTGERADE überprüft, ob myZahl durch 2 teilbar ist (d.h., ob der Rest der Division durch 2 gleich 0 ist). Ist dies der Fall, gibt die Funktion True zurück, was bedeutet, dass die Zahl gerade ist. Andernfalls gibt sie False zurück.
  • ISTUNGERADE funktioniert ähnlich, aber im umgekehrten Sinne: Wenn myZahl durch 2 teilbar ist (also gerade), gibt sie False zurück. Andernfalls, wenn die Zahl ungerade ist (der Rest der Division durch 2 ist nicht 0), gibt sie True zurück.

Anmerkung: es ginge noch kürzer, aber so sind sie leicht nachvollziehbar

Das sind zwei wirklich einfache Funktionen, die keiner näheren Erklärung benötigen. Wenn man diese beiden Funktionen in als Add-in in Versionen nach 2007 einbindet, existieren diese beiden Funktionen doppelt:

Die Funktionen zur Verfügung stellen, sofern diese noch nicht existieren

Da die doppelte Auflistung der Formeln aber nicht zielführend ist, stellt sich nun die Frage, wie man es schafft, dass die Funktionen nur in Versionen von Excel eingebunden werden, in denen die Funktionen nicht automatisch zur Verfügung stehen. 

Ob die Funktionen automatisch zur Verfügung stehen, hängt von 2 Dingen ab:

  • einerseits von der eingesetzten Excel Version (ab 2007 stehen die Funktionen allen zur Verfügung)
  • andererseits vom aktivierten Addin-AnalyseFunktionen (vor 2007 konnten diejenigen auf die Funktionen zugreifen, die das Addin AnalyseFunktionen aktiviert hatten)

Erläuterungen:

  • Zuerst wird mit Option Explicit sichergestellt, dass alle Variablen deklariert werden müssen.
  • nachgeruesteteFunktionen ist eine globale Variable, die angibt, ob nachgerüstete Funktionen erforderlich sind.
  • TestnachgeruesteteFunktionen ist eine Prozedur, die überprüft, ob die Excel-Version älter als 11 ist und ob das Analyse-Funktionen-Addin nicht aktiviert ist. Ist dies der Fall, wird nachgeruesteteFunktionen auf True gesetzt.
  • Analysefunktionen ist eine Funktion, die überprüft, ob das Add-In „ANALYS32.XLL“ installiert ist.
  • Die Funktionen ISTGERADE und ISTUNGERADE werden nur definiert, wenn nachgeruesteteFunktionen True ist. Sie überprüfen, ob eine übergebene Zahl gerade bzw. ungerade ist.

Jetzt muss man es nur noch bewerkstelligen, dass die Funktion „TestnachgeruesteteFunktionen“ beim Start des Add-ins ausgeführt wird, damit die Variable nachgeruesteteFunktionen widerspiegelt, ob die Funktionen schon vorhanden sind, oder eben nicht.

Dafür fügt man folgenden Quellcode unter Add-in-Name \ Microsoft Excel Objekte \ DieseArbeitsmappe ein: