Nhờ thầy hướng dẫn cách ngăn ngừa khi file đã chọn, đã copy dữ liệu xong thì VBA sẽ không cho phép chọn nữa như thầy đã nói cuối bài giảng . Không biết các đoạn code viết thế nào???
Chào bạn việc ngăn ngừa file đã chọn rất khó nhưng việc lấy dữ liệu ở file chọn nếu đã có sẽ không lấy lại lần 2 thì đơn giản hơn.
Trong file đã chọn sẽ có 1 trường là duy nhất ở có thể là tháng.
Ta cần so sánh tháng với tháng đã có cái này có thể dùng countif để so nếu tháng >=1 ta không lấy dữ liệu, ngược lại ta sẽ lấy dữ liệu.
bạn có thể thêm 1 lệnh so sánh xem dữ liệu đã tồn tại chưa, nếu đã tồn tại thì bỏ qua, không lấy dữ liệu nữa.
Bạn sử dụng hàm COUNTIF trong VBA để đếm như sau:
IF Application.WorksheetFunction.COUNTIF(Range("A3:A" & lr), 1)=0 then
'lệnh copy dữ liệu tháng 1
End if
(tức là nếu đếm countif mà lớn hơn 0 thì đã có dữ liệu tháng 1, sẽ không làm lệnh copy dữ liệu tháng 1 nữa.
trong đó: Bắt đầu đếm từ ô A3, đếm trong vùng từ A3 tới dòng cuối có dữ liệu cột A (lr là biến dòng cuối đã xác định trước đó)
thầy ơi phải là bắt đầu từ ô A6 chứ ạ? vì từ A6 mới là vùng bắt đầu nhận dữ liệu từ các file chi tiết
Chào bạn vùng bắt đầu bạn có thể thay đổi sao phù hợp file bạn đang làm.