Skip to main navigation Skip to main content Skip to page footer

Ersetze den ausgewählten Dropdown-Text (Reintext) durch eine Formel

Einordnung

GetFormulaFromList ist ein zentrales Infrastruktur-Makro des MBT-RAT.
Es wird über Worksheet_Change-Ereignisse in mehreren Tabellenblättern automatisch ausgelöst.

Das Makro ist Bestandteil der sprach- und strukturabhängigen Datenlogik und dient nicht der Risikobewertung selbst.

Welche Blätter nutzen GetFormulaFromList?

GetFormulaFromList wird überall dort verwendet, wo:

  • Zellen mit Datenüberprüfung (Validation List) arbeiten
  • Dropdown-Werte sprachabhängig gespeichert werden sollen
  • die Funktion HasValidationList positiv prüft

Konkret nachweisbar ist die Nutzung u. a. in:

  • Sheet_ProjectData (Blatt „Projektdaten“)
  • Sheet_RiskAssessment (Blatt „Risikobeurteilung“)
  • weiteren Blättern mit Dropdown-Logik

Im Blatt „Projektdaten“ erfolgt z. B. im Worksheet_Change-Ereignis der Aufruf:

Target.Formula = GetFormulaFromList("Content", Target)

Das bedeutet:

  • Die Zelle wird nicht mit Text gefüllt,
  • sondern mit einer Formel, die über GetFormulaFromList erzeugt wird.

Was macht GetFormulaFromList technisch?

Der Ablauf ist wie folgt:

  1. Der Anwender wählt einen Eintrag aus einer Dropdown-Liste.
  2. Excel schreibt zunächst den gewählten Reintext in die Zelle.
  3. Das Worksheet_Change-Ereignis erkennt die Änderung.
  4. Wenn:
    • die Zelle eine Validierungsliste besitzt (HasValidationList)
    • und die Makro-Option aktiv ist
  5. dann wird der Zellinhalt ersetzt durch:

Target.Formula = GetFormulaFromList(...)

Ergebnis

Die Zelle enthält danach:

  • keinen statischen Text
  • sondern eine Formel
  • mit Bezug auf die zugrunde liegende Listendefinition

Was ist der Vorteil von GetFormulaFromList?

1. Mehrsprachigkeit

Da die Zelle eine Formel enthält, die auf sprachabhängige Inhalte verweist:

  • werden Dropdown-Inhalte beim Sprachwechsel automatisch angepasst
  • bleibt die Anzeige synchron mit dem Blatt „Sprache“
  • entstehen keine „festgeschriebenen“ alten Sprachwerte

Ohne dieses Makro würden Dropdown-Auswahlen nach Sprachwechsel unverändert bleiben.

2. Strukturierte Referenzierung

Die Formel verweist auf:

  • Header-Keys
  • Sprachspalten
  • Listendefinitionen

Dadurch:

  • bleiben Begriffe normiert
  • werden Tippfehler vermieden
  • funktionieren Auswertungen stabil

3. Wartbarkeit

Änderungen im Blatt „Sprache“ wirken automatisch auf alle referenzierten Zellen.

Das ist entscheidend für:

  • Internationalisierung
  • Unternehmensanpassungen
  • zentrale Terminologiepflege

Wie kann GetFormulaFromList abgeschaltet werden?

In der VBA-Analyse sind folgende steuernde Variablen im Blatt „Setup“ sichtbar:

  • bGetFormulaFromList
  • UserAutoFillFormulasInLists
  • allgemeine Event-Steuerungen

Das Makro wird nur ausgeführt, wenn:

  • die entsprechende Boolean-Variable aktiviert ist
  • und Ereignismakros global nicht deaktiviert wurden

Abschalten erfolgt über:

  1. Ribbon → Makros an/abschalten
  2. Wechsel auf Blatt „Setup“
  3. Deaktivieren der Variablen:
    • bGetFormulaFromList
    • bzw. UserAutoFillFormulasInLists

Wirkung bei Deaktivierung

  • Dropdown-Werte bleiben als Reintext
  • Sprachumschaltung wirkt auf diese Zellen nicht mehr korrekt
  • Formelbezug wird nicht gesetzt

Das Abschalten ist nur für:

  • Debug-Zwecke
  • Entwicklungsarbeiten
  • gezielte Strukturänderungen

empfohlen.

Welche Fehler können auftreten?

1. Formel wird sichtbar angezeigt

Symptom:
Die Zelle zeigt z. B.:

=...

anstatt des erwarteten Textes.

Ursache:
Zellformat ist auf Text gesetzt.

Excel interpretiert die eingesetzte Formel dann als Zeichenkette.

Lösung:

  • Zellformat auf „Standard“ oder „Allgemein“ setzen
  • Dropdown erneut auswählen

2. Dropdown bleibt als Text stehen

Ursache:

  • Makros deaktiviert
  • bGetFormulaFromList = False
  • Datei in Excel Online geöffnet
  • Events global deaktiviert

3. Sprachwechsel wirkt nicht

Ursache:

  • Zellen enthalten statischen Text
  • Formel wurde manuell überschrieben
  • Makro war zum Zeitpunkt der Auswahl deaktiviert

4. #BEZUG! oder #NAME?

Ursache:

  • Listenbereiche verändert
  • HeaderKeys gelöscht
  • Namensbereiche beschädigt
  • Blatt „Sprache“ strukturell geändert

5. Endlosschleifen (theoretisch)

Da das Makro in Worksheet_Change läuft, muss intern mit:

Application.EnableEvents = False

gearbeitet werden.
Falls diese Steuerung bei manuellen Änderungen beschädigt wird, könnten Event-Schleifen auftreten.

Zusammenfassung

GetFormulaFromList ist ein infrastrukturelles Kernmakro des MBT-RAT.

Es sorgt dafür, dass:

  • Dropdown-Auswahlen formelbasiert gespeichert werden
  • Mehrsprachigkeit technisch funktioniert
  • Terminologie konsistent bleibt
  • Datenstruktur sauber referenziert wird

Es greift nicht in die Risikobewertung ein, sondern dient ausschließlich der technischen Datenlogik und Internationalisierung.