Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1196to1200
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform Grösse ändern

Userform Grösse ändern
Kai
Hallo,
ich habe eine UserForm, auf der sitzen ein paar Steuerlemente drauf, (Listboc, Textfeld und Combobox)
Nun möchte ich folgendes erreichen: ich möchte die Userform, da der Code auf verschiedenen Rechnern mit verschiedenen Aüflösungen läuft, mit der Maus größer und kleiner machen können. Das heißt, die Userform soll in der Breite so bleiben wie sie ist, (wird mittig geöffnet) aber ich möchte die Userform in der Höhe verstellen können (also im laufenden Betrieb mit der Maus an der unteren Kante nach unten ziehen)
Was muss ich denn an der userform ändern, damit dies möglich ist. Momentan erscheint garnicht das entsprechende Symbol (Pfleil) wenn ich mit der Maus über die untere Kante fahre.
Wenn ich die Userform größer ziehe, dann würde wahrscheinlich unten eine leere graue Fläche entstehen. Diese freie Fläche, soll der Listbox, die in der Mitte der Userform ist, zur Verfügung gestellt werden.
Also, so, dass ich die Grösse der Listbox nicht fix angebe, sondern die Höhe von der unterne Kante der Userform abhängig mache.
Wie programmiert man das denn per Code ?
Danke mal
Kai

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

Betreff
Benutzer
Anzeige
AW: Userform Grösse ändern
18.01.2011 11:34:57
Nepumuk
Hallo,
In das Klassenmodul des Userforms:
Option Explicit

Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _
    ByVal hwnd As Long, _
    ByVal nIndex As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

Private Const GWL_STYLE = -16&
Private Const WS_THICKFRAME = &H40000

Private msngWidth As Single, msngHeightDifference As Single

Private Sub UserForm_Initialize()
    Dim lngHWnd As Long, lngStyle As Long
    msngWidth = Width
    msngHeightDifference = Height - ListBox1.Height
    lngHWnd = FindWindow("ThunderDFrame", Caption)
    lngStyle = GetWindowLong(lngHWnd, GWL_STYLE)
    Call SetWindowLong(lngHWnd, GWL_STYLE, lngStyle Or WS_THICKFRAME)
End Sub

Private Sub UserForm_Layout()
    Width = msngWidth
    ListBox1.Height = Height - msngHeightDifference
End Sub
Gruß
Nepumuk
Anzeige
AW: Userform Grösse ändern
18.01.2011 11:54:35
Kai
Hi Nepumuk,
wie meinst Du, einfach ein Klassenmodul einfügen
(MODULE - rechte Maustaste - EINFÜGEN - KLASSENMODUL)
und alles reinkopieren , oder muss ich das irgend wie mit der UserForm verankern ?
Danke
Kai
AW: Userform Grösse ändern
18.01.2011 11:57:33
Rudi
Hallo,
einfach in das Modul des Userforms.
Änderung, falls jemand die UF zu stark verkleinert:
Private Sub UserForm_Layout()
Width = msngWidth
ListBox1.Height = Application.Max(1, Height - msngHeightDifference)
End Sub

Gruß
Rudi
AW: Userform Grösse ändern
18.01.2011 17:56:53
Nepumuk
Hallo,
NEEE. Das Userform ist doch ein Objekt (wir Programmierer sagen aber Klasse dazu, damit uns die Laien nicht verstehen.) Manche Objekte haben ihr eignes Modul. So wie das Userform, Tabellen, Diagrammblätter und das Workbook. Und weil wir zu Objekten Klassen sagen, sind die dazugehörigen Module eben Klassenmodule. :-)
Gruß
Nepumuk
Anzeige
AW: Userform Grösse ändern
18.01.2011 11:52:11
Reinhard
Hallo Kai,
nimm doch eine Scrollbar.
Private Sub UserForm_Initialize()
UserForm1.Height = 350
ListBox1.Height = 150
ScrollBar1.Value = 50
ScrollBar1.Top = 200
End Sub
Private Sub ScrollBar1_Change()
ListBox1.Height = 100 + ScrollBar1.Value
UserForm1.Height = 300 + ScrollBar1.Value
ScrollBar1.Top = 150 + ScrollBar1.Value
End Sub

Gruß
Reinhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge