Tạo Bảng nhập liệu trong EXCEL

Liên hệ QC

TranNguyenHoang

Thành viên mới
Tham gia
3/1/12
Bài viết
15
Được thích
3
Điểm
0
Em đọc được 1 bài của bác Tuân nói về cách tạo bảng nhập dữ liệu, nhưng ở bài này thì dữ liệu được nhập theo cột và bằng cách click phải chuột vào 1 cel bất kỳ trong cột đó để hiện ra một Listbox chứa DL cần nhập.
Giờ em muốn chỉ click chuột (có thể là click chuột trái) vào một ô cố định (ví du: ô D11 chẳng hạn) ở Sheet nhập liệu; hoặc ở Sheet nhập liệu tạo một nút lệnh là "Nhập DL" để click chuột trái vào đó, còn kết quả sẽ hiển thị ở cel bên cạnh sau khi đã lựa chọn dữ liệu trong Listbox thì phải thay đổi code như thế nào, mong các anh chị giúp đỡ.

Bài viết sau:

Tạo bảng dữ liệu:

1) Chúng ta có một bảng Hệ Thống Tài Khỏan (A2:B25) để dễ nhớ chúng ta đăt tên cho vung này là Tk (đánh dấu vùng A2:B25 vào Insert / Name / Define).
2) Thiết kế form để người dùng chọn mã tài khỏan

Từ cửa sổ Excel bạn nhấn tổ hợp phím Alt + F11. Cửa sổ VBE xuất hiện, sau đó bạn chọn Insert/UserForm . Ta đặt tên form là DMTK, thuộc tính Caption là Chart of account.

Trên form ta đặt các đối tượng gồm có

-Listbox có tên là DM - Rowsource là Tk - (A2:B25)
-1 nút lệnh có tên là Chon -Caption là OK
-1 nút lệnh có tên là Thoat - Caption là Cancel

formdv4.jpg



3) Viết Code cho Form

Bạn double click vào nút OK bạn sẽ thấy đọan code

Private Sub Chon_Click()

End sub

Các bạn thêm vào như sau

Private Sub Chon_Click()
Giatri = DM.Value
ActiveCell.Value = Giatri 'Dat gia tri ban chon vao o hien tai
Unload DMTK
End Sub

Tương tự với nút lệnh cancel

Private Sub Thoat_Click()
Unload DMTK
End Sub


4) Đọan mã của sheet

Đến đây bạn đã đi được 3/4 chặng đường rồi. Giả sử ở sheet Input bạn muốn khi click chuột phải ở một ô thuộc cột nào đó thì Form DMTK sẽ xuất hiện cho bạn chọn.

Các bạn click chuột phải ở sheet Input chon view code và gián đọan code sau vào

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

'Created by Tran Tuan
'www.danketoan.com
'24/08/2006

If Target.Column = 4 Or Target.Column = 5 Then
Cancel = True
DMTK.Show
End If
End Sub

(Note:Số 4 và 5 tương ứng với cột D và E, nếu bạn muốn cột A thì số 1....)
 
Lần chỉnh sửa cuối:
Web KT
Back
Top