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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein möglicher Ansatz.
Ok ich Teste den code jetzt und ich habe eine Frage zu Private Sub-Befehl Button1_Click. Sie haben die dort aufgeführten
Me.lbltest.visible = Not Me.lbltest.Visible
ich bin unsicher, was diesen Teil des Codes tut oder wie Sie funktioniert. Ich baute eine dummy-userform für ein Beispiel werde ich auf die OP mit dem code aus, um zu sehen, ob es hilft zu erklären.Vielen Dank für Ihre Hilfe bei diesem Problem.
das war nur ein Stück test-code blendet das "äußerste" - Steuerelement auf meinem test-form und löst dann die resizing-code. Es ist nur für Test - in Ihren Fall, würden Sie nur rufen
CheckSize
jedes mal, wenn Sie fertig sind, ausblenden/einblenden Steuerelemente auf dem Formular.Sie sir sind ein schöner Mann, das klappt perfekt, ich werde diesen code in der Nähe und Liebe zu meinem Herzen für den rest meines Lebens!!!
InformationsquelleAutor Tim Williams
Fand ich, dass das Problem gelogen, mit Anzeige-Einstellungen - ich habe meine Anzeige auf 100% eingestellt, aber andere hatten den ihrigen auf 150% gestellt, so dass, wenn Sie legen Sie es wieder auf 100% konnten Sie es sehen richtig
InformationsquelleAutor James