Don arbeitet in der Regel auf zwei Monitoren und hat mehrere Arbeitsmappen in derselben Excel-Instanz geöffnet. Er maximiert auch seine Fenster. (Er beschreibt sich selbst als einen Typ, der alles auf einen Schlag sieht.) Wenn Don kürzlich etwas getan hat, das ein modales Dialogfeld öffnet, wird das Feld hinter der Arbeitsmappe geöffnet, wodurch er das Dialogfeld nicht mehr sehen oder nicht mehr mit ihm interagieren kann es. Er fragt sich, ob es eine Möglichkeit gibt, die modalen Dialogfelder vor der Arbeitsmappe anzuzeigen.

Vor der Beantwortung sollte darauf hingewiesen werden, dass es zwei Arten von Dialogfeldern geben kann: modal und modelllos. Ein modellloses Dialogfeld ist praktisch unabhängig von dem Programm, zu dem es gehört. Ein gutes Beispiel für ein solches Dialogfeld ist das Dialogfeld Suchen und Ersetzen. Auf der anderen Seite ein modales Dialogfeld (mit dem Don Probleme hat)

muss beantwortet oder geschlossen werden, bevor Sie mit dem Programm weiterarbeiten können, zu dem das Dialogfeld gehört.

Es ist unklar, ob Dons Problem bei modalen Dialogfeldern liegt, die von Excel selbst generiert wurden, oder ob es sich um Dialogfelder handelt, die von Makros generiert wurden, über die Don die Kontrolle hat. Wenn es das erstere ist, kann sehr wenig getan werden; Die geschichtete Position des Dialogfelds wird vollständig vom Programm (und den Programmierern, die es erstellt haben) gesteuert. Mit anderen Worten, es würde eine Codeänderung erforderlich sein, damit das Dialogfeld über der Arbeitsmappe und nicht darunter angezeigt wird.

Verstehen Sie, dass es ein Szenario gibt, in dem das Problem möglicherweise nicht auf ein Excel-Programmierproblem zurückzuführen ist. Möglicherweise wird auf dem System eine Drittanbieteranwendung ausgeführt, die sich auf die Überlagerung von Dialogfeldern und deren übergeordneten Fenstern auswirkt. Die typischen Schuldigen in diesem Szenario sind speicherresidente Dienstprogramme, die sich zwingen, immer über dem zu erscheinen, was sonst noch auf dem Bildschirm angezeigt wird. Die einzige Möglichkeit, festzustellen, ob dies der Schuldige ist, besteht darin, das Laden solcher Dienstprogramme zu deaktivieren und in Excel ein modales Dialogfeld anzuzeigen. Wenn sich das Verhalten wieder normalisiert, kennen Sie die Ursache des Problems.

Wenn das Dialogfeld jedoch von einem von Don entwickelten Makro generiert wird, besteht die Lösung darin, den Code anzupassen, der das modale Dialogfeld generiert. (In Excel-Makros werden diese Arten von Dialogfeldern normalerweise über Benutzerformulare implementiert.)

Das Problem bei der Platzierung von Benutzerformularen in Szenarien mit mehreren Bildschirmen wird durch die manuelle Platzierung des Benutzerformulars in seinem Startcode behoben. Sie können beispielsweise eine Variation davon verwenden:

Load UserForm1 UserForm1.StartUpPosition = 0 UserForm1.Top = Application.Top + 25 UserForm1.Left = Application.Left + 25 UserForm1.Show

Möglicherweise müssen Sie mit der Platzierung experimentieren, aber das Festlegen der StartUpPosition-Eigenschaft auf 0 ist erforderlich, damit VBA weiß, dass Sie das Benutzerformular manuell lokalisieren möchten.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13349) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.