Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dialogelemente per VBA ändern

Dialogelemente per VBA ändern
24.09.2020 19:41:18
TomS
Hallo Allerseits,
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".
Userbild
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dialogelemente per VBA ändern
24.09.2020 21:12:32
Yal
Hallo TomS,
Meine Ansatz wäre:
Die Dialogs initialisieren sich mit dem Inhalt von public Variablen, die vorher z.b. beim Excel-Öffnen auf die richtige Sprache initialisiert wurden.
Ich gehe hier davon aus, dass sich die Sprache während eine Session nicht ändert.
Versuche auch die Anzahl an Dialog zu beschränken. Nach Ähnlichkeit gruppieren und innerhalb einer Gruppe ein "kann alles"-Dialog gestalten, wovon beim Situation-abhängige Initialisierung einige Element ausgeblendet werden.
Verarbeitung, immer gleich. Parameter, immer anders.
Viel Erfolg
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige