ein Problem gelöst und direkt das Nächste

Ich habe in einer Tabelle zwei Listenfelder. Das eine mit verschiedenen Kategorien und das andere mit Unterkategorien.
Nun hänge ich daran in dem zweiten Listenfeld die Einträge zu ändern, je nach dem, welche Oberkategorie ausgewählt ist.
Bis jetzt habe ich im zweiten Listenfeld einen Quellbereich angegeben und in diesem ändern sich die Einträge über eine WENN Funktion. Das Problem ist, das die verschiedenen Kategorien unterschiedlich viele Unterkategorien haben. Das heißt mit meiner jetzigen Lösung sind bei den Kategorien mit weniger Unterkategorien einige Zeilen einfach leer.
Nun möchte ich über ein Makro den Quellbereich des Listenfeldes anpassen, je nach dem, welche Kategorie ausgewählt ist. Mit dem Xray Tool bin ich auf die Eigenschaft ListEntrySource -> CellRange gestoßen. Das Problem ist, das diese anscheinend Schreibgeschützt ist.
Habt ihr Ideen, wie das gehen könnte?
Vielen Dank
Oscar