Tạo Listbox và code in toàn bộ.

Liên hệ QC

chuot0106

Thành viên gắn bó
Tham gia
20/1/13
Bài viết
2,567
Được thích
1,670
Em có mẫu giấy mời họp mới doawload được trên diễn đàn. Em muốn anh chị hướng dẫn cách tạo Listbox như trong File với ạ. Và anh chị nào rành về VBA viết giúp em code in tùy chọn và in toàn bộ với ạ. Thank.
 

File đính kèm

  • GM.xls
    55 KB · Đọc: 73
Lần chỉnh sửa cuối:
Lên tìm trong diễn đàn trước rồi hãy post bài nhé.
 
Upvote 0
Bạn làm theo cách sau để xem có đúng không nhé:

Tại Sheet [DanhSach] bạn nhấn tổ hợp phím Ctrl+F3. Lúc này khung Name Manager hiện ra, bạn chọn New, đặt tên cho vùng tạo list ở ô "Name" (VD ta sẽ đặt là DS), tại dòng "Refers To" bạn Click chọn từ dòng đầu tiên đến dòng cuối cùng của cột số thứ tự (trừ dòng tiêu đề ra nhé, chỉ quét từ dòng có số thứ tự là 1 đến cuối). Vậy là việc tạo danh sách đã xong.

Bây giờ mình sử dụng nó nhé !

Bạn qua Sheet[Form], tại nơi bạn muốn đặt danh sách vào thì bạn chọn ô đó, tiếp tục vào Data -> Data Validation -> Sẽ có 1 khung hiện ra, bạn chọn thẻ Setting, chọn tiếp List trong mục Alow, tại dòng Source bạn dán cái này vào
Mã:
=DS

Vậy là xong phần tạo list danh sách.
 
Upvote 0
Bạn làm theo cách sau để xem có đúng không nhé:

Tại Sheet [DanhSach] bạn nhấn tổ hợp phím Ctrl+F3. Lúc này khung Name Manager hiện ra, bạn chọn New, đặt tên cho vùng tạo list ở ô "Name" (VD ta sẽ đặt là DS), tại dòng "Refers To" bạn Click chọn từ dòng đầu tiên đến dòng cuối cùng của cột số thứ tự (trừ dòng tiêu đề ra nhé, chỉ quét từ dòng có số thứ tự là 1 đến cuối). Vậy là việc tạo danh sách đã xong.

Bây giờ mình sử dụng nó nhé !

Bạn qua Sheet[Form], tại nơi bạn muốn đặt danh sách vào thì bạn chọn ô đó, tiếp tục vào Data -> Data Validation -> Sẽ có 1 khung hiện ra, bạn chọn thẻ Setting, chọn tiếp List trong mục Alow, tại dòng Source bạn dán cái này vào
Mã:
=DS

Vậy là xong phần tạo list danh sách.

Không phải rồi anh ạ. Cài này dùng Data Validation em cũng biết. Nhưng trong File của em hình như là tác giả làm bằng listbox thì phải. Dù sao cũng cảm ơn anh nhiều.
 
Upvote 0
bạn vào thẻ developer, chọn insert listbox, chọn property nó, tìm tới chỗ listfillrange gõ vào = inGmoi là xong
 
Upvote 0
không có excel 2003 nên không chỉ trên 2003 dc. còn trên 2010 thì bạn lên thanh công cụ chon " custom ribbon" nó sẽ có 1 thẻ developer chưa dc chọn, bạn chọn nó sẽ xuất hiện trên ribbon bên ngoài.

dựa trên code của bạn, sữa chút đỉnh để in toàn bộ ( in trên form phía trên, còn phía dưới không có làm nhé )

HTML:
Sub InToanBo()    If MsgBox("Ban co chac in toan bo danh sach nay khong?", vbQuestion + vbYesNo, "Thông báo") = vbYes Then        Dim r As Long, sArray(), ho_ten As String, lop As String        Sheet3.Select        Call SpeedOn        With Sheet1            sArray = .Range("a2:d" & .[a65500].End(xlUp).Row)            For r = 1 To UBound(sArray, 1)                ho_ten = sArray(r, 2)                lop = sArray(r, 3)                If Trim(ho_ten) <> "" Then                    Sheet3.[d8].Value = lop                    Sheet3.[d7].Value = ho_ten                    ActiveWindow.SelectedSheets.PrintOut _                                                From:=1, _                                                To:=1, _                                                Copies:=1                End If            Next        End With        Call SpeedOff    End IfEnd Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Anh ơi em dùng Word 2003 anh ạ. Hay trong word 2003 không có thẻ developer anh?
 
Lần chỉnh sửa cuối:
Upvote 0
không có excel 2003 nên không chỉ trên 2003 dc. còn trên 2010 thì bạn lên thanh công cụ chon " custom ribbon" nó sẽ có 1 thẻ developer chưa dc chọn, bạn chọn nó sẽ xuất hiện trên ribbon bên ngoài.

dựa trên code của bạn, sữa chút đỉnh để in toàn bộ ( in trên form phía trên, còn phía dưới không có làm nhé )

Mã:
Sub InToanBo()    If MsgBox("Ban co chac in toan bo danh sach nay khong?", vbQuestion + vbYesNo, "Thông báo") = vbYes Then        Dim r As Long, sArray(), ho_ten As String, lop As String        Sheet3.Select        Call SpeedOn        With Sheet1            sArray = .Range("a2:d" & .[a65500].End(xlUp).Row)            For r = 1 To UBound(sArray, 1)                ho_ten = sArray(r, 2)                lop = sArray(r, 3)                If Trim(ho_ten) <> "" Then                    Sheet3.[d8].Value = lop                    Sheet3.[d7].Value = ho_ten                    ActiveWindow.SelectedSheets.PrintOut _                                                From:=1, _                                                To:=1, _                                                Copies:=1                End If            Next        End With        Call SpeedOff    End IfEnd Sub

Anh ơi tức là code này chỉ in được 1 Form thôi ah anh??? Anh suy nghĩ giúp em code in 2 Form với nhé.
 
Upvote 0

File đính kèm

  • GM.xls
    73 KB · Đọc: 59
Upvote 0
in 1 lúc 2 form của bạn luôn đó ! cả trên và dưới !
 
Upvote 0
Vâng ạ. Anh có thể hộ em code in theo số TT bất kì được ko anh???
 
Upvote 0
in 1 lúc 2 form của bạn luôn đó ! cả trên và dưới !

Anh có chút lỗi rồi. Khi em ấn nút in toàn bộ thì bản in thứ nhất in HS có số TT 1 và 2; bản in thứ 2 lại có số TT 2 và 3... tức là bản in sau lại in lại em thứ 2 ở bản in trước đó anh ạ. Anh sửa lại giúp em được ko? Em nghĩ chắc là khó.
 
Lần chỉnh sửa cuối:
Upvote 0
Mong các anh chi khác giúp đỡ em với. Anh quocphuoc88 giúp đỡ em nhiều quá rồi.
Một lần nữa cảm ơn anh.
 
Lần chỉnh sửa cuối:
Upvote 0
Anh có chút lỗi rồi. Khi em ấn nút in toàn bộ thì bản in thứ nhất in HS có số TT 1 và 2; bản in thứ 2 lại có số TT 2 và 3... tức là bản in sau lại in lại em thứ 2 ở bản in trước đó anh ạ. Anh sửa lại giúp em được ko? Em nghĩ chắc là khó.
sữa lại cho bạn , kèm theo là có in theo số thứ tự nữa. Bạn coi còn lỗi gì không nhé
 

File đính kèm

  • GM.xls
    68 KB · Đọc: 74
Upvote 0
Quá oke rồi anh ạ. Em vui lắm. Cảm ơn anh nhìu lắm.
 
Upvote 0
Web KT
Back
Top Bottom