Self Adjusting Userform Größe

Ich war googeln für die letzten Stunden und ich habe alle Arten von ordentlich Möglichkeiten zum anpassen einer Userform passt sich der Größe der verschiedenen Monitoren, oder fügen Sie eine dragbar in der Ecke zu sein, in der Lage, passen Sie die Größe manuell ein.

Leider jedoch ist dies nicht das, was ich im Sinn hatte. Ich bin nicht sicher, ob das, was ich will, ist auch machbar aber wenn jemand diese Gemeinschaft tun kann.

Ziel für mich ist habe eine Userform mit vielen Informationen zu auto Größe anpassen, um alle sichtbaren Steuerelemente, aber keine extra dead space. Würde es 3 Kombinationsfelder immer sichtbar an der Spitze, aber unter denen sind 26 Etiketten und die zugehörigen 5 Optionsfeld/Kontrollkästchen. Diese 26 Zeilen beginnen alle versteckt und nur sichtbar unter bestimmten Bedingungen.

Den ersten der 3 Combo-Boxen wird festgelegt, wie viele der 26 Zeilen brauchen KÖNNTE, um sichtbar zu werden. Sie wird jedoch nur sichtbar, wenn das zweite Kombinationsfeld sagt ja.

Ich bin mit Excel 2013. Wenn Sie weitere Informationen benötigen lassen Sie es mich bitte wissen.

Private Sub ComboBox1_Change()

If Me.ComboBox1.Value > 0 And Me.ComboBox2.Value = "Yes" Then
    Vision
End If

End Sub
Private Sub ComboBox2_Change()

If Me.ComboBox1.Value > 0 And Me.ComboBox2.Value = "Yes" Then
    Vision
End If

End Sub

Private Sub UserForm_Initialize()

With ComboBox1
    .AddItem "1"
    .AddItem "2"
    .AddItem "3"
    .AddItem "4"
    .AddItem "5"
    .AddItem "6"
End With

With ComboBox2
    .AddItem "Yes"
    .AddItem "NO"
End With

With ComboBox3
    .AddItem "1"
    .AddItem "2"
End With

With Me
    .Controls("Label1").Visible = False
    .Controls("Label2").Visible = False
    .Controls("Label3").Visible = False
    .Controls("Label4").Visible = False
    .Controls("Label5").Visible = False
    .Controls("Label6").Visible = False
End With
With Me
    .Controls("Checkbox1").Visible = False
    .Controls("Checkbox2").Visible = False
    .Controls("Checkbox3").Visible = False
    .Controls("Checkbox4").Visible = False
    .Controls("Checkbox5").Visible = False
    .Controls("Checkbox6").Visible = False
End With


End Sub


Private Sub Vision()
Dim n As Long

With Me
    .Controls("Label1").Visible = False
    .Controls("Label2").Visible = False
    .Controls("Label3").Visible = False
    .Controls("Label4").Visible = False
    .Controls("Label5").Visible = False
    .Controls("Label6").Visible = False
End With
With Me
    .Controls("Checkbox1").Visible = False
    .Controls("Checkbox2").Visible = False
    .Controls("Checkbox3").Visible = False
    .Controls("Checkbox4").Visible = False
    .Controls("Checkbox5").Visible = False
    .Controls("Checkbox6").Visible = False
End With

For n = 1 To ComboBox1.Value
    With Me
        .Controls("Label" & n).Visible = True
        .Controls("Checkbox" & n).Visible = True
    End With
Next n

End Sub

InformationsquelleAutor Chad Portman | 2015-01-22

Schreibe einen Kommentar