chuot0106
Thành viên gắn bó
- Tham gia
- 20/1/13
- Bài viết
- 2,567
- Được thích
- 1,670
=DS
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.
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
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
thì chỉnh chút dỉnh lại . gửi lại cho bạn xem có lỗi gì không nhé ( làm hơi vội )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é.
thì chỉnh chút dỉnh lại . gửi lại cho bạn xem có lỗi gì không nhé ( làm hơi vội )
Anh xem lại hộ em cái list box với. Khi chọn số thứ tự nó không điền thông tin vào Form nữa anh ạ. Và cũng không có nút in hả anh???
in 1 lúc 2 form của bạn luôn đó ! cả trên và dưới !
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é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ó.
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2