Sử dụng Form cập nhật dữ liệu

Liên hệ QC

doanhhoang79

Thành viên hoạt động
Tham gia
31/3/08
Bài viết
142
Được thích
18
Chào các anh chi,

Tôi nhờ các anh chị hoàn thiện code khi cập nhật dữ liệu:

Khi tôi cập nhật dữ liệu tên khóa đào tạo ở sheet "DScapnhat" thì nó sẽ tự động xác định dòng để updata tên khóa đào tạo vào cells còn trống ở bên sheet "DSchinh".

Tôi loay hoay mãi nhưng mới chỉ xác định được ở cột cố định (cột C bên sheet "DSchinh")
vì vậy khi cập nhập mới thì dữ liệu cũ bị nó ghi đè mất.

Tôi muốn khi ta cập nhật thì nó vẫn lưu lại dữ liệu cũ đồng thời thêm dữ liệu mới vào các cột kế tiếp.

Mong mọi người xem file gửi kèm và hoàn thiện giúp.

Lưu ý: Việc cấp nhật sẽ bị giới hạn đến cột 20. Nếu quá sẽ không cho cập nhật
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các anh chi,

Tôi nhờ các anh chị hoàn thiện code khi cập nhật dữ liệu:

Khi tôi cập nhật dữ liệu tên khóa đào tạo ở sheet "DScapnhat" thì nó sẽ tự động xác định dòng để updata tên khóa đào tạo vào cells còn trống ở bên sheet "DSchinh".

Tôi loay hoay mãi nhưng mới chỉ xác định được ở cột cố định (cột C bên sheet "DSchinh")
vì vậy khi cập nhập mới thì dữ liệu cũ bị nó ghi đè mất.

Tôi muốn khi ta cập nhật thì nó vẫn lưu lại dữ liệu cũ đồng thời thêm dữ liệu mới vào các cột kế tiếp.

Mong mọi người xem file gửi kèm và hoàn thiện giúp.

Lưu ý: Việc cấp nhật sẽ bị giới hạn đến cột 20. Nếu quá sẽ không cho cập nhật
Đoạn code của bạn là:
PHP:
With Sheet2
Dong = Ma.ListIndex + 2
.Range("C" & Dong) = TenDT
End With
Bạn thử sửa lại thành:
PHP:
Sheet2.Range("A2").Offset(Ma.ListIndex).EntireRow.SpecialCells(4).Areas(1)(1, 1) = TenDT
Có điều vẫn cảm giác cái Form này không ổn! Ví dụ nếu tôi chọn Tên = Nguyễn Văn 1Đơn vị = Đơn vị 2 thì.. thế nào nhỉ?
 
Lần chỉnh sửa cuối:
Upvote 0
Đoạn code của bạn là:
PHP:
With Sheet2
Dong = Ma.ListIndex + 2
.Range("C" & Dong) = TenDT
End With
Bạn thử sửa lại thành:
PHP:
Sheet2.Range("A2").Offset(Ma.ListIndex).EntireRow.SpecialCells(4).Areas(1)(1, 1) = TenDT
Có điều vẫn cảm giác cái Form này không ổn! Ví dụ nếu tôi chọn Tên = Nguyễn Văn 1Đơn vị = Đơn vị 2 thì.. thế nào nhỉ?

Cái không ổn của bạn tôi hiểu mà, tôi chỉ quan tâm đến dữ liệu tên khóa đào tạo được cập nhật thôi. Đơn vị không quan trọng bạn ạ, cho dù đơn vị 1,2,3...đều ok. Cảm ơn bạn, tôi sẽ thử code của bạn xem thế nào
 
Upvote 0
Đoạn code của bạn là:
PHP:
With Sheet2
Dong = Ma.ListIndex + 2
.Range("C" & Dong) = TenDT
End With
Bạn thử sửa lại thành:
PHP:
Sheet2.Range("A2").Offset(Ma.ListIndex).EntireRow.SpecialCells(4).Areas(1)(1, 1) = TenDT
Có điều vẫn cảm giác cái Form này không ổn! Ví dụ nếu tôi chọn Tên = Nguyễn Văn 1Đơn vị = Đơn vị 2 thì.. thế nào nhỉ?

Cảm ơn bạn, tôi đã thử code của bạn và đã đúng ý của tôi. Tuy nhiên tôi có thêm câu hỏi nữa:
1/ Trong trường hợp tôi mốn giới hạn cột update bên sheet "DSchinh" chỉ cho updata đến cột 20 thì làm thế nào?
2/ Sau đó để cách ra khoảng 03 cột rồi lại cho phép updata từ cột 24 đến cột 28 thì làm cách nào?
Hơi phức tạp một chút, nhưng bạn giúp tôi với nhé.

Cảm ơn trước,
 
Upvote 0
Trường hợp này là nó sẽ Updata vào tất cả những cells còn trống. Vậy khi tôi muốn giới hạn chỉ cho phép nhập từ cột 15 đến cột 20 thì sao nhỉ.
Biết rắng các cột trước vẫn còn trống
 
Upvote 0
Trường hợp này là nó sẽ Updata vào tất cả những cells còn trống. Vậy khi tôi muốn giới hạn chỉ cho phép nhập từ cột 15 đến cột 20 thì sao nhỉ.
Biết rắng các cột trước vẫn còn trống
Ở trên bạn nói khác, giờ nói khác
Bạn "TÓM LẠI" đi!
Update từ cột 15 (là cột O) đến cột 20 (là cột T), đúng không?
Trong trường hợp cột 15 đến 20 đã đủ dử liệu mà người ta "cố tình" nhập tiếp thì... làm sao? Không cho nhập à?
 
Upvote 0
Ý của tôi là: ở sheet "DSchinh" dữ liệu chỉ được ghi từ cột 15 đến cột 20, mặc dù các cột 14, 13, 12, 11,...còn trống.

Code của bạn là cho phép ghi tất cả dữ liệu vào các ô còn trống.

Ở trên do tôi diễn đạt chưa hết ý nên còn nhiều thiếu sót. Mong bạn thông cảm.
 
Upvote 0
Ý của tôi là: ở sheet "DSchinh" dữ liệu chỉ được ghi từ cột 15 đến cột 20, mặc dù các cột 14, 13, 12, 11,...còn trống.

Code của bạn là cho phép ghi tất cả dữ liệu vào các ô còn trống.

Ở trên do tôi diễn đạt chưa hết ý nên còn nhiều thiếu sót. Mong bạn thông cảm.
Thay toàn bộ code thành cái này xem:
PHP:
Private Sub OK_Click()
  On Error GoTo Thoat
  Application.ScreenUpdating = False
  With Sheet1.Range("A56636").End(xlUp)
    .Offset(1, 0) = Ma
    .Offset(1, 1) = Donvi
    .Offset(1, 2) = TenDT
  End With
  Sheet2.Range("O2:T2").Offset(Ma.ListIndex).SpecialCells(4).Areas(1)(1, 1) = TenDT
  Application.ScreenUpdating = True
Thoat:
End Sub
Với code này, sau khi nhập đầy đủ vào cột từ O đến T, nó sẽ không cho nhập nữa
 
Upvote 0
Thay toàn bộ code thành cái này xem:
PHP:
Private Sub OK_Click()
  On Error GoTo Thoat
  Application.ScreenUpdating = False
  With Sheet1.Range("A56636").End(xlUp)
    .Offset(1, 0) = Ma
    .Offset(1, 1) = Donvi
    .Offset(1, 2) = TenDT
  End With
  Sheet2.Range("O2:T2").Offset(Ma.ListIndex).SpecialCells(4).Areas(1)(1, 1) = TenDT
  Application.ScreenUpdating = True
Thoat:
End Sub
Với code này, sau khi nhập đầy đủ vào cột từ O đến T, nó sẽ không cho nhập nữa

Tôi đã thử nhưng không thấy nó updata sang Sheet2 (DSchinh), bạn xem lại nhé.
 
Upvote 0
Anh NDU có thể giải thích chi tiết thêm về một số hằng số n trong sự kiện SpecialCells(n)?. Chân thành cảm ơn anh.
 
Upvote 0
Anh NDU có thể giải thích chi tiết thêm về một số hằng số n trong sự kiện SpecialCells(n)?. Chân thành cảm ơn anh.
 
Upvote 0
Anh NDU có thể giải thích chi tiết thêm về một số hằng số n trong sự kiện SpecialCells(n)?. Chân thành cảm ơn anh.
- Chọn 1 cell, bấm Ctrl + G rồi bấm nút Special
- Các mục mà ta muốn Check, đếm từ trên xuống chính là số n
Ví dụ:
.SpecialCells(1) ---> Chọn cell chứa Comments
.SpecialCells(2) ---> Chọn cell có dử liệu (không phải công thức)
.SpecialCells(3) ---> Chọn cell chứa công thức
.SpecialCells(4) ---> Chọn các cell rổng
vân vân....
 
Upvote 0
- Chọn 1 cell, bấm Ctrl + G rồi bấm nút Special
- Các mục mà ta muốn Check, đếm từ trên xuống chính là số n
Ví dụ:
.SpecialCells(1) ---> Chọn cell chứa Comments
.SpecialCells(2) ---> Chọn cell có dử liệu (không phải công thức)
.SpecialCells(3) ---> Chọn cell chứa công thức
.SpecialCells(4) ---> Chọn các cell rổng
vân vân....
Em đã hiểu rổi, cảm ơn anh rất nhiều. Mong anh sẽ tiếp tục cùng với BQT và những thành viên am hiểu về EXCEL giúp đỡ các thành viên trong diễn đàn học tập và áp dụng tốt vào công việc. Thân
 
Upvote 0
Web KT

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

Back
Top Bottom