14. marts 2004 - 12:50Der er
4 kommentarer og 1 løsning
Ændre Caption på 100 Checkbokse
Jeg har 100 checkbokse i en form. Caption: "side 1", "side 2", ... "Side 100" Ved at skrive et tal i en tekstbox, f.eks. 20 skal Caption, ved tryk på en CommandButton, i alle 100 Checkbokse ændres til "Side 20", "side 21", ... "Side 120". Samtidigt skal alle checkbokse.value kunne sættes til "true" ved at sætte flueben i CkeckBox nr. 101 uden at jeg skal skrive: CheckBox1.Value = False CheckBox2.Value = False osv. (Do - Loop el. lign.)
If IsNumeric(TextBox1.Text) Then For lCount = CLng(TextBox1.Text) To CLng(TextBox1.Text) + 100 Me.Controls("CheckBox" & CStr(lCount)).Caption = "Side " & CStr(lCount) Next lCount End If End Sub
Private Sub CheckBox101_Change() Dim lCount As Long
For lCount = 1 To 100 Me.Controls("CheckBox" & CStr(lCount)).Value = CheckBox101.Value Next End Sub
Hvis jeg skrev: 50 blev kun CkeckBox 50 til 100 omdøbt og derefter fik jeg en debug fejl da CheckBox 101 til 149 selvfølgelig ikke eksisterede!
Løsningen var: Private Sub DenDerKnap_Click() Dim lCount As Long Dim TrakFra As Long Dim Minus1 As Long Minus1 = CLng(TextBox1.Text) - 1
If IsNumeric(TextBox1.Text) Then For lCount = CLng(TextBox1.Text) To CLng(TextBox1.Text) + 99
TrakFra = lCount - Minus1
Me.Controls("CheckBox" & CStr(TrakFra)).Caption = "Side " & CStr(lCount) Next lCount End If
End Sub
Næste problem er at når jeg nu åbner min form for anden gang er Caption på alle CheckBox'es tilbage ved de gamle værdier. Jeg kan selvfølgelig bare også sætte ovenstående til min Form_Activate, men er der en bedre løsning så Caption huskes?
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) RefreshCheckBoxCaptions End Sub
Private Sub UserForm_Initialize() RefreshCheckBoxCaptions End Sub
Private Sub RefreshCheckBoxCaptions() Dim lCount As Long
If IsNumeric(TextBox1.Text) Then For lCount = CLng(TextBox1.Text) To CLng(TextBox1.Text) + 99 Me.Controls("CheckBox" & CStr(lCount - CLng(TextBox1.Text) - 1)) _ .Caption = "Side " & CStr(lCount) Next lCount End If End Sub
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.