Hỏi Code dùng option button để đánh dấu X (1 người xem)

  • Thread starter Thread starter haizy
  • Ngày gửi Ngày gửi
Liên hệ QC

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

haizy

Thành viên mới
Tham gia
23/3/14
Bài viết
20
Được thích
2
Em dùng dùng 2 option button dấu X vào 2 ô định sắn trong excel. Nhưng gặp rắc rối là code không chạy, nhờ các anh chỉnh dùm em với.
Vì nội dung khó miêu tả nên em thông qua hình ảnh cho trực quan.
0-Shds2yaOYnV2L70mLmt4rR8vgEuK2I8zyatDBQ7f8=w702-h406-no

Đây là code em viết
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)



Set Target.Address = "J4"
If [J4].Value = "1" Then [G6].Value = "x"

                                [G6].Font.Name = "Wingdings"
                                [G6].Font.Size = 14
                                [G6].HorizontalAliginment = xlCenter
                                [G7].Value = ""
 Else
    [G6].Value = ""
    [G7].Value = "x"
    [G7].Font.Name = "Wingdings"
    [G7].Font.Size = 14
    [G7].HorizontalAliginment = xlCenter

End Sub
 

File đính kèm

Em dùng dùng 2 option button dấu X vào 2 ô định sắn trong excel. Nhưng gặp rắc rối là code không chạy, nhờ các anh chỉnh dùm em với.
Vì nội dung khó miêu tả nên em thông qua hình ảnh cho trực quan.
trên sheet chỉ có 2 Option Button thì dùng công thức trực tiếp,
còn nếu nhiều thì có lẽ phải dùng ActiveX Control để cài code trực tiếp, nhưng bạn nên đưa ra 1 bài toán tổng quát để mọi người dễ hình dung (giống với vấn đề mà bạn đã hỏi bác DOSNET đó --=0)
 
Upvote 0
trên sheet chỉ có 2 Option Button thì dùng công thức trực tiếp,
còn nếu nhiều thì có lẽ phải dùng ActiveX Control để cài code trực tiếp, nhưng bạn nên đưa ra 1 bài toán tổng quát để mọi người dễ hình dung (giống với vấn đề mà bạn đã hỏi bác DOSNET đó --=0)

Cảm ơn anh. Anh có thể sửa giúp em file của em được không anh.
Em có đọc qua bài viết ở trang http://www.excel-easy.com/vba/examples/option-buttons.html
thì mình sẽ tạo 1 ActiveX Control và code là.
Mã:
If OptionButton1.Value = True Then Range("G6").Value = "x"
[G6].Font.Name = "Wingdings"
                                [G6].Font.Size = 14
                                [G6].HorizontalAliginment = xlCenter
                                [G7].Value = ""

If OptionButton2.Value = True Then Range("G7").Value = "x"
[G7].Font.Name = "Wingdings"
                                [G7].Font.Size = 14
                                [G7].HorizontalAliginment = xlCenter
                                [G6].Value = ""

Nhưng đối với trường hợp nhiều hơn 2 lựa chọn thì mình có cách nào rút gọn được không. Nhất là đoạn lặp đi lặp lại như [G7].Font.Name = "Wingdings"
[G7].Font.Size = 14
[G7].HorizontalAliginment = xlCenter
[G6].Value = ""[/code]
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh. Anh có thể sửa giúp em file của em được không anh.
...
Nhưng đối với trường hợp nhiều hơn 2 lựa chọn thì mình có cách nào rút gọn được không. Nhất là đoạn lặp đi lặp lại như [G7].Font.Name = "Wingdings"
[G7].Font.Size = 14
[G7].HorizontalAliginment = xlCenter
[G6].Value = ""[/code]

bạn mở file kiểm tra thử nhé,

ngoài code ra mình có cài thêm GroupName=GPE1, GPE2 ở Properties của mỗi OptionButton

[GPECODE=vb]
Private Sub OptionButton1_Click()
checkX Range("G1")
End Sub
Private Sub OptionButton2_Click()
checkX Range("G2")
End Sub
Private Sub OptionButton3_Click()
checkX Range("G3")
End Sub
Private Sub OptionButton4_Click()
checkX Range("G4")
End Sub
Private Sub OptionButton5_Click()
checkX Range("G5")
End Sub

Private Sub checkX(vitri As Range)
Range("G1:G5").ClearContents

With vitri
.Value = "x"
.Font.Name = "Wingdings": .Font.Size = 14: .HorizontalAlignment = xlCenter
End With
End Sub
[/GPECODE]

'----
mà 3 dòng này: cần gì đưa vào code nhỉ, bạn format trực tiếp trên sheet luôn cho khỏe.
Mã:
.Font.Name = "Wingdings"
.Font.Size = 14
 .HorizontalAlignment = xlCenter

Link: https://www.mediafire.com/?a5wu42qmd5qp54u
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom