In file pdf theo danh sách trong excel

Liên hệ QC

VuVanHao

Thành viên thường trực
Tham gia
20/6/18
Bài viết
246
Được thích
118
Em nhờ mọi người giúp đỡ ạ
Em có 2 folder, 1 folder PKN chứa các file pdf, 1 folder còn lại có chứa file excel. Trong file exel có 2 sheet, sheet Data là danh sách mã số theo vị thuốc của em, mã số đó trùng với tên file pdf trong folder PKN. Nhiệm vụ của em là khi yêu cầu in 1 số vị thuốc trong tổng số đó.
Như ví dụ, em cần in 3 vị trong sheet HELP, em vlookup được mã số của vị đó, mã cũng là tên của file pdf ý ạ
Nhờ mọi người chỉ giúp để em in được hàng loạt theo danh sách trong sheet HELP ạ
Vì thực tế là in tầm 150 mã trên tổng số 500 mã ạ
Em cảm ơn!
 

File đính kèm

  • Help_GPE.rar
    474.5 KB · Đọc: 27
Em nhờ mọi người giúp đỡ ạ
Em có 2 folder, 1 folder PKN chứa các file pdf, 1 folder còn lại có chứa file excel. Trong file exel có 2 sheet, sheet Data là danh sách mã số theo vị thuốc của em, mã số đó trùng với tên file pdf trong folder PKN. Nhiệm vụ của em là khi yêu cầu in 1 số vị thuốc trong tổng số đó.
Như ví dụ, em cần in 3 vị trong sheet HELP, em vlookup được mã số của vị đó, mã cũng là tên của file pdf ý ạ
Nhờ mọi người chỉ giúp để em in được hàng loạt theo danh sách trong sheet HELP ạ
Vì thực tế là in tầm 150 mã trên tổng số 500 mã ạ
Em cảm ơn!
Bạn mô tả chi tiết hơn về vấn đề cần thực hiện, nêu ví dụ mẫu thực tế.
 
Bạn mô tả chi tiết hơn về vấn đề cần thực hiện, nêu ví dụ mẫu thực tế.
Dạ,
Bước 1: Em có danh sách các vị thuốc cần in, danh sách là các vị ở sheet Help trong file Help_GPE trong folder Data.
Bước 2: Từ danh sách đó, em tìm ra mã của nó dựa vào sheet Data trong file excel đó ạ, mã của nó cũng chính là tên file pdf ở folder PKN mà em muốn in ạ
Bình thường em tìm mã xong rồi vào folder PKN in từng mã 1. Tên file pdf em đánh số để dễ tìm ạ
 
Dạ,
Bước 1: Em có danh sách các vị thuốc cần in, danh sách là các vị ở sheet Help trong file Help_GPE trong folder Data.
Bước 2: Từ danh sách đó, em tìm ra mã của nó dựa vào sheet Data trong file excel đó ạ, mã của nó cũng chính là tên file pdf ở folder PKN mà em muốn in ạ
Bình thường em tìm mã xong rồi vào folder PKN in từng mã 1. Tên file pdf em đánh số để dễ tìm ạ
Vậy mục đích cuối cùng của bạn là gì? muốn in tất cả các file pdf có tên trùng với các mã trong sheet HELP đúng không?
 
Em dùng win 64bit không biết có ảnh hưởng không mà nó báo chữ đỏ dòng này ạ
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
 
Em dùng win 64bit không biết có ảnh hưởng không mà nó báo chữ đỏ dòng này ạ
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
Bạn thử thay dòng đó bằng đoạn code này thử xem sao.
Mã:
#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
 
Bạn thử thay dòng đó bằng đoạn code này thử xem sao.
Mã:
#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
Nó vẫn báo lỗi anh ạ :(((
 

File đính kèm

  • 12.png
    12.png
    48.7 KB · Đọc: 27
Nó vẫn báo lỗi anh ạ :(((
Bạn sửa lại thế này nè.
Mã:
#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
 
Bạn sửa lại thế này nè.
Mã:
#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
Nó lại bị lỗi thế này anh ạ :(((
 

File đính kèm

  • 13.png
    13.png
    39.3 KB · Đọc: 28
Nó lại bị lỗi thế này anh ạ :(((
Sửa lại lần cuối nhé.
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
Public Function PrintThisDoc(formname As Long, FileName As String)
On Error Resume Next
Dim X
X = ShellExecute(formname, "Print", FileName, 0&, 0&, 3)
End Function
 
Sub testPrint()
Dim printThis, Arr()
Dim strDir As String
Dim i As Integer
strDir = ThisWorkbook.Path & "\PKN\"
Arr = Sheet2.Range("C2:C" & Sheet2.Range("C65000").End(xlUp).Row).Value
For i = 1 To UBound(Arr)
    printThis = PrintThisDoc(0, strDir & Arr(i, 1) & ".PDF")
Next i
End Sub
 
Sửa lại lần cuối nhé.
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
Public Function PrintThisDoc(formname As Long, FileName As String)
On Error Resume Next
Dim X
X = ShellExecute(formname, "Print", FileName, 0&, 0&, 3)
End Function

Sub testPrint()
Dim printThis, Arr()
Dim strDir As String
Dim i As Integer
strDir = ThisWorkbook.Path & "\PKN\"
Arr = Sheet2.Range("C2:C" & Sheet2.Range("C65000").End(xlUp).Row).Value
For i = 1 To UBound(Arr)
    printThis = PrintThisDoc(0, strDir & Arr(i, 1) & ".PDF")
Next i
End Sub
Chuẩn rồi anh ạ
Em cảm ơn ạ
Anh cho em hỏi là cái sub ý nó tìm folder PKN thế nào ạ, em sợ để chỗ khác nó không tìm thấy =))
 
Chuẩn rồi anh ạ
Em cảm ơn ạ
Anh cho em hỏi là cái sub ý nó tìm folder PKN thế nào ạ, em sợ để chỗ khác nó không tìm thấy =))
Sửa testPrint lại chút.
Mã:
Sub testPrint()
Dim printThis, Arr()
Dim strDir As String
Dim i As Integer, chk As Boolean
chk = Application.FileDialog(msoFileDialogFolderPicker).Show
If Not chk Then Exit Sub
strDir = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Arr = Sheet2.Range("C2:C" & Sheet2.Range("C65000").End(xlUp).Row).Value
For i = 1 To UBound(Arr)
    printThis = PrintThisDoc(0, strDir & Arr(i, 1) & ".PDF")
Next i
End Sub
 
Sửa testPrint lại chút.
Mã:
Sub testPrint()
Dim printThis, Arr()
Dim strDir As String
Dim i As Integer, chk As Boolean
chk = Application.FileDialog(msoFileDialogFolderPicker).Show
If Not chk Then Exit Sub
strDir = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Arr = Sheet2.Range("C2:C" & Sheet2.Range("C65000").End(xlUp).Row).Value
For i = 1 To UBound(Arr)
    printThis = PrintThisDoc(0, strDir & Arr(i, 1) & ".PDF")
Next i
End Sub
Chuẩn chỉ rồi anh ạ
Em cảm ơn!
 
Em là đến bước này mà sao truy cập đến Foder chứa thì nó không hiện ạ 1589873543624.png
 

File đính kèm

  • 1.png
    1.png
    104.6 KB · Đọc: 21
Mình chọn forder PKN rồi [OK], Nó vẫn ko có động tĩnh gì ông ạ, Code mình như này đúng ko ông, thấy có dòng đỏ, Mình thay theo của anh
giaiphap chỉ.
Mình đã test trên office 32 và 64 bit đều ngon cả. Cái đường dẫn đến folder bạn không nên để tiếng việt có dấu nhé
 
Web KT
Back
Top Bottom