hỏi về việc ghi nhập liệu (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

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
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.
Để mình thử xem sao .
Vậy trường hợp nếu như nhập liệu không đúng, không đủ thì tạo cảnh báo như thế nào cho người nhập ? phần này mình dở lắm nghiên cứu mãi không xong
thanks
 
Upvote 0
Để mình thử xem sao .
Vậy trường hợp nếu như nhập liệu không đúng, không đủ thì tạo cảnh báo như thế nào cho người nhập ? phần này mình dở lắm nghiên cứu mãi không xong
thanks

Thì bạn cứ tạo nguồn đi, tôi bẫy lỗi trong Form luôn cho, OK? À, nhớ nêu rõ yêu cầu cần bẫy lỗi nhé!

Bạn cứ gửi file mới lên đi, hoặc mail cho tôi, mai tôi post bài lên cho bạn.

minhthien321@yahoo.com
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
đây . Làm phiền bạn
thanks

Hic, bạn không phân biệt được nguồn là gì sao? Cái file bạn gửi lên là cái đã nhập vào cơ sỡ dữ liệu, còn nguồn là giá trị mà thường xuyên lặp đi lặp lại, hoặc là tên của sản phẩm hay linh kiện gì đó.

Bạn xem file đính kèm, trong sheet DATA, có phải là nguồn để bạn nhập hay không, rồi mới tính tới chuyện làm Form nhé!
 

File đính kèm

Upvote 0
Hic, bạn không phân biệt được nguồn là gì sao? Cái file bạn gửi lên là cái đã nhập vào cơ sỡ dữ liệu, còn nguồn là giá trị mà thường xuyên lặp đi lặp lại, hoặc là tên của sản phẩm hay linh kiện gì đó.

Bạn xem file đính kèm, trong sheet DATA, có phải là nguồn để bạn nhập hay không, rồi mới tính tới chuyện làm Form nhé!
sory bạn !
Mình còn gà quá nên không hiểu hết giờ thì thông rồi . Mình xem file bạn rồi , đúng 90 % , bạn cứ giúp mình tạo from đi phần còn lại mình sẽ lo
thanks bạn
 
Upvote 0
mình có gửi mail cho bạn rồi đó. hôm nay mình hơi bận nên chỉ thăm comment thôi . bạn thông cảm vào mail nha mình đã nêu rõ yêu cầu trong đó rồi
thanks bạn


Tôi nhận mail của bạn rồi, nhưng một trong những yêu cầu bẫy lỗi như thế này:

"trường hợp nhập sai hay thiếu thông tin sẽ hiện thông báo yêu cầu nhập lại"

Tôi không có điều kiện nào, cơ sở nào, chuẩn nào để nói đó là sai đúng, cũng như đủ thiếu, thì làm sao mà bẫy lỗi? Nếu bạn đưa ra cái chuẩn thì sẽ dễ hơn. Dĩ nhiên nếu bạn đưa ra yêu cầu tốt, chi tiết tốt thì Form bạn sẽ làm việc hiệu quả. Sau đó tôi sẽ post lên đây để mọi người cùng tham khảo, bổ sung thêm.
 
Upvote 0
Mình tham gia thế này:
Để Form mang tính Pro. hơn bạn nên để nút Thêm có thuộc tính là Enabled=False.
Nếu nhập đủ dữ liệu thì Enabled=True.
Vậy là khỏi loằng ngoằng thông báo, muốn nhập được thì phải đủ thông tin còn dạng què quặt thì miễn thêm
 
Upvote 0
Mình tham gia thế này:
Để Form mang tính Pro. hơn bạn nên để nút Thêm có thuộc tính là Enabled=False.
Nếu nhập đủ dữ liệu thì Enabled=True.
Vậy là khỏi loằng ngoằng thông báo, muốn nhập được thì phải đủ thông tin còn dạng què quặt thì miễn thêm
Câu trả lời nằm ở đây , theo ý anh seland là được rồi không cần phải chi tiết thêm đâu .
thanks bạn 1
 
Upvote 0
Câu trả lời nằm ở đây , theo ý anh seland là được rồi không cần phải chi tiết thêm đâu .
thanks bạn 1

Có những ô bắt buộc phải nhập, có những ô không bắt buộc nhập, nếu cứ Enable hết thì khỏi nhập luôn đấy bạn! Bạn cần phải chi tiết rõ ràng chứ! hic
 
Upvote 0
Có những ô bắt buộc phải nhập, có những ô không bắt buộc nhập, nếu cứ Enable hết thì khỏi nhập luôn đấy bạn! Bạn cần phải chi tiết rõ ràng chứ! hic
nếu vậy , thì mình giải thích thêm . Ô mang tên : "số chứng từ " sẽ lấy làm chuẩn , vì nếu nhập đủ hết mà không có số chứng từ thì không được . Bạn cứ lấy ô đó làm mẫu có gì mình sẽ nghiên cứu và thêm vào và chỉnh sữa sau cũng được . Trình độ VBA mình cũng được mức cơ bản mà . hihihihi. Mình chỉ cần một from mẫu để từ đó hoàn thiện nó theo ý mình .
thanks bạn
 
Upvote 0
Có những ô bắt buộc phải nhập, có những ô không bắt buộc nhập, nếu cứ Enable hết thì khỏi nhập luôn đấy bạn! Bạn cần phải chi tiết rõ ràng chứ! hic
Chào bạn !
Nếu bài này khó quá hay bạn cho mình xin cái bài nào gần giống với mình cũng được , mình search trong room rồi nhưng khống thấy bài nào gần giống với mình .
Nếu được vậy thì mình cũng có thể đi sâu và học hỏi thêm .
Thanks bạn !
 
Upvote 0
Vẫn là vấn đề nhập liệu nhưng với một đề tài khác . Mọi người chia sẽ gợi ý nhé^^

Mình có một câu hỏi:
Khi ta nhập liệu thông tin về mã hàng có 3 cấp, trên from tự tạo chỉ với 1 textbox thì ta có thể phân loại cấp mã hàng và tự tô màu theo từng cấp quy định của nó trên ô textbox đó không?
Mình chỉ thử và nó nhập liệu bình thường chứ không phân cấp.vì mình vẫn chưa tìm hiểu đến vấn đề phân cấp và tô màu cho từng cấp .
Nay post bài này mong cả nhà xem file đính kèm và cho mình 1 chút kiến thức gợi ý về 2 phần : phân cấp mã và tô màu theo cấp .
Chân Thành Cảm Ơn !
 

File đính kèm

Upvote 0

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

Back
Top Bottom