Wie kann ich es anstellen, daß sich die Größe der UserForm automatisch an die der Excel-Mappe(wenn diese nicht maximiert ist) mit der sie duch ein Makro automatisch geöffnet wird, anpaßt?
Vielen Dank schon mal - die Anja.
Private Sub UserForm_Initialize()
With Application
Me.Left = .Left
Me.Top = .Top
Me.Height = .Height
Me.Width = .Width
End With
End Sub
Was soll den anders sein, wenn Excel nicht maximiert ist?Private Sub UserForm_Initialize()
With Application
Me.ScrollHeight = Me.Height
Me.ScrollWidth = Me.Width
Me.Left = .Left
Me.Top = .Top
Me.Height = .Height
Me.Width = .Width
End With
End Sub
Gruß MatthiasUm die Größe einer UserForm in Excel automatisch an die Größe der Excel-Mappe anzupassen, kannst du folgenden VBA-Code verwenden. Dieser muss im UserForm_Initialize-Ereignis platziert werden:
Private Sub UserForm_Initialize()
With Application
Me.ScrollHeight = Me.Height
Me.ScrollWidth = Me.Width
Me.Left = .Left
Me.Top = .Top
Me.Height = .Height
Me.Width = .Width
End With
End Sub
Stelle sicher, dass du dies in der richtigen Excel-Version machst – die Schritte sind in Excel 2010 und höher anwendbar.
Problem: Die UserForm wird zwar angepasst, aber Teile des Formulars sind abgeschnitten und nicht sichtbar.
Lösung: Stelle sicher, dass die Scrollbars aktiviert sind. Wenn du die oben genannte Methode anwendest, sollte das Scrollverhalten wie gewünscht funktionieren. Der Einsatz von Me.ScrollHeight und Me.ScrollWidth hilft, die Anzeige zu optimieren.
Eine alternative Möglichkeit zur Anpassung der UserForm-Größe ist die Verwendung von Zoom. Dies kann hilfreich sein, wenn du die UserForm in einer anderen Ansicht darstellen möchtest. Hier ist ein einfacher Code, der das Zoom-Ereignis umfasst:
Private Sub UserForm_Initialize()
With Application
Me.Zoom = 100 ' Setze den Zoom auf 100%
Me.Left = .Left
Me.Top = .Top
Me.Height = .Height
Me.Width = .Width
End With
End Sub
Wenn du beispielsweise eine UserForm mit verschiedenen Steuerelementen (Buttons, Textfelder) hast, ist es wichtig, die Größe dynamisch anzupassen, damit alle Elemente sichtbar sind. Ein konkretes Beispiel könnte so aussehen:
Private Sub UserForm_Initialize()
With Application
Me.ScrollHeight = 500 ' Beispielhöhe
Me.ScrollWidth = 300 ' Beispielbreite
Me.Left = .Left
Me.Top = .Top
Me.Height = .Height
Me.Width = .Width
End With
End Sub
Verwende diese Methode, um Benutzerfreundlichkeit zu gewährleisten.
ScrollHeight und ScrollWidth an, um die perfekte Größe für deine spezifischen Anforderungen zu finden.Debug.Print: Nutze Debug.Print in deinem Code, um die Werte von Height und Width auszugeben. So kannst du besser verstehen, wie die Anpassungen wirken.1. Warum wird die UserForm nicht korrekt angezeigt?
Überprüfe, ob du alle notwendigen Einstellungen in der Initialize-Prozedur vorgenommen hast. Besonders die Scrollbar-Einstellungen können entscheidend sein.
2. Kann ich die Größe der UserForm auch manuell anpassen?
Ja, du kannst die Größe der UserForm manuell in den Eigenschaften der UserForm im VBA-Editor einstellen, aber die automatische Anpassung bietet oft mehr Flexibilität.