Giúp tạo Macro in phiếu Nhập-Xuất

Liên hệ QC

phung_biasg

Thành viên mới
Tham gia
17/4/07
Bài viết
25
Được thích
81
Với mỗi lý do nhập xuất sẽ có mẫu phiếu riêng. Xin giúp tạo macro khi bấm vào sẽ đối chiếu lý do và in theo mẫu phiếu của lý do đó.Xin xem file kèm theo. Xin cám ơn các bạn giúp đõ !
 

File đính kèm

  • Phieu Nhap-Xuat kho.rar
    55.3 KB · Đọc: 1,298
Chào bạn,
Thật sự ra đề tài này chúng ta có thể đặt tại Box: Lập trình với Excel. Nhưng thôi, chúng ta bàn bạc ở đây luôn vì tôi thấy vấn đề này nhiều người cần.
Câu hỏi của bạn phung_biasg (Không biết phải Phụng Bia Sài Gòn hay k?/-*+/ , nếu giải quyết được chắc phải đòi 1 kết bia quá!) như hình sau:
PhieuNX1.jpg

Và phiếu của bạn phung_biasg như sau:
PhieuNX2.jpg


Như vậy theo yêu cầu của bạn thì:
_Tùy theo lý do mà có các mẫu phiếu khác nhau.
Mã:
PN09	  Nhập hàng gởi bán đại lý                            Sheet P.Nhap Daily
PN04	  Nhập hàng hóa mua ngoài                             Sheet P.Nhap Daily
					
BN14A 	 Nhập KT trả cước bao bì                              Sheet P.Nhap Cuoc
BX15	  Xuất bao bì hoàn trả đại lý tỉ lệ 1/1               Sheet P.Xuat Baobi
BX14A	  Xuất khách hàng cược bao bì                         Sheet P.Xuat Cuoc
Các bạn thấy ở hình 2, dựa vào C6 (Lý do giao nhận) mà sẽ quyết định đưa dữ liệu qua worksheet nào (Biểu mẫu nào).
Theo yêu cầu của bạn phung_biasg, thì chúng ta có 5 mẫu Xuất /Nhập
Sơ đồ tổng quát Macro của bạn như sau:
_Kiểm tra lý do, kiểm tra dữ liệu nhập tại worksheet Phieu giao-nhan. Nếu thỏa mãn thì
--Xóa dữ liệu tại worksheet ta muốn đưa dữ liệu qua.
--Tiến hành đưa dữ liệu qua. Và cho worksheet đó Active
Bài sau chúng ta sẽ tiến hành viết mã cho macro.

Lê Văn Duyệt
 
Lần chỉnh sửa cuối:
Để cùng nhau phân tích chúng ta hãy xem đoạn mã khi click vào nút In phiếu
Mã:
Sub In_phieu()
'
' In_phieu Macro
'
    If Range("C6") = "PN09" Or Range("C6") = "PN04" Then
        MsgBox "Ban muon in Phieu nhap kho Thanh pham ?", , "THONG BAO !"
    End If
'Đây là đoạn kiểm tra thông tin
    If Range("C7") = "" Or Range("i7") = "" Or Range("e8") = "" Or Range("e9") = "" Or Range("h9") = "" Or Range("k9") = "" Or Range("f14") = "" Or Range("h14") = "" Then
        MsgBox "Ban chua nhap day du thong tin. Vui long nhap tiep!", , "THONG BAO !"
        Exit Sub
    End If
    Sheets("P.Nhap Daily").Select
    Application.ActivePrinter = "EPSON LQ-2180 ESC/P 2 on LPT1:"
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _
    ActivePrinter:="EPSON LQ-2180 ESC/P 2 on LPT1:", Collate:=True
    If Range("C6") = "BX15" Then
        MsgBox "Ban muon in Phieu xuat Bao bi ?", , "THONG BAO !"
    End If
    Sheets("P.Xuat Baobi").Select
    Application.ActivePrinter = "EPSON LQ-2180 ESC/P 2 on LPT1:"
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _
                                         ActivePrinter:="EPSON LQ-2180 ESC/P 2 on LPT1:", Collate:=True
    Sheets("Phieu giao-nhan").Select
    Range("C4").Select
End Sub
Chúng ta có thể sửa lại như sau:
Mã:
    Dim Ans As Variant
    Dim sNhapXuat As String, sThongBao As String, sTenWsIn As String
    'Chu y khi thu tuc nay duoc goi thi worksheet "Phieu giao-nhan"
    'phai dang Active
    If Range("C7") = "" Or Range("I7") = "" Or Range("E8") = "" Or _
       Range("E9") = "" Or Range("H9") = "" Or Range("K9") = "" Or _
       Range("F14") = "" Or Range("H14") = "" Then
        MsgBox "Ban chua nhap day du thong tin." & vbCrLf & _
               "Vui long nhap tiep!", vbOKOnly, "THONG BAO"
        Exit Sub
    End If
    'Kiem tra LY DO NHAP XUAT
    sNhapXuat = Application.Worksheets("Phieu giao-nhan").Range("C6")    'Hoac Range("C6")
    'Dinh nghia cau thong bao va lay ten Worksheet can In
    Select Case Trim(sNhapXuat)
    Case "PN09", "PN04"
        sThongBao = "NHAP KHO THANH PHAM?"
        sTenWsIn = "P.Nhap Daily"
    Case "BN14A"
        sThongBao = "NHAP KH TRA CUOC BAO BI?"
        sTenWsIn = "P.Xuat Cuoc"
    Case "BX15"
        sThongBao = "XUAT BAO BI HOAN TRA DAI LY" & vbCrLf & _
                    "TI LE 1/1 ?"
        sTenWsIn = "P.Xuat Baobi"
    Case "BX14A"
        sThongBao = "XUAT KH CUOC BAO BI?"
        sTenWsIn = "P.Xuat Cuoc"
    Case Else
        MsgBox "Ma nhap xuat nay chua ton tai." & vbCrLf & _
               "Xin kiem tra lai!", vbOKOnly, "THONG BAO"
        Exit Sub
    End Select

    Ans = MsgBox("Ban muon in " & vbCrLf & _
                 sThongBao, vbOKCancel, "THONG BAO")
    If Ans = vbOK Then
        Application.Worksheets(sTenWsIn).Activate
        Application.SendKeys ("^p")
        Application.SendKeys ("{ENTER}")
    Else
        MsgBox "Ban da chon CANCEL.", vbOKOnly, "THONG BAO"
        Exit Sub
    End If
End Sub
Nếu muốn chọn máy in thi bạn bỏ câu lệnh
Mã:
Application.SendKeys ("{ENTER}")
Chúc bạn thành công...và nhớ 1 kết bia...hi hi hi


Lê Văn Duyệt
 
Thật tuyệt vời. Cám ơn anh Duyệt rất nhiều.
Cho tôi đãi anh một chầu bia Sài gòn nhé !
 
Web KT
Back
Top Bottom