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

Frame auf Userform zentrieren

Forumthread: Frame auf Userform zentrieren

Frame auf Userform zentrieren
23.12.2005 15:03:46
Vliegen
Hallo,
Habe eine Userform die sich entsprechende der Bildschirmauflösung zum Vollbild maximiert.
Application.WindowState = xlMAximized
Me.Width = Application.Width
Me.Height = Application.Height
Damit die einzelenen Elemente aber nicht so oben in der linken Ecke hängen wenn die Auflösung höher ist würde ich gerne alle Objekte auf einem Frame mit Mindestabmessung gruppieren und entsprechend zentrieren.
Vermute dass die Position des Frames entsprechend der Bildschirmauflösung neu errechnete werden muss. Hat jemand vielleicht einen Makro das dieses Zentrieren macht. Alleine traue ich mir das nicht zu.
Gruss aus Belgien,
François
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frame auf Userform zentrieren
23.12.2005 15:23:00
Beni
Hallo François,
Gruss Beni
Dim MyControl As Object
For Each MyControl In Controls
MyControl.Top = MyControl.Top * Application.Height / UserForm1.Height
MyControl.Left = MyControl.Left * Application.Width / UserForm1.Width
MyControl.Width = MyControl.Width * Application.Width / UserForm1.Width
Next
Anzeige
AW: Frame auf Userform zentrieren
23.12.2005 15:51:34
Vliegen
Hallo Beni,
Danke erstmal für die schnelle Antwort. Brauche ja nur ein Frame zu zentrieren, alles andere befindet sich da drauf und ist dann auch automatisch zentriert.
Vielleicht mache ich was falsch aber jedenfalls klappt es nicht. Das Frame bleibt auf der Userform genau da wo es war. Zentrieren findet nicht statt. Hier der Code den ich verwendet habe.
Was muss ich da ändern ?
Gruss,
François

Private Sub UserForm_Initialize()
Application.WindowState = xlMaximized
Me.Width = Application.Width
Me.Height = Application.Height
Frame1.Top = Frame1.Top * Application.Height / Me.Height
Frame1.Left = Frame1.Left * Application.Width / Me.Width
Frame1.Width = Frame1.Width * Application.Width / Me.Width
End Sub

Anzeige
AW: Frame auf Userform zentrieren
23.12.2005 17:15:38
Uduuh
Hallo,
Application.Height / Me.Height ergibt doch 1 und damit ändert sich nix.
Frame1.Left= (Me.Width-Frame1.Width)/2
Frame1.Top= (Me.height-Frame1.Height)/2
Gruß aus’m Pott
Udo

AW: Frame auf Userform zentrieren
23.12.2005 18:36:18
Vliegen
Hallo Uuduuuh,
Funzt einwandfrei. Das nenn ich ein Weihnachtsgeschenk. Danke.
Alles gute und frohe Festtage.
Gruss,
Francois
Anzeige
AW: Frame auf Userform zentrieren
24.12.2005 12:51:09
Hajo_Zi
Hallo Francois,
was ist an der Frage noch offen ?
Gruß Hajo
;
Anzeige
Anzeige

Infobox / Tutorial

Frame auf Userform zentrieren in Excel VBA


Schritt-für-Schritt-Anleitung

Wenn Du einen vba userform frame zentrieren möchtest, folge diesen Schritten:

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

  2. Füge eine Userform hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinDateiname)" und wähle "Insert" > "UserForm".

  3. Füge ein Frame hinzu: Ziehe das Frame-Steuerelement auf die Userform.

  4. Füge den folgenden Code in das Userform-Modul ein:

    Private Sub UserForm_Initialize()
       Application.WindowState = xlMaximized
       Me.Width = Application.Width
       Me.Height = Application.Height
       Frame1.Left = (Me.Width - Frame1.Width) / 2
       Frame1.Top = (Me.Height - Frame1.Height) / 2
    End Sub
  5. Speichere Deine Änderungen: Klicke auf "Datei" > "Speichern", um sicherzustellen, dass Dein Code nicht verloren geht.

  6. Starte die Userform: Drücke F5, um die Userform anzuzeigen und das Frame sollte zentriert sein.


Häufige Fehler und Lösungen

1. Der frame vba bleibt nicht zentriert.
Lösung: Stelle sicher, dass der Code im UserForm_Initialize-Ereignis korrekt ist und die Berechnungen für Left und Top wie oben beschrieben durchgeführt werden.

2. Die Userform wird nicht maximiert.
Lösung: Überprüfe, ob Application.WindowState = xlMaximized korrekt ausgeführt wird, bevor Du die Größe der Userform anpasst.


Alternative Methoden

Eine alternative Methode zum Zentrieren eines Frames auf einer Userform ist die Verwendung von Proportionen:

Dim MyControl As Object
For Each MyControl In Controls
    MyControl.Top = MyControl.Top * Application.Height / UserForm1.Height
    MyControl.Left = MyControl.Left * Application.Width / UserForm1.Width
    MyControl.Width = MyControl.Width * Application.Width / UserForm1.Width
Next

Diese Methode skaliert alle Steuerelemente, einschließlich des vba frame, basierend auf der Größe der Userform.


Praktische Beispiele

Hier ist ein praktisches Beispiel, um zu zeigen, wie Du den frame vba innerhalb einer Userform korrekt zentrierst:

  1. Erstelle eine Userform mit mehreren Steuerelementen (z.B. Labels und Textboxen) innerhalb des Frames.
  2. Verwende den oben genannten Code im UserForm_Initialize-Ereignis.
  3. Teste die Userform auf verschiedenen Bildschirmauflösungen, um sicherzustellen, dass der Frame immer zentriert bleibt.

Tipps für Profis

  • Verwende UserForm_Resize: Um die Position des Frames dynamisch zu ändern, wenn die Userform in der Größe verändert wird, kannst Du den Code in das UserForm_Resize-Ereignis einfügen.

  • Erstelle eine Funktion: Du kannst eine Funktion erstellen, die die Zentrierung des Frames übernimmt, um Wiederholungen im Code zu vermeiden.

Private Sub CenterFrame()
    Frame1.Left = (Me.Width - Frame1.Width) / 2
    Frame1.Top = (Me.Height - Frame1.Height) / 2
End Sub

FAQ: Häufige Fragen

1. Warum funktioniert der Zentrierungscode nicht?
Stelle sicher, dass Du die korrekten Berechnungen für Left und Top verwendest und dass der Frame tatsächlich auf der Userform vorhanden ist.

2. Kann ich mehrere Frames gleichzeitig zentrieren?
Ja, Du kannst eine Schleife verwenden, um mehrere vba frames auf der Userform zu zentrieren, ähnlich wie in der Schritt-für-Schritt-Anleitung beschrieben.

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