Giúp mình CẬP NHẬT dữ liệu TỰ ĐỘNG GIỮA CÁC SHEET theo định dạng

  • Thread starter Thread starter romkut3
  • Ngày gửi Ngày gửi
Liên hệ QC

romkut3

Thành viên hoạt động
Tham gia
9/4/13
Bài viết
109
Được thích
3
Tình hình là em có 1 file mẫu, muốn tự động cập nhật từ sheet này sang sheet khác có định dạng, làm thủ công thì lâu mà không biết gì về vba hết nên nhờ các anh(chị) rành giúp em làm 1 file mẫu này đê học từ từ, cảm ơn các anh chị!
 

File đính kèm

em lụm lặc và sửa code như vầy sao nó k tự động coppy qua... anh chị nào biết chỉ cho em thiếu code chỗ nào, tuy bấm chạy được k báo lỗi nhưng mà nó không có coppy
Option ExplicitSub import_data()
Dim master As Worksheet, sh As Worksheet
Dim wk As Workbook
Dim iFileNum As Integer, iLastRowReport As Integer, iNumberOfRowsToPaste As Integer
Dim strFileName As String
Dim rShThua As Range, rTenChu As Range, rDiaChiThuaDat As Range, rDiaChiCSD As Range, rMDSD As Range, rDientich As Range
Dim rDienTichThuHoi As Range, rToBanDo As Range, rDTMuonTam As Range
Dim iCurrentLastRow As Integer, iRowStartToPaste As Integer


Set master = ActiveWorkbook.Sheets("thongke")
Set sh = ActiveWorkbook.Sheets("sheet1")
With master
iLastRowReport = .Range("A" & Rows.Count).End(xlUp).Row
iNumberOfRowsToPaste = iLastRowReport - 6 + 1

Set rShThua = .Range("F6:f" & iLastRowReport)
Set rTenChu = .Range("b6:b" & iLastRowReport)
Set rDiaChiThuaDat = .Range("d6:d" & iLastRowReport)
Set rDiaChiCSD = .Range("c6:c" & iLastRowReport)
Set rMDSD = .Range("H6:H" & iLastRowReport)
Set rDientich = .Range("g6:g" & iLastRowReport)
Set rDienTichThuHoi = .Range("I6:i" & iLastRowReport)
Set rToBanDo = .Range("e6:e" & iLastRowReport)
With sh
iCurrentLastRow = .Range("A" & Rows.Count).End(xlUp).Row
iRowStartToPaste = iCurrentLastRow + 1

.Range("A" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rShThua.Value2
.Range("B" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rTenChu.Value2
.Range("D" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDiaChiThuaDat.Value2
.Range("E" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDiaChiCSD.Value2
.Range("F" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rMDSD.Value2
.Range("g" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDientich.Value2
.Range("i" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rDienTichThuHoi.Value2
.Range("n" & iRowStartToPaste).Resize(iNumberOfRowsToPaste, 1) = rToBanDo.Value2
End With

End With

End Sub
 
Bạn tham khảo file này:
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Bạn tham khảo file này:
cảm ơn bạn đã giúp đỡ, nhưng nó thiếu 1 cột TObando rồi, cho mình hỏi thêm sao mình nhập thêm 1 hàng ở CSDL sao nó k tự động cập nhật sang bên bảng Tke nhỉ... có thể thêm code để nó thêm hoặc tự xóa đi khi ta thay đổi ở CSDL k?

À thêm nữa trong code bạn có thể ghi rõ nó là gì giúp mình đc k? mình đọc k hiểu lắm do mới làm quen sơ sơ à, thanks bạn
 
Lần chỉnh sửa cuối:
. . , (1) nhưng nó thiếu 1 cột TObando rồi, (2)cho mình hỏi thêm sao mình nhập thêm 1 hàng ở CSDL sao nó k tự động cập nhật sang bên bảng Tke nhỉ... có thể thêm code để nó thêm hoặc tự xóa đi khi ta thay đổi ở CSDL k?
(3) À thêm nữa trong code bạn có thể ghi rõ nó là gì giúp mình đc k? mình đọc k hiểu lắm do mới làm quen sơ sơ à, thanks bạn
(1) Cột [Tở BanDo] chỉ có ở trang mà mình đổi tên thành 'Luu'; Trang hiện có tên là 'TKe' bạn để trống cột cột [E:E] mà; Do bạn, nên bạn tự mà tìm cách khắc fục thôi!

(2) Bạn fải nêu rõ là thêm vô bao nhiêu dòng, & cụ thể là dòng số bao nhiêu?
Dù gì chăng nữa, không thể vượt quá 599 dòng.

(3) Chờ đến thứ hai, nha! Mai đi công chuyện ở ĐN rồi!
 
thanks bạn quan tâm, cái (1) khi bạn giải thích trong code mình sẻ tự khắc phục. Còn cái nó tự thêm dòng thì nó rất nhiều, ý là k có giới hạn ấy... ý của bạn nói là cái code của bạn nó hạn chế k cho vượt mức dòng sao bạn?
 
(1) Cột [Tở BanDo] chỉ có ở trang mà mình đổi tên thành 'Luu'; Trang hiện có tên là 'TKe' bạn để trống cột cột [E:E] mà; Do bạn, nên bạn tự mà tìm cách khắc fục thôi!

(2) Bạn fải nêu rõ là thêm vô bao nhiêu dòng, & cụ thể là dòng số bao nhiêu?
Dù gì chăng nữa, không thể vượt quá 599 dòng.

(3) Chờ đến thứ hai, nha! Mai đi công chuyện ở ĐN rồi!
mình đã tìm ra được chỗ thiếu ToBanDO rồi, cơ mà còn bị giới hạn dòng.... bạn chỉ mình cách khắc phục chỗ đó với được k, thánk bạn
 
Có các cách khắc fục về giới hạn về số dòng dữ liệu trong trang 'TKe' với độ khó tăng dần như sau

(1) Dời các dòng từ 600 đến 620 xuống dòng 6500
Sau đó sửa lại code để nó ẩn 1 lô 1 lốc các dòng trống đi;
Cách này bạn có thể thử làm trước xem sao.

(2) Dòi dòng 600 đến 620 lên trên; bố trí dưới ngay tiêu đề (Từ dòng 4 đến dòng 24;
Lúc đó ta đẩy dòng tiêu đề (Dòng 5 hiện nay) xuống dòng 32 hay 35 gì đó

(3) Dòng 600 đến dòng 620 sẽ được copy từ 1 nơi cố định nào đó (xa xăm & khuất mắt) đến bằng các dòng lệnh VBA sau khi chạy macro hiện có

(4) Tạo dữ liệu từ dòng 600 đến dòng 620 bằng VBA

(5) . . . .
 
Có các cách khắc fục về giới hạn về số dòng dữ liệu trong trang 'TKe' với độ khó tăng dần như sau

(1) Dời các dòng từ 600 đến 620 xuống dòng 6500
Sau đó sửa lại code để nó ẩn 1 lô 1 lốc các dòng trống đi;
Cách này bạn có thể thử làm trước xem sao.

(2) Dòi dòng 600 đến 620 lên trên; bố trí dưới ngay tiêu đề (Từ dòng 4 đến dòng 24;
Lúc đó ta đẩy dòng tiêu đề (Dòng 5 hiện nay) xuống dòng 32 hay 35 gì đó

(3) Dòng 600 đến dòng 620 sẽ được copy từ 1 nơi cố định nào đó (xa xăm & khuất mắt) đến bằng các dòng lệnh VBA sau khi chạy macro hiện có

(4) Tạo dữ liệu từ dòng 600 đến dòng 620 bằng VBA

(5) . . . .
CÁM ƠN BẠN, MÌNH ĐÃ SỬA ĐƯỢC THEO CÁI (1) CỦA BẠN RỒI HIHI
CƠ MÀ CÁI TẠO DỮ LIỆU TỪ DÒNG 600-620 BẰNG VBA MÌNH K BIẾT MẦN KIỂU J, BẠN CÓ THỂ VIẾT HỘ MÌNH THEO FILE MẪU MÌNH GỬI ĐÂY ĐC K?

sory acc của mình upfile hết dung lượng rồi nen mình mới dùng link mediafire
http://www.mediafire.com/download/pnwx4978og61nn3/tongHop+Dat.rar
 
Web KT

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

Back
Top Bottom