MAIL MERGE TỪ EXCEL SANG EXCEL

MAIL MERGE TỪ EXCEL SANG EXCEL

Các bạn biết đấy, thông thường nhắc tới mail merge thì người ta thường nghĩ tới việc kết hợp giữa excel và word, như ở bài hướng dẫn mail merge trong word, nhưng trong nhiều trường hợp các bạn không muốn sử dụng word, hay nói cách khác là mail merge không cần mở file word.

Cụ thể như các bạn có một form soạn thảo từ excel chứa rất nhiều chỉ tiêu vô định, việc sử dụng trên excel sẽ khiến các bạn dễ dàng hơn vì có thể sử dụng công thức dò tìm các chỉ tiêu không cố định này, như các bạn in thư mời khách hàng dựa vào một danh sách cố định, in toàn bộ giấy phép của nhân viên…

Hôm nay TTV sẽ chia sẻ với các bạn một thủ thuật excel thú vị đó là “mail merge từ excel sang excel” bằng cách sử dụng VBA excel, bạn mà giỏi VBA thì hiệu xuất làm việc của bạn sẽ tăng lên rất nhiều. Cùng theo dõi bài viết bên dưới nào.

Trong ví dụ sau, mình có Form thông tin như hình dưới, có hai giá trị bôi vàng sẽ thay đổi, và muốn in hàng loạt form này theo từng khách hàng khác nhau dựa vào danh sách khách hàng, nếu bạn cứ gõ từng khách rồi in thì có lẽ với hàng ngàn khách hàng bạn sẽ mất cả ngày làm việc.
Nhưng TTV sẽ hướng dẫn các bạn in toàn bộ trong một click chuột “mail merge từ excel sang excel”.
File này mình có 2 sheet FORM và  DANH SÁCH tương ứng 2 hình sau:


Đây là danh sách khách hàng chứa các thông tin tương ứng cần điền vào form mẫu.

Bước 1: Đầu tiên bạn cố định lại vùng cần in, để khi in không lẫn những vùng khác vào.

Bước 2: Bây giờ ở ngoài vùng in các bạn làm như sau, ở ô M2 các bạn tô vàng lên, và để trống vậy, tiếp theo ô O1 và O2 các bạn dùng để gõ mã số khách hàng cần in hàng loạt, hoặc toàn bộ.

Còn các chỉ tiêu thay đổi như khách hàng, tiền… các bạn cứ sử dụng công thức dò dựa vào Mã khách hàng ở ô M2 và sheet Danh Sách khách hàng như thông thường. Để biết công thức đúng hay sai, hãy gõ một Mã khách hàng bất kỳ vào ô M2.



Bước 3: Tiếp theo các bạn vào Insert – vùng Illustrations – Shapes và chọn một hình bất kỳ để vẽ vào một vùng ngoài vùng cần in ra.

– Rồi gõ nội dung gì tùy bạn, cơ bản là như thế này

Bước 4: Xong rồi hãy click chuột phải vào nó và chọn Assign Macro

– 
Ở hộp thoại Assign Macro tại Macro Name hãy đặt tên là PRINT_PRINT sau đó vào New

Bước 5: 
Bạn thấy vùng trống ở giữa Sub PRINT_PRINT() và End Sub chứ, hãy copy đoạn code bên dưới dán vào giữa chúng, các bạn chú ý copy đúng và đầy đủ, tránh bị bỏ sót ký tự, nếu không code sẽ không hoạt động được.


Code:
Dim p1, p2, i&

p1 = Sheet1.Range(“O1”).Value
p2 = Sheet1.Range(“O2”).Value

If IsNumeric(p1) = False Or IsNumeric(p2) = False Then
tb = MsgBox(“So code phai la so.”, , “Thông báo”)
Exit Sub
End If

If p1 > p2 Then
tb = MsgBox(“So code sau phai >= so code truoc.”, , “Thông báo”)
Exit Sub
End If

If p1 < 1 Or p2 < 1 Then
tb = MsgBox(“So code phai >= 1.”, , “Thông báo”)
Exit Sub
End If

If p1 <= p2 Then
    For i = p1 To p2
    Sheet1.Range(“M2”).Value = i
    Sheet1.PrintOut
    Next
End If

Bước 6
Tắt cửa sổ vba excel đi và quay lại file excel, lúc này bạn muốn in từ khách hàng nào tới khách hàng nào thì cứ việc gõ Mã khách hàng vào ô O1, và O2, sau đó nhấn vào nút In vừa tạo.

Chỉ với 1 đoạn Code như trên thì chúng ta đã có thể mail merge từ excel sang excel rồi, giờ thì chỉ cần 1 click chuột là bạn có thể in được danh sách phiếu khách hàng tương ứng. Và bạn đừng quên lưu file dưới dạng Macro (.xlsm) đấy nhé.

TTV chúc các bạn thành công!

——————————–

TRUNG TÂM ĐÀO TẠO TIN HỌC TRÍ TUỆ VIỆT

CS1: 451 Điện Biên Phủ, Phường 25 – Quận Bình Thạnh – TP.HCM
CS2: 213 Đường 3/2, Phường 9 – Quận 10 – TP.HCM
CS3: 84T/8 Trần Đình Xu – Quận 1 – TP.HCM
Hotline: 0902.936.936

3/5 - (1 bình chọn)
0902.936.936