Leider muss ich etwas ausholen. Ich habe eine Exceldatei mit Makros + Dialogen. Das File ist mehrsprachig ausgeführt. In den Excelsheets direkt kann man dann die Übersetzung über eigene Funktion oder SVERWEIS implementieren. Die Dialoge sollen auch in der ausgewählten Sprache erscheinen. Dies wurde bis jetzt in jedem Dialog in einer Sub erledigt, die in der Initialize-Routine des Dialoges aufgerufen wurde. Da es nun immer mehr Dialoge werden, wollte ich dies in einem Modul zentralisieren. Der Namen des Dialoges sollte ans Modul übergeben werden und dort wird allen Captions der Label-Elemente der aktuellen String zugewiesen.
Hier habe ich ein Problem. Man kann von "außerhalb" des Dialoges nicht mehr an dessen Elemente (vorzugsweise Labels - Captions). Dies hatte ich probiert über ActiveWorkbook.VBProject.VBComponents(DialogName).Designer Controls(xx) zu bewerkstelligen. In der Initialisierungsphase ist ...Designer "Nothing".
Anderer Ansatz: bei einem Sprachwechsel pauschal alle Dialoge komplett durcharbeiten. Problem ist aber hier, daß das Projekt geschützt ist und im Normalbetrieb auch bleiben soll. Daher geht dies auch nicht. Auch wenn ich den Schutz (manuell) aufhebe, bleibt die Routine immer sporadisch hängen. Warum ist nicht nachvollziehbar. Auch diverse DoEvents haben nicht geholfen.
Hätte jemand noch eine Idee, wie man das anders bewerkstelligen könnte, oder sollte ich die Routine halt in jedem Dialog belassen?
VG
Tom