Giúp đỡ dùm đoạn code in Phiếu chi liên tục ? (2 người xem)

Liên hệ QC

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

laianhtu

Thành viên tiêu biểu
Tham gia
4/1/07
Bài viết
635
Được thích
858
Nghề nghiệp
Finance and Accountancy field, Tax consultant, tax
Xin chào các bạn,

Nhờ các bạn viết dùm đoạn code VBA để kích hoạt nút in liên tục các phiếu chi bắt đầu bằng "PC*". Ví dụ nếu có 5 phiếu chi sẽ in liên tục từ PC1 đến PC5, các phiếu kế toán khác chương trình sẽ không in ra.

P/: vui lòng mở file đính kèm để xem ví dụ mẫu.

Cám ơn nhiều.

Anh Tú.

"Love is beautiful when it's unconclusive"
 

File đính kèm

Bạn gán đoạn code sau vào trong Sheet2 . Doạn code này sẽ in liên tục các loai phiếu theo yêu cầu của bạn. Bạn ghi loại phiếu cần in (PC,PT,BC...) vào ô J1 của Sh2 rồi gán lệnh Call InLienTuc(Cells(1,10)) cho một nút Comandbuton trên Sh 2
PHP:
Sub InLienTuc(LoaiPhieu As String)
    Dim n, i As Integer
    Dim Rng As Range
    n = Sheet2.Range("B65000").End(xlUp).Row
    Set Rng = Sheet2.Range("B6:B" & n)
    For i = 6 To n
        If Left(Rng.Range("B" & i), 2) = LoaiPhieu Then
            Sheet2.Cells(1, 9) = Rng.Range("B" & i)
            ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
                :=True
        End If
    Next
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Xin chào các bạn,

Nhờ các bạn viết dùm đoạn code VBA để kích hoạt nút in liên tục các phiếu chi bắt đầu bằng "PC*". Ví dụ nếu có 5 phiếu chi sẽ in liên tục từ PC1 đến PC5, các phiếu kế toán khác chương trình sẽ không in ra.

P/: vui lòng mở file đính kèm để xem ví dụ mẫu.

Cám ơn nhiều.

Anh Tú.

"Love is beautiful when it's unconclusive"
Bạn có thể xem thử file sau, xin lỗi vì lâu không đụng VBA mêm code hơi vụng về.
Mong lượng thứ.
Rút kinh nghiệm, lần sau mà đưa file thì xóa các link và name rác nhé.
 

File đính kèm

Cám ơn bác Thu Nghi, nhưng mà mình click vô nút Command button "In lien tuc" thi chương trình hiện ra cửa sổ chọn số phiếu để in, sau đó mình chọn từ số 1 đến số 3, chỉ in ra được số 1 thôi ?

Giúp mình fix lỗi nhé.
Thanks.
Anh Tú.
 
Cám ơn bác Thu Nghi, nhưng mà mình click vô nút Command button "In lien tuc" thi chương trình hiện ra cửa sổ chọn số phiếu để in, sau đó mình chọn từ số 1 đến số 3, chỉ in ra được số 1 thôi ?

Giúp mình fix lỗi nhé.
Thanks.
Anh Tú.
Khi bạn chọn print, thì nó sẽ auto chuyển sang phiếu next.
Còn không bạn bỏ dấu nháy " ' " ở câu sau trong sub
PHP:
    'ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
                :=True'
Và thêm dấu nháy vào trước câu
PHP:
 ActiveWindow.SelectedSheets.PrintPreview
PHP:
Sub InPC()
SLPC = soPC.Rows.Count
TS = Application.InputBox("Tu so:" & Chr(13) & "Ban dang co " & endR - 1 & " So PC", "Laianhtu", Type:=1)
DS = Application.InputBox("Den so:" & Chr(13) & "Ban dang co " & endR - 1 & " So PN", "Laianhtu", Type:=1)
If DS > endR Then DS = endR
If TS > 0 And DS > 0 And TS <= DS Then
  For iR = TS To DS
  With Application
    .Calculation = xlCalculationAutomatic
  End With
    Range("I1") = soPC(iR)
    ActiveWindow.SelectedSheets.PrintPreview
    'in luon'
    'ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
                :=True'
  Next
End If
Set soPC = Nothing
End Sub
 
Bạn vào bài số 2 mà down ví dụ về. Ghi từ PC vào ô J1 của sheet2 rồi nhấn nút in. Lưu ý nó sẽ in tất cả các phiếu chi đã có trong CSDL (sh Nhap) đấy. Muốn in loại phiếyuu nào thì ghi tên loại phiếu đó vào ô J1 là được
 
Nếu anh đã dùng VBA rồi thì nên bỏ luôn mấy cái Vlookup đi ah.
Insert 1 UserForm để tùy chọn in, 2 Combobox chon số phiếu, 1 Combobox chọn số bản in, 2 Commandbuuton để thoát và in.

PHP:
Private Sub UserForm_Initialize()
Dim Cell As Range
For Each Cell In Sheets("Phat sinh").Range("So_CT")
    If Left(Cell, 2) = "PC" Then
        cboStartNum.AddItem Cell
        cboEndNum.AddItem Cell
    End If
Next
cboEndNum.Value = cboEndNum.List(cboEndNum.ListCount - 1, 0)
cboStartNum.Value = cboStartNum.List(0, 0)
With cboNumCopy
    .AddItem 1
    .AddItem 2
    .AddItem 3
    .AddItem 4
    .AddItem 5
    .Value = 1
End With
End Sub

Private Sub cboStartNum_Change()
If Trim(Mid(Replace(cboStartNum, "/", Space(10)), 3, 10)) > _
    Trim(Mid(Replace(cboEndNum, "/", Space(10)), 3, 10)) Then
MsgBox "Chon so phieu khong dung !"
cboStartNum = cboEndNum
cboStartNum.SetFocus
End If
End Sub

Private Sub cboEndNum_Change()
If Trim(Mid(Replace(cboStartNum, "/", Space(10)), 3, 10)) > _
    Trim(Mid(Replace(cboEndNum, "/", Space(10)), 3, 10)) Then
MsgBox "Chon so phieu khong dung !"
cboEndNum = cboStartNum
cboEndNum.SetFocus
End If
End Sub

Private Sub cmdPrint_Click()
Dim Rng As Range, Found As Range, StartRow As Long, EndRow As Long
With Sheets("Phat sinh").Range("So_CT")
    Set Rng = .Offset(-1).Resize(.Rows.Count + 1)
End With
StartRow = Rng.Find(cboStartNum).Row
EndRow = Rng.Find(cboEndNum).Row
Application.ScreenUpdating = False
Set Found = Rng.Find("PC*", Rng(StartRow - 5))
Do
    With Sheets("Phieu chi")
        .[I1].Value = Found
        .[I2].Value = Found.Offset(, 3)
        .[I3].Value = Found.Offset(, 4)
        .[F5].Value = Found.Offset(, 1)
        .[E7].Value = Found.Offset(, 11)
        .[E9].Value = Format(Found.Offset(, 13), "#,###")
        .[E10].Value = Found.Offset(, 12)
        .[E11].Value = Found.Offset(, 2)
        If .[F12] = "VND" Then
            .[E12].Value = Found.Offset(, 9)
            .[E13].Value = VND(.[E12])
        ElseIf .[F12] = "USD" Then
            .[E12].Value = Found.Offset(, 10)
            .[E13].Value = USD(.[E12])
        End If
        .[E14].Value = Found.Offset(, 14)
    End With
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=cboNumCopy, Collate:=True
    Set Found = Rng.FindNext(Found)
Loop While Found.Row > StartRow And Found.Row < EndRow + 1
Set Rng = Nothing: Set Found = Nothing
Application.ScreenUpdating = True
End Sub

Private Sub cmdCancel_Click()
Unload Me
End Sub
 

File đính kèm

bạn ơi, số phiếu chi của mình không phải chỉ có một dòng
ví dụ:
PC01 thanh toán tiền điện thoại Nợ TK 6427 Có TK111 số tiền 5000000
PC01 thuế GTGT được khấu trừ Nợ TK 1331 Có TK111 số tiền 50000
vậy in phiếu chi 01 nó chỉ ra số tiền ở dòng đầu thôi(5000000d) mà không phải là tổng số tiên 5500 000 và định khoản nghiệp vụ cũng chỉ là N627C111
 
bạn ơi, số phiếu chi của mình không phải chỉ có một dòng
ví dụ:
PC01 thanh toán tiền điện thoại Nợ TK 6427 Có TK111 số tiền 5000000
PC01 thuế GTGT được khấu trừ Nợ TK 1331 Có TK111 số tiền 50000
vậy in phiếu chi 01 nó chỉ ra số tiền ở dòng đầu thôi(5000000d) mà không phải là tổng số tiên 5500 000 và định khoản nghiệp vụ cũng chỉ là N627C111
Minh cung co van de tuong tu mong ai xu ly giup voi
 
Mình cũng có file muốn sửa in liên tục các bạn giúp mình nhé
 
Web KT

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

Back
Top Bottom