Giup Code tô màu các CommandButton khi Click vào (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

congnguyen88

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/7/14
Bài viết
355
Được thích
31
Tình hình là như thế này. Trên Form em tạo ra 20 cái CommandButton , em muốn là khi em Click và 1 nút CommandButton bất kỳ thì nút đó sẽ có màu hồng, và các nút CommandButton còn lại phải có màu trắng ( Mục đích để hiện thị màu để biết cái nào mình đang Click) em viết code thì đúng rồi nhưng mà dài quá , Rất mong các bác giúp em. Xin cảm ơn


Private Sub nhom1_Click()
nhom1.BackColor = &HC0C0FF ' mau hong
nhom2.BackColor = &HE0E0E0 ' mau xam
nhom3.BackColor = &HE0E0E0 ' mau xam
nhom4.BackColor = &HE0E0E0 ' mau xam
...........
nhom20.BackColor = &HE0E0E0 ' mau xam
End Sub


Private Sub nhom2_Click()
nhom2.BackColor = &HC0C0FF ' mau hong
nhom1.BackColor = &HE0E0E0 ' mau xam
nhom3.BackColor = &HE0E0E0 ' mau xam
nhom4.BackColor = &HE0E0E0 ' mau xam
...........
nhom20.BackColor = &HE0E0E0 ' mau xam
End Sub


Chổ ...... đó phải thêm nhiều code nữa dài quá
 
Tình hình là như thế này. Trên Form em tạo ra 20 cái CommandButton , em muốn là khi em Click và 1 nút CommandButton bất kỳ thì nút đó sẽ có màu hồng, và các nút CommandButton còn lại phải có màu trắng ( Mục đích để hiện thị màu để biết cái nào mình đang Click) em viết code thì đúng rồi nhưng mà dài quá , Rất mong các bác giúp em. Xin cảm ơn


Private Sub nhom1_Click()
nhom1.BackColor = &HC0C0FF ' mau hong
nhom2.BackColor = &HE0E0E0 ' mau xam
nhom3.BackColor = &HE0E0E0 ' mau xam
nhom4.BackColor = &HE0E0E0 ' mau xam
...........
nhom20.BackColor = &HE0E0E0 ' mau xam
End Sub


Private Sub nhom2_Click()
nhom2.BackColor = &HC0C0FF ' mau hong
nhom1.BackColor = &HE0E0E0 ' mau xam
nhom3.BackColor = &HE0E0E0 ' mau xam
nhom4.BackColor = &HE0E0E0 ' mau xam
...........
nhom20.BackColor = &HE0E0E0 ' mau xam
End Sub


Chổ ...... đó phải thêm nhiều code nữa dài quá
Làm như sau:
1> Chèn 1 ClassModule (tên là Class1) với code:
Mã:
Public WithEvents cmd As MSForms.CommandButton
Private Sub cmd_Click()
  On Error Resume Next
  If UCase(objLast.Name) <> UCase(cmd.Name) Then
    If Not objLast Is Nothing Then objLast.BackColor = &HE0E0E0
    On Error GoTo 0
    cmd.BackColor = &HC0C0FF
    Set objLast = cmd
  End If
End Sub
2> Chèn 1 Module với code:
Mã:
Public objLast As Object
Sub ShowForm()
  UserForm1.Show
End Sub
3> Code trong UserForm:
Mã:
Dim btts(1 To 20) As New Class1
Private Sub UserForm_Initialize()
  Dim ctrl As Control, i As Long
  For Each ctrl In Me.Controls
    If TypeOf ctrl Is MSForms.CommandButton Then
      i = i + 1
      ctrl.BackColor = &HE0E0E0
      Set btts(i).cmd = ctrl
    End If
  Next
End Sub
Private Sub UserForm_Terminate()
  Set objLast = Nothing
End Sub
Xong!
Dù là 100 cái nút hay bao nhiêu đi nữa thì vẫn nhiêu đó code mà thôi
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom