hỏi về việc ghi nhập liệu

Liên hệ QC

vanhesing

Thành viên thường trực
Tham gia
12/8/10
Bài viết
223
Được thích
30
chào mọi người em có bvaif này đã tìm đủ cách nhưnng vẫn không ra nhờ cả nhà tham khảo .
Mình muốn viết code ghi thời gian nhập liệu , đã thử và sử dụng được , tuy nhiên nó chỉ tốt khi hiện hành 1 mình, khi kết hợp với một code khác để lấy thông tin qua sheet khác thì nó chạy tùm lum hiện thời gian hết tất cả các ô còn lại ....
Vui lòng xem file đính kèm
thanks
 

File đính kèm

chào mọi người em có bvaif này đã tìm đủ cách nhưnng vẫn không ra nhờ cả nhà tham khảo .
Mình muốn viết code ghi thời gian nhập liệu , đã thử và sử dụng được , tuy nhiên nó chỉ tốt khi hiện hành 1 mình, khi kết hợp với một code khác để lấy thông tin qua sheet khác thì nó chạy tùm lum hiện thời gian hết tất cả các ô còn lại ....
Vui lòng xem file đính kèm
thanks
Đôi lúc xài Interect cũng phải cẩn thận, nhất là khi ta có thao tác trên 1 vùng lớn "băng qua" vùng intersect này
Hic..
Sửa lại code:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Row >= 9 And Target.Column = 2 And Target.Count = 1 Then
    If Target <> "" Then Target.Offset(, 1) = Now
  End If
End Sub
 
Upvote 0
Đôi lúc xài Interect cũng phải cẩn thận, nhất là khi ta có thao tác trên 1 vùng lớn "băng qua" vùng intersect này
Hic..
Sửa lại code:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Row >= 9 And Target.Column = 2 And Target.Count = 1 Then
    If Target <> "" Then Target.Offset(, 1) = Now
  End If
End Sub
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Range("$b5:$e100"), Target) Is Nothing Then
         Cells(Target.Row, 1).Value = date()
         Cells(Target.Row, 1).NumberFormat = "dd/mm/yyyy"
   End If
End Sub
BÁC CHO EM HỎI NGHĨA CỦA NOT INTERSECT VÀ On Error Resume Next TRONG VBA LÀ GÌ ?
CÁM ƠN BÁC TRƯỚC
 
Upvote 0
Đôi lúc xài Interect cũng phải cẩn thận, nhất là khi ta có thao tác trên 1 vùng lớn "băng qua" vùng intersect này
Hic..
Sửa lại code:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Row >= 9 And Target.Column = 2 And Target.Count = 1 Then
    If Target <> "" Then Target.Offset(, 1) = Now
  End If
End Sub
Hi Bác ndu . em đã sữa code theo Bác thì lỗi mà em trình bày ở trên không còn nữa nhưng nó chỉ hiện hành có 1 dòng thôi Bác ơi , mà số lần nhập liệu của em thì nhiều,
Sẵn Bác sữa cho em code trong module 1 dùng cột "Số Chứng Từ " làm chuẩn . cột này có data thì mới cho "nhập liệu" không có data thì không cho nhập và hiện bảng thông báo .
Thanks Bác ndu nhiều lắm !!
 
Upvote 0
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Range("$b5:$e100"), Target) Is Nothing Then
         Cells(Target.Row, 1).Value = date()
         Cells(Target.Row, 1).NumberFormat = "dd/mm/yyyy"
   End If
End Sub
BÁC CHO EM HỎI NGHĨA CỦA NOT INTERSECT VÀ On Error Resume Next TRONG VBA LÀ GÌ ?
CÁM ƠN BÁC TRƯỚC
Cái này nói nhiều lần rồi mà
Intersect(Range1, Range2) là vùng được xác định bởi khu vực giao nhau giữa Range1 và Range2
Ví dụ:
Intersect(Range("A1:C10"), Range("C5:E12")) <===> Range("B5:C10")
If Intersect(Range1, Range2) Is Nothing then... có nghĩa là Nếu vùng giao của Range1 và Range2 không tồn tại thì...
Not là phủ định cái đứng sau nó, vậy:
If Not Intersect(Range1, Range2) Is Nothing then... có nghĩa là Nếu vùng giao của Range1 và Range2 tồn tại thì...
----------------------
On Error Resume Next
: Có đoạn này ở đầu code thì khi gặp lỗi nó sẽ cho qua
---------------------------------------------------------------------------
Hi Bác ndu . em đã sữa code theo Bác thì lỗi mà em trình bày ở trên không còn nữa nhưng nó chỉ hiện hành có 1 dòng thôi Bác ơi , mà số lần nhập liệu của em thì nhiều,
Tôi không hiểu câu tô màu xanh ở trên! HIỆN HÀNH CÓ 1 DÒNG nghĩa là sao?
 
Lần chỉnh sửa cuối:
Upvote 0
à , em đã kiểm tra kĩ rồi , không phải vậy bác à.
do em copy xuống nên nó không hiện , khi nhập liệu từng dòng 1 thì sẽ hiện , thanks bác , em sẽ nghiên cứu thêm .
 
Upvote 0
à , em đã kiểm tra kĩ rồi , không phải vậy bác à.
do em copy xuống nên nó không hiện , khi nhập liệu từng dòng 1 thì sẽ hiện , thanks bác , em sẽ nghiên cứu thêm .
Muốn copy xuống mà code vẫn chạy luôn cũng không phải không có cách ---> Dùng vòng lập quét qua Target (For Each Clls in Target)
Nghiên cứu đi ---> Loại bài này đã nói cả chục lần trên diễn đàn rồi
 
Upvote 0
không cần Bác , nhiều khi như vậy vẫn hay hơn , loại trừ cái tính làm biếng của em .
Em sẽ nghiên cứu và mở rộng thêm vấn đề này.
Còn cái module 1 mong Bác cho em 1 chút ý kiến để em chỉnh sữa , em đọc sách VBA mà làm đi làm lại vẫn không được .
thanks Bác :)
 
Upvote 0
không cần Bác , nhiều khi như vậy vẫn hay hơn , loại trừ cái tính làm biếng của em .
Em sẽ nghiên cứu và mở rộng thêm vấn đề này.
Còn cái module 1 mong Bác cho em 1 chút ý kiến để em chỉnh sữa , em đọc sách VBA mà làm đi làm lại vẫn không được .
thanks Bác :)
Module1 có phải là Sub NHAPLIEU không?
Tôi tạm sửa thế này:
PHP:
Sub NhapLieu()
  Application.ScreenUpdating = False
  Sheet3.Unprotect ("bichchi")
  With Sheet2
    With .Range(.[B9], .[B65500].End(xlUp)).Resize(, 17)
      .Copy Sheet3.Range("B65500").End(xlUp).Offset(1)
      .ClearContents
    End With
  End With
  Sheet3.Protect ("bichchi")
  Application.ScreenUpdating = True
 End Sub
 
Upvote 0
Module1 có phải là Sub NHAPLIEU không?
Tôi tạm sửa thế này:
PHP:
Sub NhapLieu()
  Application.ScreenUpdating = False
  Sheet3.Unprotect ("bichchi")
  With Sheet2
    With .Range(.[B9], .[B65500].End(xlUp)).Resize(, 17)
      .Copy Sheet3.Range("B65500").End(xlUp).Offset(1)
      .ClearContents
    End With
  End With
  Sheet3.Protect ("bichchi")
  Application.ScreenUpdating = True
 End Sub
Em sory vì chưa trình bày hết .
Ở module 1 của em em tạm bỏ dòng ActiveSheet.protect ("bichchi") để hoàn thiện xong mới gán vào .
Ý em muốn hỏi là code trong module đó có sai chỗ nào không vì khi em thực hiện thao tác " run sub " chọn sub NhapLieu thì nó báo lỗi , sau đó bấm End thì em lại nhập liệu bình thường .
Cái nữa là em muốn dùng cột B là " số chứng từ " của sheeet NK để làm data gốc . khi nhập data mà không nhập cột này thì khi click "nhập liệu " nó sẽ hiện bảng thông báo là chưa nhập đủ data. ngược lại thì nó sẽ nhập liệu qua sheet "tonghop" bình thường .
thanks Bác !
 
Upvote 0
Em sory vì chưa trình bày hết .
Ở module 1 của em em tạm bỏ dòng ActiveSheet.protect ("bichchi") để hoàn thiện xong mới gán vào .
Ý em muốn hỏi là code trong module đó có sai chỗ nào không vì khi em thực hiện thao tác " run sub " chọn sub NhapLieu thì nó báo lỗi , sau đó bấm End thì em lại nhập liệu bình thường .
Cái nữa là em muốn dùng cột B là " số chứng từ " của sheeet NK để làm data gốc . khi nhập data mà không nhập cột này thì khi click "nhập liệu " nó sẽ hiện bảng thông báo là chưa nhập đủ data. ngược lại thì nó sẽ nhập liệu qua sheet "tonghop" bình thường .
thanks Bác !
Tôi thấy ý đồ của bạn rõ ràng là xem sheet NK như 1 Form tạm chỉ để nhập liệu. Sau khi nhập hoàn tất sẽ cho mọi thứ qua sheet TONGHOP, đúng không?
Vậy sao bạn không xây dựng 1 form? Khi ấy ta khỏi cần sự kiện Change của sheet, cũng không cần Module NHAPLIEU, mọi sự sẽ do Form quản lý (kể cả việc nhập không đúng hoặc thiếu thông tin)
Bạn thấy sao?
 
Upvote 0
Cái này nói nhiều lần rồi mà
Intersect(Range1, Range2) là vùng được xác định bởi khu vực giao nhau giữa Range1 và Range2
Ví dụ:
Intersect(Range("A1:C10"), Range("C5:E12")) <===> Range("B5:C10")
Xin hỏi lại Thầy Kết quả là Range("B5:C10") hay Range("C5:C10")?
Nếu Range("B5:C10") thì tại sao?
Xin cảm ơn Thầy.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi thấy ý đồ của bạn rõ ràng là xem sheet NK như 1 Form tạm chỉ để nhập liệu. Sau khi nhập hoàn tất sẽ cho mọi thứ qua sheet TONGHOP, đúng không?
Vậy sao bạn không xây dựng 1 form? Khi ấy ta khỏi cần sự kiện Change của sheet, cũng không cần Module NHAPLIEU, mọi sự sẽ do Form quản lý (kể cả việc nhập không đúng hoặc thiếu thông tin)
Bạn thấy sao?
Bác đoán đúng ý em rồi . Do có nhiều người sử dụng nên em phải làm vậy để tránh trường hợp em nghỉ phép ngưòi khác làm thay.
Em cũng đã suy nghỉ sẽ dùng from , nhưng em thấy nó nhiều quá , nhập trên from thì mỗi lần nhập liệu chỉ 1 lần 1 thông tin , còn cái sheet NK thì em có thể nhập liệu để đó không giới hạn . ví dụ như cả ngày em nhập xuất trên NK , cuối ngày em chỉ sẽ click "nhập liệu ",nhưng nhược điểm của nó là nhiều cột quá mỗi một cột là một thông tin khi nhập cũng mệt mỏi .Giờ em vẫn chưa biết cái nào hay hơn .
Còn nếu sử dụng From, em thì hơi yếu phần này nên chưa hiểu câu :"mọi sự sẽ do Form quản lý (kể cả việc nhập không đúng hoặc thiếu thông tin)"
Em xin gửi Bác thêm 1 file nữa do em làm bằng From . Bác tham khảo và góp ý cho em về cái From như ý bác nói ở trên nhé .
thanks Bác !
 

File đính kèm

Upvote 0
Bác đoán đúng ý em rồi . Do có nhiều người sử dụng nên em phải làm vậy để tránh trường hợp em nghỉ phép ngưòi khác làm thay.
Em cũng đã suy nghỉ sẽ dùng from , nhưng em thấy nó nhiều quá , nhập trên from thì mỗi lần nhập liệu chỉ 1 lần 1 thông tin , còn cái sheet NK thì em có thể nhập liệu để đó không giới hạn . ví dụ như cả ngày em nhập xuất trên NK , cuối ngày em chỉ sẽ click "nhập liệu ",nhưng nhược điểm của nó là nhiều cột quá mỗi một cột là một thông tin khi nhập cũng mệt mỏi .Giờ em vẫn chưa biết cái nào hay hơn .
Còn nếu sử dụng From, em thì hơi yếu phần này nên chưa hiểu câu :"mọi sự sẽ do Form quản lý (kể cả việc nhập không đúng hoặc thiếu thông tin)"
Em xin gửi Bác thêm 1 file nữa do em làm bằng From . Bác tham khảo và góp ý cho em về cái From như ý bác nói ở trên nhé .
thanks Bác !

Bó tay với bạn! Kêu người ta tham khảo mà Protect như thế ai mà giúp bạn được đây? Pass đâu?
 
Upvote 0
à , sorry .
Mình quên mất , pass : bichchi
thanks

Trời pass mình mà còn không nhớ kìa! Phải là "vnbc" mới đúng chứ!

1) Bạn tạo thêm những danh sách mã hàng, tên thiết bị, phụ tùng, nhà phân phối gì gì đó để làm nguồn.

2) Trên cơ sở nguồn, bạn tạo trên Form các combobox, thêm cái listbox hay listview để tiện theo dõi nhập đúng sai...

...

Đại loại là vậy Form mới chạy ngon lành được. Nếu nhập trên nhiều cột, hàng, thì nhập Form sẽ nhanh hơn nhập trực tiếp trong sheet đấy bạn.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom