22. maj 2015 - 21:49Der er
8 kommentarer og 1 løsning
Auto tilpasse størrelsen på userform i forhold til checkboxes i userformen
Jeg har følgende kode, hvor jeg tilføjer en dynamisk antal checkboxes. Jeg er nu kommet i det problem at antallet af checkboxes ikke kan rummes i den foruddefinerede størrelse på userformen og derfor vil jeg gerne høre om der er nogle der kan fortælle hvordan man kan auto resize en userform evt. på baggrund af placeringen af den nederste checkbox i userformen.
min kode til at tilføje checkboxes er denne, som henter antallet af checkboxes fra antallet af celler i et en-dimensionel array:
Private Sub UserForm_Initialize()
Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox
Call ProList ' Fylder arrayet
LastColumn = UBound(UniqueProvisionArray)
For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = UniqueProvisionArray(i) chkBox.Left = 5 chkBox.Top = 5 + (i * 20)
Next i
End Sub
Kan man samtidig resize userformens størrelse og hvis, hvordan?
For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = UniqueProvisionArray(i) chkBox.AutoSize = True '<++++++++++
Svar på #3 PS: UniqueProvisionArray er substitueret......
'Option Explicit
Private Sub CommandButton1_Click() Call FilterProvisions End Sub
Private Sub UserForm_Initialize()
Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox Const tabel = "A;BBBBBBBBB BBBBBBB bbb;CCC;DDDD;EEEEEEEEEEEE EEEEEEEE"
UniqueProvisionArray = Split(tabel, ";")
'Call ProList ' Fylder arrayet
LastColumn = UBound(UniqueProvisionArray)
chkBoxWidth = 0
For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = UniqueProvisionArray(i) chkBox.AutoSize = True
If chkBox.Width > chkBoxWidth Then '<+++++ chkwidth = chkBox.Width End If
chkBox.Left = 5 chkBox.Top = 5 + (i * 20)
If chkBoxWidth < chkBox.Width Then chkBoxWidth = chkBox.Width End If
hmm... Jeg ved ikke helt hvad jeg gør forkert, men den bryder stadig teksten i checkbox caption og tilpasser ikke bredden:
Private Sub UserForm_Initialize()
Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox Dim chkBoxWidth As Integer
Call ProList ' Fylder arrayet
LastColumn = UBound(UniqueProvisionArray)
chkBoxWidth = 0
For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = UniqueProvisionArray(i) chkBox.AutoSize = True
If chkBox.Width > chkBoxWidth Then chkBoxWidth = chkBox.Width End If
Når jeg indsætter min særlige linjer i stedet for "Call ProList - som jeg jo ikke har" i din version (#7) så virker det ok.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.