Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: UserForm Position

UserForm Position
20.04.2018 07:28:49
stef26
Guten Morgen liebe Excel Profis,
ich habe in meiner Excel Tabelle ein Userform bei dem ich eure Hilfe bei der Positionierung bräuchte.
Bisher habe ich das Userform über Top Left positioniert, was bei einem Bildschirm wunderbar funktioniert.
Nun haben einige Anwender aber 2 Monitore. Nun tritt der Fall auf, dass die Excel Anwendung auf dem linken und die User Form aber auf dem rechten Bildschirm liegt.
Kann man die Pos der Userform irgendwie auch anders positionieren, so das Anwendung und Userform auf dem selben Bildschirm sind?
LG
Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Die Positionierung der UserForm kannst Du...
20.04.2018 07:43:28
Case
Hallo, :-)
... mal so probieren: ;-)
Option Explicit
Private Sub UserForm_Activate()
StartUpPosition = 0
With Application
Left = .Left + .Width / 2 - Width / 2
Top = .Top + .Height / 2 - Height / 2
End With
End Sub
Servus
Case

Anzeige
AW: Die Positionierung der UserForm kannst Du...
20.04.2018 11:27:38
stef26
Hallo Case,
besten Dank ich probiers gleich mal aus.
Danke
Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

UserForm Position in Excel VBA optimieren


Schritt-für-Schritt-Anleitung

Um die Position eines UserForms in Excel VBA festzulegen, insbesondere wenn mehrere Bildschirme verwendet werden, kannst Du folgenden VBA-Code verwenden. Dieser Code positioniert das UserForm so, dass es immer auf dem Bildschirm erscheint, auf dem die Excel-Anwendung gestartet wurde.

  1. Öffne den Visual Basic for Applications (VBA) Editor mit ALT + F11.
  2. Wähle das UserForm aus, dessen Position Du ändern möchtest.
  3. Füge den folgenden Code in das UserForm-Modul ein:
Option Explicit
Private Sub UserForm_Activate()
    StartUpPosition = 0
    With Application
        Left = .Left + .Width / 2 - Width / 2
        Top = .Top + .Height / 2 - Height / 2
    End With
End Sub
  1. Schließe den VBA-Editor und teste das UserForm.

Dieser Code sorgt dafür, dass das UserForm immer zentriert auf dem Bildschirm erscheint, auf dem die Excel-Anwendung geöffnet wurde. Dies ist besonders nützlich, wenn Du mit Excel VBA UserForm Position 2 Bildschirme arbeitest.


Häufige Fehler und Lösungen

  • Fehler: UserForm erscheint auf dem falschen Bildschirm

    • Lösung: Stelle sicher, dass der oben angegebene Code korrekt in das UserForm eingefügt wurde und dass Du Excel auf dem gewünschten Monitor geöffnet hast.
  • Fehler: UserForm bleibt an einer festen Position

    • Lösung: Vergewissere Dich, dass die UserForm_Activate-Subroutine richtig aufgerufen wird. Diese sollte automatisch ausgeführt werden, wenn das UserForm geöffnet wird.

Alternative Methoden

Wenn Du die UserForm Position festlegen möchtest, kannst Du auch die Top und Left Eigenschaften direkt zuweisen, anstatt den Code zur Berechnung der Position zu verwenden. Hier ein Beispiel:

UserForm1.Top = 100
UserForm1.Left = 200

Diese Methode ist einfach, bietet jedoch weniger Flexibilität, insbesondere bei der Verwendung von zwei Bildschirmen.


Praktische Beispiele

Ein einfaches Beispiel, wie Du die UserForm Position bei verschiedenen Monitor-Konfigurationen anpassen kannst:

Private Sub UserForm_Initialize()
    If Application.UsableWidth < 1920 Then
        ' Positioniere auf dem ersten Bildschirm
        Me.Left = 100
        Me.Top = 100
    Else
        ' Positioniere auf dem zweiten Bildschirm
        Me.Left = 2000
        Me.Top = 100
    End If
End Sub

Hierbei wird die Position basierend auf der Breite des verwendeten Bildschirms festgelegt.


Tipps für Profis

  • Verwende Userform Startup Position-Eigenschaften, um die Platzierung des UserForms automatisch zu steuern.
  • Teste Deine Formulare auf verschiedenen Bildschirmkonfigurationen, um sicherzustellen, dass die Positionierung wie gewünscht funktioniert.
  • Berücksichtige, dass die Bildschirmauflösung und -nutzung den Platz für das UserForm beeinflussen können.

FAQ: Häufige Fragen

1. Wie kann ich die UserForm immer in der Mitte des Bildschirms platzieren?
Verwende den Code, den ich in der Schritt-für-Schritt-Anleitung bereitgestellt habe. Dieser zentriert das UserForm auf dem aktiven Bildschirm.

2. Was passiert, wenn ich mehrere Monitore mit unterschiedlichen Auflösungen habe?
Der Code passt sich an, solange Du sicherstellst, dass die UserForm_Activate-Routine korrekt implementiert ist. Teste die Anwendung auf jedem Monitor, um sicherzustellen, dass die Positionierung funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige