Giúp tạo nút cập nhật dữ liệu từ sheet 1 sang sheet 2!

Liên hệ QC

thanhnam0119

Thành viên hoạt động
Tham gia
5/10/07
Bài viết
152
Được thích
4
Chào các a chị trong diễn đàn ạ!
- E nhờ các anh chị trong diễn đàn chỉ giúp e tạo nút chuyển dữ liệu từ sheet "nhaplieu" sang sheet "Data" với điều kiện sau ạ:
+ Điều kiện 1: tại sheet "nhaplieu" khi e nhập dữ liệu các ô xong rồi e ấn nút chuyển dữ liệu nó sẽ nhảy sang sheet data và xóa công thức giữ giá trị.
+ Điều kiện 2: xóa dữ liệu tại sheet "nhaplieu" nhập từ số liệu từ đầu khi chọn nút chuyển dữ liệu sẽ được cộng tiếp vào dòng dưới của sheet "Data" có nghĩa là tại sheet "nhaplieu" khi xóa trắng dữ liệu cũ nhập tiếp dữ liệu mới khi chọn nút chuyển bản ghi sẽ được nối dòng tiếp theo dữ liệu có lưu từ trước bên sheet "Data".
Nhờ các bác giúp đỡ ạ! Chân thành cảm ơn các a chị giúp đỡ.
 

File đính kèm

  • capnhatdl.xlsm
    33.5 KB · Đọc: 14
1/ Góp ý với bạn về CSDL
Trong sheet NhapLieu nen đưa Madv về cột A, VLOOKUP cho cột B là Tendv
2/ Bạn đã có Sub Luu nhưng chưa hoàn chỉnh. Sửa lại Sub Luu một chút
Mã:
Sub Luu() 
    Application.ScreenUpdating = False
    Dim shForm As Worksheet
    Dim shData As Worksheet
    Dim dFrom As Long
    Dim dData As Long
    Set shForm = ThisWorkbook.Worksheets("nhaplieu")
    Set shData = ThisWorkbook.Worksheets("Data")
    dData = shData.Range("A" & Rows.Count).End(xlUp).Row
    dFrom = shForm.Range("A" & Rows.Count).End(xlUp).Row
    shForm.Range("A3:F" & dFrom).Copy
    shData.Range("A" & dData + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    shForm.Range("A3:F" & dFrom).ClearContents
    Application.ScreenUpdating = False
    MsgBox "Xong"
End Sub
3/ Đưa Sub này vô Sheet NhapLieu
 
Upvote 0
1/ Góp ý với bạn về CSDL
Trong sheet NhapLieu nen đưa Madv về cột A, VLOOKUP cho cột B là Tendv
2/ Bạn đã có Sub Luu nhưng chưa hoàn chỉnh. Sửa lại Sub Luu một chút
Mã:
Sub Luu()
    Application.ScreenUpdating = False
    Dim shForm As Worksheet
    Dim shData As Worksheet
    Dim dFrom As Long
    Dim dData As Long
    Set shForm = ThisWorkbook.Worksheets("nhaplieu")
    Set shData = ThisWorkbook.Worksheets("Data")
    dData = shData.Range("A" & Rows.Count).End(xlUp).Row
    dFrom = shForm.Range("A" & Rows.Count).End(xlUp).Row
    shForm.Range("A3:F" & dFrom).Copy
    shData.Range("A" & dData + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    shForm.Range("A3:F" & dFrom).ClearContents
    Application.ScreenUpdating = False
    MsgBox "Xong"
End Sub
3/ Đưa Sub này vô Sheet NhapLieu
Cảm ơn bạn nhé
 
Upvote 0
Chào các a chị trong diễn đàn ạ!
- E nhờ các anh chị trong diễn đàn chỉ giúp e tạo nút chuyển dữ liệu từ sheet "nhaplieu" sang sheet "Data" với điều kiện sau ạ:
+ Điều kiện 1: tại sheet "nhaplieu" khi e nhập dữ liệu các ô xong rồi e ấn nút chuyển dữ liệu nó sẽ nhảy sang sheet data và xóa công thức giữ giá trị.
+ Điều kiện 2: xóa dữ liệu tại sheet "nhaplieu" nhập từ số liệu từ đầu khi chọn nút chuyển dữ liệu sẽ được cộng tiếp vào dòng dưới của sheet "Data" có nghĩa là tại sheet "nhaplieu" khi xóa trắng dữ liệu cũ nhập tiếp dữ liệu mới khi chọn nút chuyển bản ghi sẽ được nối dòng tiếp theo dữ liệu có lưu từ trước bên sheet "Data".
Nhờ các bác giúp đỡ ạ! Chân thành cảm ơn các a chị giúp đỡ.
Thử dùng code sau:
Mã:
Sub PasteValueSheet2_SangSheet3()
    With Sheet2
        .[A2].CurrentRegion.Offset(1).Copy _
        Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
        .[B3:H17].ClearContents
    End With
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value
        .[E3:E10000].FormatConditions.Delete
    End With
End Sub
 

File đính kèm

  • Cap nhat Du Lieu.xlsm
    41.7 KB · Đọc: 20
Upvote 0
Thử dùng code sau:
Mã:
Sub PasteValueSheet2_SangSheet3()
    With Sheet2
        .[A2].CurrentRegion.Offset(1).Copy _
        Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
        .[B3:H17].ClearContents
    End With
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value
        .[E3:E10000].FormatConditions.Delete
    End With
End Sub
Cảm ơn a nhiều
 
Upvote 0
Thử dùng code sau:
Mã:
Sub PasteValueSheet2_SangSheet3()
    With Sheet2
        .[A2].CurrentRegion.Offset(1).Copy _
        Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
        .[B3:H17].ClearContents
    End With
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value
        .[E3:E10000].FormatConditions.Delete
    End With
End Sub
Code của a muốn giới hạn cột lưu bên Sheet2 sang Sheet3 như nào a. Vì e đánh thêm số liệu cột I của Sheet2 vẫn cho lưu ạ
 
Upvote 0
Bũa trước chỉ sửa code có sẵn của bạn thôi. nếu tôi dùng thì thế này
Mã:
Sub CapNhat()
    If Sheet10.Range("A65000").End(xlUp).Row > 3 Then Sheet10.Range("A4:F" & Sheet10.Range("A65000").End(xlUp).Row).Clear
    Sheet2.Range("A3:F" & Sheet2.Range("A65000").End(xlUp).Row).Copy Destination:=Sheet10.Range("A4")
End Sub
 
Upvote 0
Code của a muốn giới hạn cột lưu bên Sheet2 sang Sheet3 như nào a. Vì e đánh thêm số liệu cột I của Sheet2 vẫn cho lưu ạ
Chỉ thêm chỗ này .Resize(, 8)

Thay code bài 4 bằng code này
Mã:
Sub Copy_PasteValue()
    With Sheet2
        .[A2].CurrentRegion.Offset(1).Resize(, 8).Copy _
        Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
        .[B3:H17].ClearContents
    End With
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value
        .[E3:E10000].FormatConditions.Delete
    End With
End Sub

Nếu chỉ Copy và Paste thì không cần đoạn này.
Mã:
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value 'Dòng này xóa hàm
        .[E3:E10000].FormatConditions.Delete 'Dòng này xóa Condition Formating
    End With
 
Lần chỉnh sửa cuối:
Upvote 0
Chỉ thêm chỗ này .Resize(, 8)

Thay code bài 4 bằng code này
Mã:
Sub Copy_PasteValue()
    With Sheet2
        .[A2].CurrentRegion.Offset(1).Resize(, 8).Copy _
        Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
        .[B3:H17].ClearContents
    End With
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value
        .[E3:E10000].FormatConditions.Delete
    End With
End Sub

Nếu chỉ Copy và Paste thì không cần đoạn này.
Mã:
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value 'Dòng này xóa hàm
        .[E3:E10000].FormatConditions.Delete 'Dòng này xóa Condition Formating
    End With
Chỉ thêm chỗ này .Resize(, 8)

Thay code bài 4 bằng code này
Mã:
Sub Copy_PasteValue()
    With Sheet2
        .[A2].CurrentRegion.Offset(1).Resize(, 8).Copy _
        Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
        .[B3:H17].ClearContents
    End With
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value
        .[E3:E10000].FormatConditions.Delete
    End With
End Sub

Nếu chỉ Copy và Paste thì không cần đoạn này.
Mã:
    With Sheet3
        .[A3].CurrentRegion.Value = .[A3].CurrentRegion.Value 'Dòng này xóa hàm
        .[E3:E10000].FormatConditions.Delete 'Dòng này xóa Condition Formating
    End With
bác có thể giúp file này được không. FIle này e có sheet "tonghop" và sheet "luudl" giờ em muốn cập nhật dữ liệu từ sheet "tonghop" từ cột A đến cột U sang bên sheet "luudl" và xoá bỏ công thức được không ạ. khi e dùng hàm của bác ấn cập thì từ cột S đến U ở sheet "luudl" không thể hiện số liệu. Ý em muốn cái gì hiện ở Sheet ""tonghop" từ A đến U thì khi ấn cập nhật thì hiện dữ liệu cũng từ A đến U ở Sheet "luudl" và có xoá bỏ công thức. E cảm ơn a nhiều
 

File đính kèm

  • danh sach mua BHYT 123.xlsm
    308.3 KB · Đọc: 2
Lần chỉnh sửa cuối:
Upvote 0
Mã:
Sub CapNhat()
    If Sheet3.Range("A65000").End(xlUp).Row > 5 Then Sheet3.Range("A6:U" & Sheet3.Range("A65000").End(xlUp).Row).Clear
    Sheet2.Range("A3:U" & Sheet2.Range("A65000").End(xlUp).Row).Copy Destination:=Sheet3.Range("A6")
    Sheet3.Range("A6:U" & Sheet3.Range("A65000").End(xlUp).Row).Value = Sheet3.Range("A6:U" & Sheet3.Range("A65000").End(xlUp).Row).Value
End Sub

Giải thích : Nếu Sheet3(Sheet luudl) có số dòng cuối > 5 (lớn hơn hàng tiêu đề=5) thì xóa dữ liệu ở sheet này
Copy dữ liệu của Sheet2(Sheet tonghop) từ ô A3 đén ô U(và cuối dòng dữ liệu) dán vào Sheet 3 bắt đầu từ ô A6(phía dưới hàng tiêu đề), chỉ lấy giá trị, không lấy công thức
 
Lần chỉnh sửa cuối:
Upvote 0
bác có thể giúp file này được không. FIle này e có sheet "tonghop" và sheet "luudl" giờ em muốn cập nhật dữ liệu từ sheet "tonghop" từ cột A đến cột U sang bên sheet "luudl" và xoá bỏ công thức được không ạ. khi e dùng hàm của bác ấn cập thì từ cột S đến U ở sheet "luudl" không thể hiện số liệu. Ý em muốn cái gì hiện ở Sheet ""tonghop" từ A đến U thì khi ấn cập nhật thì hiện dữ liệu cũng từ A đến U ở Sheet "luudl" và có xoá bỏ công thức. E cảm ơn a nhiều
Với File này thì code phải viết kiểu khác.
Copy code này thay cho code cũ.
Mã:
Sub NhapLieu()
    With Sheet2
        .Range("A3", Range("A200").End(xlUp)).Resize(, 21).Copy _
            Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
    End With
    With Sheet3
        .[A6].CurrentRegion.Value = .[A6].CurrentRegion.Value
        .[A6].End(xlDown).Offset(1).Resize(120).EntireRow.Delete
    End With
End Sub
 
Upvote 0
Với File này thì code phải viết kiểu khác.
Copy code này thay cho code cũ.
Mã:
Sub NhapLieu()
    With Sheet2
        .Range("A3", Range("A200").End(xlUp)).Resize(, 21).Copy _
            Destination:=Sheet3.[A65500].End(xlUp).Offset(1)
    End With
    With Sheet3
        .[A6].CurrentRegion.Value = .[A6].CurrentRegion.Value
        .[A6].End(xlDown).Offset(1).Resize(120).EntireRow.Delete
    End With
End Sub
Cột S đến cột U của sheet luudl không hiện dữ liệu a à
 

File đính kèm

  • danh sach mua BHYT 123.xlsm
    291.5 KB · Đọc: 2
Upvote 0
Mã:
Sub Nhap()
    With Sheet2
        .Range("A3", Range("A200").End(xlUp)).Resize(, 31).Copy _
            Destination:=Sheet3.[A65500].End(xlUp).Offset(1)    ' Thay 21 bằng 31
    End With
    With Sheet3
        .[A6].CurrentRegion.Value = .[A6].CurrentRegion.Value
        .[A6].End(xlDown).Offset(1).Resize(120).EntireRow.Delete
        .Range("V6:AE6").EntireColumn.Delete      'Thêm dòng này
    End With
End Sub

Lấy code của thầy be09 sửa lại chút it là được vì có công thức lấy ngoài vùng chọn nên thay 21 bằng 31 và thêm dòng xóa cột dư
 
Upvote 0
được rồi a à. cảm ơn a nhiều. ạ. e muốn học VBA từ a có được ko nhỉ ^^
Tôi tự mò học mọi thứ (Word, Excel), chứ không có đến lớp học vi tính ngày nào nên không có căn bản.
Những bài viết của tôi chỉ làm theo cãm tính.
Diễn đàn GPE thỉnh thoảng có những lớp dạy cơ bản, như trang này Học tập Offline
Bạn nên vào diễn đàn thường xuyên để xem thông tin lúc nào có lớp thì đăng ký.
 
Upvote 0
Web KT
Back
Top Bottom