Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform 2 Bildschirme immer auf der Excelseite

Userform 2 Bildschirme immer auf der Excelseite
03.06.2016 12:51:35
Joni
Hallo,
ich verwende 2 Bildschirme (auf der einen Seite Excel, auf der anderen den VBA-Editor). Jetzt hätte ich gerne, dass die Userforms immer auf der Excelseite aufgehen. Wenn ich die Startposition manuell angebe ist das kein Problem, geht das aber auch wenn ich als Starteinstellung Bildschirmmitte (StartUpPosition 2) gewählt habe? Wie kann ich dem Formular mitgeben, dass der Bildschirm gemeint ist, auf dem Excel läuft oder geht das nur wenn ich die Position von Hand setze?
Danke für eure Hilfe.
Gruß Joni

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA : UserForm an Mappenfenster ausrichten
03.06.2016 13:29:10
NoNet
Hallo Joni,
eine vereinfachte (wenn auch nicht ganz korrekte) Lösunge wäre es, das Fenster beim Anzeigen an die Pos. der Mappe zu verschieben. Kopiere dazu diesen Code in das Klassenmodul des UserForms :
Private Sub UserForm_Activate()
Dim objApp As Object
Set objApp = ThisWorkbook.Windows.Application
With objApp
Me.Left = .Left + 100
End With
End Sub
Korrekterweise müsste es eigentlich so lauten :
Me.Left = (.Left + .Width) / 2 - Me.Width / 2
Da aber Excel das Anwendungsfenster und das UserForm in unterschiedlichen Punkt-Einheiten (Pixel/Pitches/Points ?) berechnet, stimmt das in der Praxis nicht immer überein.
Ich hoffe, das hilft Dir weiter.
Salut, NoNet

Anzeige
AW: VBA : UserForm an Mappenfenster ausrichten
03.06.2016 14:09:16
Joni
Hallo NoNet,
das ist mir klar und so mache ich es auch. Ich hätte nur gerne die StarUpPosition genutzt da weniger aufwändig weil das bereits in allen Userforms so hinterlegt ist. Ich habe es ja leider schon befürchtet, dass ich nicht drumherum komme.
Falls noch jemand eine Idee hat, bitte gerne.
Trotzdem danke für deinen Versuch.
Schöne Grüße Joni
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform auf zwei Bildschirmen richtig positionieren


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel VBA auf zwei Bildschirmen korrekt zu positionieren, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein UserForm hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf das Projekt, wähle „Einfügen“ und dann „UserForm“.

  3. Öffne das Klassenmodul des UserForms: Doppelklicke auf das UserForm, um den Code-Editor zu öffnen.

  4. Füge folgenden Code hinzu, um die Position des UserForms anzupassen:

    Private Sub UserForm_Activate()
       Dim objApp As Object
       Set objApp = ThisWorkbook.Windows.Application
    
       ' Berechne die Position in der Bildschirmmitte
       Me.Left = (objApp.Left + objApp.Width) / 2 - Me.Width / 2
       Me.Top = (objApp.Top + objApp.Height) / 2 - Me.Height / 2
    End Sub
  5. Testen: Starte das UserForm, um zu sehen, ob es korrekt auf dem Bildschirm angezeigt wird, auf dem Excel geöffnet ist.


Häufige Fehler und Lösungen

  • Userform wird auf dem falschen Bildschirm angezeigt: Stelle sicher, dass Du die richtigen Eigenschaften für die Bildschirmmitte verwendest. Manchmal kann es nötig sein, die Position manuell zu setzen, wenn Excel auf zwei Bildschirmen läuft.

  • Position stimmt nicht: Wenn die Position nicht korrekt ist, kann das an unterschiedlichen Punkt-Einheiten liegen. Stelle sicher, dass Du die Maßeinheit in Deinem Code überprüfst.


Alternative Methoden

Eine alternative Methode, um die Userform zu positionieren, wäre:

  • Manuelles Setzen der Position: Wenn Du die Userform immer auf dem Hauptbildschirm haben möchtest, kannst Du die Position manuell setzen, anstatt die StartUpPosition zu verwenden.

    Me.Left = 0 ' oder eine andere feste Position
    Me.Top = 0
  • Verwendung von Application.ScreenWidth und Application.ScreenHeight: Diese Eigenschaften helfen, die Größe des Bildschirms zu ermitteln, um die Userform entsprechend anzupassen.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wenn Du die Userform immer in der Bildschirmmitte anzeigen möchtest, während Du Excel auf zwei Bildschirmen benutzt:

Private Sub UserForm_Activate()
    With Application
        Me.Left = (.Width / 2) - (Me.Width / 2)
        Me.Top = (.Height / 2) - (Me.Height / 2)
    End With
End Sub

Wenn Du diese Methode verwendest, wird die Userform immer zentriert, egal auf welchem Bildschirm Excel geöffnet ist.


Tipps für Profis

  • Verwende UserForm.Show vbModeless: Das ermöglicht, dass Excel weiterhin genutzt werden kann, während das UserForm offen ist.
  • Verwalte mehrere UserForms: Wenn Du mehrere UserForms hast, kannst Du eine zentrale Funktion erstellen, die die Position aller Forms verwaltet.
  • Testen auf verschiedenen Bildschirmauflösungen: Achte darauf, dass die Userform auf verschiedenen Monitoren und Auflösungen gut aussieht.

FAQ: Häufige Fragen

1. Wie kann ich die Userform immer auf dem Hauptbildschirm anzeigen?
Du kannst die Position der Userform manuell setzen, indem Du die Left und Top Eigenschaften direkt anpasst.

2. Warum wird meine Userform nicht korrekt zentriert?
Das kann an unterschiedlichen Punkt-Einheiten zwischen Excel und dem UserForm liegen. Überprüfe die Berechnungen in Deinem Code und passe sie gegebenenfalls an.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige