Moro
Jeesatkaas tietämätöntä :)
Eli WBA lomakkeella on 135kpl framea jotka nimetty => Frame1 => Frame135
Taulukossa on solussa J numero joka vastaa Framen numeroa,
ja sen pitäisi vaihtaa ko Framen taustaväri.
Kysymys:
Miten saan tuon framen ja numeron yhdistettyä (tuo pätkä ei toimi):
Private Sub CommandButton3_Click() Dim frame(135) For a = 2 To 2957 If TextBox1.Text = Range("a" & a) Then Z = Val(Range("j" & a)) frame(Z).BackColor = &HFF0000 End If Next a
Oletan, että kun 'puhut' WBA lomakkeesta niin kyseessä on VBA UserForm.
Mikäli oletukseni osui oikeaan niin Frame kontrollin osalta:
Private Sub CommandButton1_Click() 'testi For Each Frame In Me.Controls If Frame.Name = "Frame2" Then 'esim. Frame.BackColor = &HFF0000 End If Next End Sub
Toisaalta taas Frame ei ole tässä nyt se aivan eka ongelma jossa tökkää. Siis miten ihmeessä oletkin päätynyt ajatukseen, että TextBox kontrollin tekstiarvo voisi olla Range objekti:
If TextBox1.Text = Range("a" & a) Then '...
Oletetaan vielä, että viritelmäsi pyörii VBA UserForm:lta käsin ja ko. Range haetaan esim. Työkirjan taulusta Taul1:
Private Sub CommandButton2_Click() 'testi For a = 2 To Taul1.UsedRange.SpecialCells(xlCellTypeLastCell).Row If UCase(TextBox1.Text) = Replace(Taul1.Range("a" & a).Address, "$", "") Then MsgBox "Jee! solu" & Replace(Taul1.Range("a" & a).Address, "$", "") 'testi TextBox1.Text = "" 'muuten 'Jee! ...' tulee näkyviin joka kierroksella 'mikäli Frame kontrollit on UserForm:lla For Each Frame In Me.Controls If Frame.Name = "Frame" & a Then Frame.BackColor = &HFF0000 Exit For End If Next 'HUOM koska laskuri alkaa 2:sta niin Frame1:n taustaväri ei muutu 'koskaan jotenka: "Frame" & a - 1 voisi olla tässä toimivampi. 'mikäli Frame kontrollit on Työkirjan taulussa Taul1 esim. Dim ctlr As Frame For Each OLEObject In Taul1.OLEObjects If OLEObject.Name = "Frame" & a Then Set ctlr = Taul1.OLEObjects("Frame" & a).Object ctlr.BackColor = &HFF0000 Set ctlr = Nothing: Exit For End If Next End If 'tällä pääset tarvittaessa ulos silmukasta (a) 'If TextBox1.Text = "" Then Exit For Next a End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.