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

Position der Userform und verhalten festlegen

Forumthread: Position der Userform und verhalten festlegen

Position der Userform und verhalten festlegen
10.03.2017 20:02:04
Sunny
Hallo erstmal an alle.
Ich hab Schon wider zwei fragen.
1.Wie bekomme ich meine Userform an den rechter Rand Meiner Mappe ev vielleicht mit einem halben Zentimeter abstand, der abstand muss nicht unbedingt sein wenn es aufwendig ist.
2. Die der Inhalt der Mappe also die Zellen müssen auszahlbar sein während die userform geöffnet und der Wechsel zwischen den Tabellenblättern muss auch gehen aber sie soll nicht aufscheinen wenn ich zu einer anderen offenen Mappe Wechsel. Das mit dem auswählbar sein der Zellen und dem wechseln zwischen den Tabellenblättern hab ich ja hinbekommen mit Hilfe von google aber jetzt ist die Userform auch da wenn ich in eine andere Mappe Wechsel sie soll aber nur auf die eine Mappe beschränkt sein. also erst wider sichtbar und verwendbar sein wenn ich zurück Wechsel.
Ich glaub daran das es irgend eine Einstellung in den Eigenschaften geben muss aber ich finde sie nicht.
Kann mir bei den zwei Sachen vielleicht, bitte jemand Helfen.
Grüße Sunny
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
UserForm-Verhalten festlegen
10.03.2017 23:54:59
Matthias
Hallo
Code in DieseArbeitsmappe
Option Explicit
Private Sub Workbook_Activate()
UserForm1.Show
End Sub
Private Sub Workbook_Deactivate()
UserForm1.Hide
End Sub
Gruß Matthias
AW: UserForm-Verhalten festlegen
11.03.2017 07:48:23
Sunny
Hallo
Das bedeutet also das man das über den code machen muss, solche Sachen könnten echt in den Eigenschaften sein.
Danke für die Hilfe
Anzeige
AW: UserForm-Verhalten festlegen
11.03.2017 08:03:34
Sunny
Hallo eine frage hätte ich noch.
Ich starte die userform über eine Taste und brauch sie nicht immer. jetzt würde sie ja jedes mal starten wenn ich auf das Tabellenblatt Zurückwechsel. Wie bekomm ich es hin das sie nur dann wider eingeblendet wird wenn sie vorher offen war.
Grüße Sunny
AW: Position der Userform und verhalten festlegen
11.03.2017 07:35:49
Hajo_Zi

Private Sub UserForm_Activate()
Me.Top = 0
Me.Left = 0
End Sub

Anzeige
AW: Position der Userform und verhalten festlegen
11.03.2017 07:52:07
Sunny
Hallo
Alles klar, was ich aber echt nicht verstehen kann wofür sind die Einzen Einstellungen in den Eigenschaften ich hab damit romprobiert und es lediglich Geschäft die userform in die linke oder ecke des Fensters zu bekommen. aber auf die rechte Seite geht irgendwie nicht. Ich kapier nicht warum.
Danke für die Antwort
Grüße Sunny
Anzeige
AW: Position der Userform und verhalten festlegen
13.03.2017 12:03:43
Sven
Hallo Sunny,
dazu musst Du in VBA erst die Bildschirmgröße ermitteln, damit Du rechtsbündig ausgeben kannst.
Erstelle ein Modul in welches Du folgenden Code packst:

Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String,  _
ByVal lpWindowName As String) As Long
Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long,  _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Public Const SM_CYSCREEN As Long = 1
Public Const SM_CXSCREEN As Long = 0
In die Userform packst Du folgenden Code:
Private Sub UserForm_Activate()
Dim BildschirmBreite&
Dim BildschirmHöhe&
Dim UserformBreite&
Dim UserformHöhe&
Dim wHandle&
BildschirmBreite = GetSystemMetrics(SM_CXSCREEN)
BildschirmHöhe = GetSystemMetrics(SM_CYSCREEN)
UserformBreite = 350            'ANPASSEN
UserformHöhe = 450              'ANPASSEN
wHandle = FindWindow(vbNullString, Me.Caption)
MoveWindow wHandle, BildschirmBreite - UserformBreite, _
0, UserformBreite, UserformHöhe, 1
End Sub
Damit deine Userform letztendlich nur auf einer Arbeitsmappe angezeigt wird, musst Du folgenden VBA-Code hinter das entsprechende Tabellenblatt legen:

Private Sub Worksheet_Activate()
UserForm1.Show False
End Sub
Private Sub Worksheet_Deactivate()
UserForm1.Hide
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform Position in Excel VBA festlegen


Schritt-für-Schritt-Anleitung

Um die Userform in Excel VBA an der gewünschten Position festzulegen, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
    Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, _
    ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Public Const SM_CYSCREEN As Long = 1
    Public Const SM_CXSCREEN As Long = 0
  4. Gehe zur Userform und füge den folgenden Code in den UserForm_Activate-Ereignis ein:

    Private Sub UserForm_Activate()
       Dim BildschirmBreite As Long
       Dim BildschirmHöhe As Long
       Dim UserformBreite As Long
       Dim UserformHöhe As Long
       Dim wHandle As Long
    
       BildschirmBreite = GetSystemMetrics(SM_CXSCREEN)
       BildschirmHöhe = GetSystemMetrics(SM_CYSCREEN)
       UserformBreite = 350            'ANPASSEN
       UserformHöhe = 450              'ANPASSEN
       wHandle = FindWindow(vbNullString, Me.Caption)
       MoveWindow wHandle, BildschirmBreite - UserformBreite, _
       0, UserformBreite, UserformHöhe, 1
    End Sub
  5. Um sicherzustellen, dass die Userform nur auf einer bestimmten Arbeitsmappe angezeigt wird, füge in das entsprechende Tabellenblatt den folgenden Code ein:

    Private Sub Worksheet_Activate()
       UserForm1.Show False
    End Sub
    Private Sub Worksheet_Deactivate()
       UserForm1.Hide
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Die Userform erscheint nicht an der gewünschten Position.
    Lösung: Überprüfe, ob die Breite und Höhe der Userform korrekt eingestellt sind. Stelle sicher, dass die Berechnungen für Bildschirmgröße und Position im Code korrekt sind.

  • Fehler: Userform bleibt sichtbar, wenn Du zu einer anderen Mappe wechselst.
    Lösung: Setze den Code in Workbook_Deactivate und Workbook_Activate, um die Sichtbarkeit der Userform zu steuern.


Alternative Methoden

Eine andere Möglichkeit, die Userform zu positionieren, ist die Verwendung von Eigenschaften in den Userform-Einstellungen. Hier kannst Du die Top und Left Eigenschaften direkt anpassen, um die Position zu ändern. Dies ist jedoch weniger flexibel als die Verwendung von VBA.


Praktische Beispiele

  1. Userform rechtsbündig positionieren: Mit dem oben genannten Code kannst Du die Userform an den rechten Rand des Bildschirms positionieren, indem Du die Bildschirmbreite und die Breite der Userform berücksichtigst.

  2. Userform nur bei aktivem Blatt anzeigen: Platziere die Userform so, dass sie nur sichtbar ist, wenn das entsprechende Tabellenblatt aktiv ist, um die Benutzerfreundlichkeit zu erhöhen.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deines Codes, um Fehler durch nicht deklarierte Variablen zu vermeiden.
  • Dokumentiere Deinen Code mit Kommentaren, um die Wartbarkeit zu verbessern.
  • Experimentiere mit verschiedenen Positionierungen, um die Userform an die Bedürfnisse Deiner Anwendung anzupassen.

FAQ: Häufige Fragen

1. Wie kann ich die Größe der Userform anpassen?
Du kannst die Höhe und Breite der Userform in den Eigenschaften der Userform im VBA-Editor anpassen oder im Code festlegen, wie oben gezeigt.

2. Wie verhindere ich, dass die Userform auf anderen Arbeitsblättern angezeigt wird?
Du kannst den Code in die entsprechenden Worksheet_Activate und Worksheet_Deactivate Ereignisse einfügen, um die Sichtbarkeit der Userform zu steuern.

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