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:
- Der Anwender wählt einen Eintrag aus einer Dropdown-Liste.
- Excel schreibt zunächst den gewählten Reintext in die Zelle.
- Das Worksheet_Change-Ereignis erkennt die Änderung.
- Wenn:
- die Zelle eine Validierungsliste besitzt (HasValidationList)
- und die Makro-Option aktiv ist
- 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:
- Ribbon → Makros an/abschalten
- Wechsel auf Blatt „Setup“
- 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.