Hỗ trợ in hàng loạt tập PDF

Blue Softs Liên hệ QC
Status
Không mở trả lời sau này.

dinhduy

Thành viên chính thức
Tham gia
24/11/07
Bài viết
80
Được thích
9
Em chào mọi người ah!
Hiện nay, các Công ty đều dùng Hóa đơn Điện tử. Công việc đến kỳ kê khai tháng (quý) in hàng loạt hóa đơn (File PDF) trong Thư Mục đó ra. Công việc lặp đi, lặp lại và số lượng hóa đơn khá nhiều. Nhờ mọi người hỗ trợ viết giúp với ah.
Em rất cần sự giúp đỡ của mọi người. Cám ơn rất nhiều!
 

VetMini

Chuyên gia GPE
Tham gia
21/12/12
Bài viết
12,128
Được thích
15,544
Viết cái gì?
1. dùng windows explorer mở folder
2. bên góc search (gõ trên, bên phải), gõ *.pdf
3. chọn hết các files.
4. click chuột phải
5. chọn print
Mỗi tháng làm một lần có gì đâu là khó mà phải viết code.

Đừng nói với tôi là muốn "tự động" cho nó xịn nghe. Cái này muốn xịn thì dùng PowerShell chứ code VBA chỉ là đồ chơi con nít.
 
Upvote 0

Nhattanktnn

Thành viên gắn bó
Tham gia
11/11/16
Bài viết
1,818
Được thích
1,887
Donate (Momo)
Donate
Viết cái gì?
1. dùng windows explorer mở folder
2. bên góc search (gõ trên, bên phải), gõ *.pdf
3. chọn hết các files.
4. click chuột phải
5. chọn print
Mỗi tháng làm một lần có gì đâu là khó mà phải viết code.

Đừng nói với tôi là muốn "tự động" cho nó xịn nghe. Cái này muốn xịn thì dùng PowerShell chứ code VBA chỉ là đồ chơi con nít.
Theo em biết thì window giới hạn 15 flie pdf in cùng một lúc, vượt quá con số đó thì dòng print sẽ biến mất không in được
 
Upvote 0

befaint

|||||||||||||
Tham gia
6/1/11
Bài viết
12,221
Được thích
15,074
Theo em biết thì window giới hạn 15 flie pdf in cùng một lúc, vượt quá con số đó thì dòng print sẽ biến mất không in được
Vậy mỗi lần in 15 files. Cứ cho là cỡ 200 files đi, thì cũng ấn chuột mấy cái thôi à. Chưa tới 1 phút.

Mà tầm cỡ 200 hóa đơn thì không phải dạng vừa rồi. Tiền để đâu cho hết, vậy mà lại phải lo lắng in mấy tờ giấy thì hơi vô lý.
 
Upvote 0

Nhattanktnn

Thành viên gắn bó
Tham gia
11/11/16
Bài viết
1,818
Được thích
1,887
Donate (Momo)
Donate
Em chào mọi người ah!
Hiện nay, các Công ty đều dùng Hóa đơn Điện tử. Công việc đến kỳ kê khai tháng (quý) in hàng loạt hóa đơn (File PDF) trong Thư Mục đó ra. Công việc lặp đi, lặp lại và số lượng hóa đơn khá nhiều. Nhờ mọi người hỗ trợ viết giúp với ah.
Em rất cần sự giúp đỡ của mọi người. Cám ơn rất nhiều!
Bỏ chung file pdf vào 1 folder rồi thử code dưới đây (không tính folder con):
Mã:
Option Explicit
#If VBA7 Then
    Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If

Sub PrintFiles()
Dim oFile As Object, I As Long, oPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
    If Not .Show Then Exit Sub
    oPath = .SelectedItems(1)
    With CreateObject("Scripting.FileSystemObject")
        For Each oFile In .GetFolder(oPath).Files
            If .GetExtensionName(oFile.Name) = "pdf" Then
                ShellExecute Application.hwnd, "print", oFile.Path, 0&, 0&, 0&
                I = I + 1
            End If
        Next
    End With
End With
MsgBox "Da in " & I & " file Pdf"
End Sub
 
Upvote 0

VetMini

Chuyên gia GPE
Tham gia
21/12/12
Bài viết
12,128
Được thích
15,544
Vậy mỗi lần in 15 files. Cứ cho là cỡ 200 files đi, thì cũng ấn chuột mấy cái thôi à. Chưa tới 1 phút.

Mà tầm cỡ 200 hóa đơn thì không phải dạng vừa rồi. Tiền để đâu cho hết, vậy mà lại phải lo lắng in mấy tờ giấy thì hơi vô lý.
Chính vì tiền để đâu cho hết mới cần phải làm một hơi in ra cả đống cho nó xứng. Làm từng chập có khi bị chê là a-ma-tơ và mất việc.

May là công ty lớn nhưng chả có mẹ nào biết PowerShell. Chứ nếu có thì dân lười học PowerShell trước sau gì cũng mất việc.
 
Upvote 0

dinhduy

Thành viên chính thức
Tham gia
24/11/07
Bài viết
80
Được thích
9
Bỏ chung file pdf vào 1 folder rồi thử code dưới đây (không tính folder con):
Mã:
Option Explicit
#If VBA7 Then
    Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If

Sub PrintFiles()
Dim oFile As Object, I As Long, oPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
    If Not .Show Then Exit Sub
    oPath = .SelectedItems(1)
    With CreateObject("Scripting.FileSystemObject")
        For Each oFile In .GetFolder(oPath).Files
            If .GetExtensionName(oFile.Name) = "pdf" Then
                ShellExecute Application.hwnd, "print", oFile.Path, 0&, 0&, 0&
                I = I + 1
            End If
        Next
    End With
End With
MsgBox "Da in " & I & " file Pdf"
End Sub
Em cám ơn anh rất nhiều ah !
 
Upvote 0

VetMini

Chuyên gia GPE
Tham gia
21/12/12
Bài viết
12,128
Được thích
15,544
... sao giờ cháu mới nghe cái powershell là sao nhỉ,
Tại vì bạn không chịu cập nhật kiến thức Windows.
PowerShell đi theo Windows (phiên bản Professional trở lên).

Ngày xưa Windows dùng cmd để chạy lệnh trong shell. Nhưng như vậy thì thua sút bọn Linux quá, người ta có Bash Shell (hay gì gì đó Shell tuỳ theo phiên bản Unix). Các lệnh Unix chạy hoành tráng, và script cũng êm như nhung.

PowerShell đại khái cũng êm như tơ lụa. Chỉ là các vị ở đây thấy nhờ được VBA dễ quá nên lười học cách sử dụng và script thôi. Điển hình là việc in ấn pdf hoàn toàn chả liên quan gì đến Excel mà cũng lôi vào đây, đã vậy còn mở đầu "Hiện nay, các Công ty đều dùng...".
 
Upvote 0

dinhduy

Thành viên chính thức
Tham gia
24/11/07
Bài viết
80
Được thích
9
Cám ơn mọi người đã quan tâm ah. Kiến thức mỗi người đều có giới hạn. Nếu như người ta sai thì mình nhắc nhở, có thể bạn giỏi ở lĩnh vực nhưng chưa chắc biết hết mọi thứ kể cả lĩnh vực bạn giỏi.
Nhờ ban quản trị vui lòng đóng topic giúp, cám ơn !
 
Upvote 0

Phuocam

Thành viên mới
Tham gia
16/5/13
Bài viết
3,444
Được thích
4,916
Donate (Momo)
Donate
Cám ơn mọi người đã quan tâm ah. Kiến thức mỗi người đều có giới hạn. Nếu như người ta sai thì mình nhắc nhở, có thể bạn giỏi ở lĩnh vực nhưng chưa chắc biết hết mọi thứ kể cả lĩnh vực bạn giỏi.
Nhờ ban quản trị vui lòng đóng topic giúp, cám ơn !
Câu này có nhiều trên diễn đàn này, hahaha .....a

.
 
Upvote 0
Status
Không mở trả lời sau này.
Top Bottom