Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba (2 người xem)

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

ongke0711

Thành viên gắn bó
Tham gia
7/9/06
Bài viết
2,515
Được thích
3,464
Giới tính
Nam
Chào các bạn,
Tôi ngồi mò mẫm mấy ngày mới tìm được cách tải hóa đơn điện tử từ trang https://hoadondientu.gdt.gov.vn/. Cách này có thể không chuyên nghiệp nhưng cũng giải quyết được vấn đề tải hóa đơn hàng loạt từ trang trên và ghi xuống Excel theo định dạng dễ tổng hợp dữ liệu sau này.
- Tốc độ không nhanh như các ứng dụng python siêu nhanh.
- Chưa tìm được các link tải file .xml hoặc .html
- Chưa trải nghiệm qua các định dạng hóa đơn điện tử của các nhà cung cấp giải pháp khác nhau nên sẽ không đảm bảo chạy đúng 100%.
- Chưa biết cách tích hợp code vượt Captcha của (Python, C#..) vào VBA nên phải nhập Captcha thủ công.
Nói chung cái tool cũng giải quyết được việc tải hóa đơn hàng loạt :D .
Tôi sẽ upload file demo không khóa (có khóa cũng như không) sau vì code còn lộn xộn lắm. Các bạn xem qua và đóng góp cách xử lý tốt hơn, gọn hơn nhé.


*** 12/10/2024: Cập nhật sửa một đống lỗi.
*** 15/10/2024: Cập nhật sửa lỗi Null và nhập ngày tháng.
*** 16/10/2024: Thêm tính năng lưu User/Pass.
*** 20/10/2024: Sửa lỗi hiển thị ngày tháng, sửa và thêm một số code phụ trợ.
*** 28/10/2024: Sửa lấy hóa đơn từ máy tính tiền.
*** 07/11/2024: Sửa code trích xuất dữ liệu, thêm cột so sánh.
*** 13/11/2024: Dùng code của bạn Hesanbi để tự động nhập Captcha. Thêm code lấy link tra cứu của VNPT và BKAV.
*** 05/02/2025: Thêm code tải file Zip và trích xuất dữ liệu hóa đơn từ file XML. Sửa một số lỗi.
*** 23/02/2025: Sửa lỗi hiển thị sai <Trạng thái hóa đơn>.
*** 10/05/2026: Cập nhật do trang hoadondientu thay đổi thiết kế.
 

File đính kèm

Lần chỉnh sửa cuối:
1. Đăng nhập vào xong chọn kỳ 01/04/26 - 30/04/26, bấm tải Hdon, đợi load 1 hồi thông báo Xong, rồi hiện lên các bảng như hình 1 + 2
2. Bấm tổng hợp hdon chi tiết XML chọn đường dẫn đã lưu hiện lỗi như hình 3
 

File đính kèm

  • 1778480855718.png
    1778480855718.png
    113.4 KB · Đọc: 67
  • 1778480875940.png
    1778480875940.png
    116.4 KB · Đọc: 35
  • 1778480906758.png
    1778480906758.png
    28.4 KB · Đọc: 38
Upvote 0
1. Đăng nhập vào xong chọn kỳ 01/04/26 - 30/04/26, bấm tải Hdon, đợi load 1 hồi thông báo Xong, rồi hiện lên các bảng như hình 1 + 2
2. Bấm tổng hợp hdon chi tiết XML chọn đường dẫn đã lưu hiện lỗi như hình 3
- Cái lỗi thư mục không có chứa file XML thì bạn vô File Explorer - View - Show - chọn Filename and extension nhe.
- Do tôi chưa sửa đường dẫn web (url) để tải file XML/zip nên bị lỗi tải file ở trên.


* Đã cập nhật file. Bạn vô bài #694 để tải lại nhé.
Mới test tải về 493 file .zip nhưng báo lỗi gửi nhiều yêu cầu tới máy chủ quá. Do vậy các bạn chia nhỏ ngày ra tải nhé.

Screenshot 2026-05-11 at 2.50.59 PM.png
 
Lần chỉnh sửa cuối:
Upvote 0
Cái trang vnpt bạn tra cứu hoá đơn là trang nào? Tôi thấy có mấy cái link.
À cái trang mà khách hàng sử dụng dịch vụ của Bưu chính viễn thông dạng: mst-tt78.invoice.vnpt.vn... nó ra cái mã captcha như bác gửi bên trên đó.
 
Upvote 0
- Cái lỗi thư mục không có chứa file XML thì bạn vô File Explorer - View - Show - chọn Filename and extension nhe.
- Do tôi chưa sửa đường dẫn web (url) để tải file XML/zip nên bị lỗi tải file ở trên.


* Đã cập nhật file. Bạn vô bài #694 để tải lại nhé.
Mới test tải về 493 file .zip nhưng báo lỗi gửi nhiều yêu cầu tới máy chủ quá. Do vậy các bạn chia nhỏ ngày ra tải nhé.

Chào các bạn,
Tôi ngồi mò mẫm mấy ngày mới tìm được cách tải hóa đơn điện tử từ trang https://hoadondientu.gdt.gov.vn/. Cách này có thể không chuyên nghiệp nhưng cũng giải quyết được vấn đề tải hóa đơn hàng loạt từ trang trên và ghi xuống Excel theo định dạng dễ tổng hợp dữ liệu sau này.
- Tốc độ không nhanh như các ứng dụng python siêu nhanh.
- Chưa tìm được các link tải file .xml hoặc .html
- Chưa trải nghiệm qua các định dạng hóa đơn điện tử của các nhà cung cấp giải pháp khác nhau nên sẽ không đảm bảo chạy đúng 100%.
- Chưa biết cách tích hợp code vượt Captcha của (Python, C#..) vào VBA nên phải nhập Captcha thủ công.
Nói chung cái tool cũng giải quyết được việc tải hóa đơn hàng loạt :D .
Tôi sẽ upload file demo không khóa (có khóa cũng như không) sau vì code còn lộn xộn lắm. Các bạn xem qua và đóng góp cách xử lý tốt hơn, gọn hơn nhé.


*** 12/10/2024: Cập nhật sửa một đống lỗi.
*** 15/10/2024: Cập nhật sửa lỗi Null và nhập ngày tháng.
*** 16/10/2024: Thêm tính năng lưu User/Pass.
*** 20/10/2024: Sửa lỗi hiển thị ngày tháng, sửa và thêm một số code phụ trợ.
*** 28/10/2024: Sửa lấy hóa đơn từ máy tính tiền.
*** 07/11/2024: Sửa code trích xuất dữ liệu, thêm cột so sánh.
*** 13/11/2024: Dùng code của bạn Hesanbi để tự động nhập Captcha. Thêm code lấy link tra cứu của VNPT và BKAV.
*** 05/02/2025: Thêm code tải file Zip và trích xuất dữ liệu hóa đơn từ file XML. Sửa một số lỗi.
*** 23/02/2025: Sửa lỗi hiển thị sai <Trạng thái hóa đơn>.
*** 10/05/2026: Cập nhật do trang hoadondientu thay đổi thiết kế.
đợt này mã tra cứu hóa đơn của misa nó không hiện ra nữa a, a khắc phục giúp em với
 
Upvote 0
Đang dùng ổn định thì một ngày đẹp trời hiện ra lỗi này. Các bác hổ trợ giúp e với ạ !?!

Loi.pngLoi 2.png
 
Upvote 0
Upvote 0
E mới tải bản v6.2 của chủ thớt nhưng bị lỗi vầy, nhờ anh chị em hỗ trợ giúp
 

File đính kèm

  • 1778572099281.png
    1778572099281.png
    142.5 KB · Đọc: 42
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Nếu các bạn đang dùng file cũ thì cũng có thể tự sửa đường dẫn web (url) như sau:
- Mở màn hình để code VBE: Atl + F11
- Mở menu Edit - chọn Replace, làm như hình:

Screenshot at May 13 11-12-00 AM.png
 
Upvote 0
Upvote 0
em có tải bản v6.2 lúc mở file để đăng nhập lần đầu thì hiện thông báo như ảnh, nhờ anh chị hỗ trợ giúp em lỗi này với ạ
1778656795025.png
 
Upvote 0

File đính kèm

  • z7822170330670_fe56f6b6243149c4ff3b680366a226b4.jpg
    z7822170330670_fe56f6b6243149c4ff3b680366a226b4.jpg
    43 KB · Đọc: 31
  • z7822171109437_dbbbafb40522e37c02d0f9a359f0e8d3.jpg
    z7822171109437_dbbbafb40522e37c02d0f9a359f0e8d3.jpg
    48.8 KB · Đọc: 34
Upvote 0
file cũ mình đã laycapcha và cái api theo cách bạn chỉ nhưng vẫn bị báo lỗi này á.
Lỗi đó do cái hàm httpGet() thiết lập cũ sai một chút.
Bỏ hàm layTenDV(), do còn lỗi chưa lấy được.
Bạn vô màn hình code, tìm kiếm cái hàm trên rồi thay thế, bỏ một số dòng như bên dưới:

JavaScript:
Function httpGet(ByVal url As String, bearer As String, res As String) As Boolean
    On Error GoTo EH
   
    With xmlHttp 'CreateObject("MSXML2.serverXMLHTTP.6.0")
        .Open "GET", url, False
        .setRequestHeader "User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
        .setRequestHeader "Accept", "application/json"
        .setRequestHeader "Content-type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & bearer & ""
        .send


Screenshot at May 13 9-50-16 PM.png
 
Lần chỉnh sửa cuối:
Upvote 0
Lỗi đó do cái hàm httpGet() thiết lập cũ sai một chút.
Bạn vô màn hình code, tìm kiếm cái hàm trên rồi thay thế, bỏ một số dòng như bên dưới:

JavaScript:
Function httpGet(ByVal url As String, bearer As String, res As String) As Boolean
    On Error GoTo EH
   
    With xmlHttp 'CreateObject("MSXML2.serverXMLHTTP.6.0")
        .Open "GET", url, False
        .setRequestHeader "User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
        .setRequestHeader "Accept", "application/json"
        .setRequestHeader "Content-type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & bearer & ""
        .send


View attachment 311636
cảm ơn @ongke0711 nhé. chạy file cũ được rồi á.
Bài đã được tự động gộp:

View attachment 311637
hóa đơn mới là nó hiển thị chữ tất cả, còn hóa đơn thay thế thì nó hiển thị hóa đơn mới à ad
bạn vào cái mình gửi dưới sửa lại I2 thành I3 là được nhé. nêu siêng thì bạn coi lại các trang trước có hướng dẫn sửa các lỗi á.
 

File đính kèm

  • z7823268127366_8d6e7ffe7c097b3ff28a6d084c5f4394.jpg
    z7823268127366_8d6e7ffe7c097b3ff28a6d084c5f4394.jpg
    39.5 KB · Đọc: 36
Upvote 0
2.png
E đã khắc phục được lỗi này. Trong hàm "ApiGet", các bác chỉnh lại đoạn code sau:

Public Function ApiGet(ByVal urlPath As String) As String
Dim http As Object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
http.Open "GET", urlPath, False
http.setRequestHeader "Authorization", "Bearer " & getToken()
http.setRequestHeader "Accept", "application/json"
http.setRequestHeader "User-Agent", "Mozilla/5.0 ExcelVBA-HDDT"

On Error Resume Next
http.send

If err.Number <> 0 Then
err.Clear
ApiGet = ""
Exit Function
End If

If http.Status = 401 Or http.Status = 403 Then
 
Lần chỉnh sửa cuối:
Upvote 0
cảm ơn @ongke0711 nhé. chạy file cũ được rồi á.
Bài đã được tự động gộp:


bạn vào cái mình gửi dưới sửa lại I2 thành I3 là được nhé. nêu siêng thì bạn coi lại các trang trước có hướng dẫn sửa các lỗi á.
chạy ok rồi b. Thanks b nhiều nha
 
Upvote 0
Mọi người cho em hỏi cái file đó tải về cái link hóa đơn gốc copy dán vào không ra nhỉ, có cách nào khác không , cám ơn mọi người.
 
Upvote 0
Mọi người cho em hỏi cái file đó tải về cái link hóa đơn gốc copy dán vào không ra nhỉ, có cách nào khác không , cám ơn mọi người.
Chỉ có cách tinh chỉnh link thôi. Và tùy chỉnh này chỉ tác dụng cục bộ ở phạm vi từng đơn vị.
 
Upvote 0
Không tải về được CHI TIẾT hóa đơn bán hàng (các mục hóa đơn còn lại tải về bình thường). Các bác hổ trợ giúp e với ạ !?!
 
Upvote 0
Mấy bữa nay anh em vào test chức năng nhiều quá. Trang thuế quay đơ ra không tải được gì hết.
 
Upvote 0
Bạn tải lại file đi. File này cũ rồi.
Không tải về được CHI TIẾT hóa đơn bán hàng (các mục hóa đơn còn lại tải về bình thường). Bác ongke0711 hổ trợ giúp e với ạ !?!

Sau khi chạy lấy thông tin CHI TIẾT hóa đơn bán hàng thì mình lấy được giá trị url2 :


Và khi gán giá trị vào hàm ApiGet thì bị tạo ra giá trị "res" bị "rỗng" không hợp lệ như hình đính kèm
res = ApiGet(url2)

Nhưng nếu áp dụng với hóa đơn mua hàng thì res vẫn có giá trị
 

File đính kèm

  • 1.png
    1.png
    9.8 KB · Đọc: 11
  • 2.png
    2.png
    10.7 KB · Đọc: 8
Upvote 0
Không tải về được CHI TIẾT hóa đơn bán hàng (các mục hóa đơn còn lại tải về bình thường). Bác ongke0711 hổ trợ giúp e với ạ !?!

Sau khi chạy lấy thông tin CHI TIẾT hóa đơn bán hàng thì mình lấy được giá trị url2 :


Và khi gán giá trị vào hàm ApiGet thì bị tạo ra giá trị "res" bị "rỗng" không hợp lệ như hình đính kèm
res = ApiGet(url2)

Nhưng nếu áp dụng với hóa đơn mua hàng thì res vẫn có giá trị
Theo như chuỗi url bạn đưa lên thì thiếu tham số chỗ "sort=" rồi.
sort = "tdlap:desc"
 
Upvote 0
Gặp link sai so với quy luật của tổ chức cung cấp hoá đơn thì tìm cách khắc phục lấy link đúng thôi. Bạn cần thì mình hỗ trợ riêng ngoài.
 
Upvote 0
Chào các bạn,
Tôi ngồi mò mẫm mấy ngày mới tìm được cách tải hóa đơn điện tử từ trang https://hoadondientu.gdt.gov.vn/. Cách này có thể không chuyên nghiệp nhưng cũng giải quyết được vấn đề tải hóa đơn hàng loạt từ trang trên và ghi xuống Excel theo định dạng dễ tổng hợp dữ liệu sau này.
- Tốc độ không nhanh như các ứng dụng python siêu nhanh.
- Chưa tìm được các link tải file .xml hoặc .html
- Chưa trải nghiệm qua các định dạng hóa đơn điện tử của các nhà cung cấp giải pháp khác nhau nên sẽ không đảm bảo chạy đúng 100%.
- Chưa biết cách tích hợp code vượt Captcha của (Python, C#..) vào VBA nên phải nhập Captcha thủ công.
Nói chung cái tool cũng giải quyết được việc tải hóa đơn hàng loạt :D .
Tôi sẽ upload file demo không khóa (có khóa cũng như không) sau vì code còn lộn xộn lắm. Các bạn xem qua và đóng góp cách xử lý tốt hơn, gọn hơn nhé.


*** 12/10/2024: Cập nhật sửa một đống lỗi.
*** 15/10/2024: Cập nhật sửa lỗi Null và nhập ngày tháng.
*** 16/10/2024: Thêm tính năng lưu User/Pass.
*** 20/10/2024: Sửa lỗi hiển thị ngày tháng, sửa và thêm một số code phụ trợ.
*** 28/10/2024: Sửa lấy hóa đơn từ máy tính tiền.
*** 07/11/2024: Sửa code trích xuất dữ liệu, thêm cột so sánh.
*** 13/11/2024: Dùng code của bạn Hesanbi để tự động nhập Captcha. Thêm code lấy link tra cứu của VNPT và BKAV.
*** 05/02/2025: Thêm code tải file Zip và trích xuất dữ liệu hóa đơn từ file XML. Sửa một số lỗi.
*** 23/02/2025: Sửa lỗi hiển thị sai <Trạng thái hóa đơn>.
*** 10/05/2026: Cập nhật do trang hoadondientu thay đổi thiết kế.
Bấc ơi, hiện tại sao file không connect được nữa bác nhỉ?
 
Upvote 0

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

Back
Top Bottom