Xin code tạo form 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 cả nhà !!
Nhờ cả nhà cho mình xin code theo ví dụ trong file .
Từ sự giúp đỡ của cả nhà mình cũng được học hỏi thêm .
Bắt đầu mê VBA hơn mê người yêu rồi .
hic hic
thakns


Do mọi người quá bận hay vì lý do nào đó mà mình đã post 3 bài sau bau bài " xin code lọc dữ liệu theo tên " (bài này mình được giúp đỡ rất kỹ gây cho mình 1 đam mê với nó ) nhưng sau bài đó mấy bài tôi posst ko ai trả lời .
Vì vậy , tôi đã tự mài mò các bài có liên quan và làm thử nhưng không biết code sai chổ nào , nay mình post lần này nữa mong mọi người chỉ và giúp mình .
ở sheet "NK" mình dùng nhập liệu, nhập dòng đầu thì sheet "TH" ok , nhập liệu tiếp theo thì sheet "TH" đã bị thay đổi .dữ liệu nhập của lần đầu bị mất thay vào đó là dữ liệu của lần thứ 2 . nhận thấy , nó chỉ cho nhập liệu có 1 dòng và ko tự lưu những dữ liệu được nhập trước đó mà công việc mình yêu cầu nhập 1 lần trên 5 dòng và dữ liệu phải được lưu .
Mong nhận được sự giúp đỡ của mọi người !
Thanks
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Do mọi người quá bận hay vì lý do nào đó mà mình đã post 3 bài sau bau bài " xin code lọc dữ liệu theo tên " (bài này mình được giúp đỡ rất kỹ gây cho mình 1 đam mê với nó ) nhưng sau bài đó mấy bài tôi posst ko ai trả lời .
Vì vậy , tôi đã tự mài mò các bài có liên quan và làm thử nhưng không biết code sai chổ nào , nay mình post lần này nữa mong mọi người chỉ và giúp mình .
ở sheet "NK" mình dùng nhập liệu, nhập dòng đầu thì sheet "TH" ok , nhập liệu tiếp theo thì sheet "TH" đã bị thay đổi .dữ liệu nhập của lần đầu bị mất thay vào đó là dữ liệu của lần thứ 2 . nhận thấy , nó chỉ cho nhập liệu có 1 dòng và ko tự lưu những dữ liệu được nhập trước đó mà công việc mình yêu cầu nhập 1 lần trên 5 dòng và dữ liệu phải được lưu .
Mong nhận được sự giúp đỡ của mọi người !
Thanks

Bạn xem đúng ý bạn không nhé
(Làm theo ý bạn thôi chứ không ai nhập như vậy. Nhập trực tiếp sheet TH luôn cho rồi
 

File đính kèm

Upvote 0
Bạn xem đúng ý bạn không nhé
(Làm theo ý bạn thôi chứ không ai nhập như vậy. Nhập trực tiếp sheet TH luôn cho rồi
bạn chưa hiểu ý mình .
do có nhiều người sử dụng nên mình muốn làm như vậy để dể kiểm soát, giớ hạn quyền sử dụng cho các đối tượng khác .thỏa mãn yêu cầu
khi mở file phải có pass
dữ liệu được nhập ở sheeet NK có thể chỉnh sữa nhưng khi đã click nhập thì những da ta mình nhập sẽ tự xóa và có thể nhập da ta tiếp .
Sheet TH thì có thể ko ai có quyền chỉnh sữa trừ mình ra .
Vì nếu mình nghỉ phép thì sẽ có người làm thay mình và mình muốn họ chỉ biếtnhập liệu ko thể đụng hay chỉnh sữa đến các sheeet khác
những yêu cầu này mình có ghi bên sheet 1 . phiền bạn xem lại và giúp mình nhé
thanks
 
Upvote 0
bạn chưa hiểu ý mình .
do có nhiều người sử dụng nên mình muốn làm như vậy để dể kiểm soát, giớ hạn quyền sử dụng cho các đối tượng khác .thỏa mãn yêu cầu
khi mở file phải có pass
dữ liệu được nhập ở sheeet NK có thể chỉnh sữa nhưng khi đã click nhập thì những da ta mình nhập sẽ tự xóa và có thể nhập da ta tiếp .
Sheet TH thì có thể ko ai có quyền chỉnh sữa trừ mình ra .
Vì nếu mình nghỉ phép thì sẽ có người làm thay mình và mình muốn họ chỉ biếtnhập liệu ko thể đụng hay chỉnh sữa đến các sheeet khác
những yêu cầu này mình có ghi bên sheet 1 . phiền bạn xem lại và giúp mình nhé
thanks
Mình sẽ làm cho bạn nếu như bạn đồng ý với mình:
1. Khi mở file sẽ báo nhập Mật khẩu (đặt mật khẩu File)
Nếu cần tạo Form cũng được nhưng theo mình như vầy nhanh gọn hơn
2. Sheet NK mình làm như thế sữa chữa gì nữa không
3. Sheet TH mình sẽ đặt mật khẩu sheet (mình đặt xong đưa mật khẩu cho bạn)
(Bạn cho mình ý kiến trước khi làm)
Trong lúc chờ ý kiến bạn mình đưa File. Bạn cho ý kiến thêm nhé. Mật khẩu vào(emyeuanh)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình sẽ làm cho bạn nếu như bạn đồng ý với mình:
(1). Khi mở file sẽ báo nhập Mật khẩu (đặt mật khẩu File)
(2)Nếu cần tạo Form cũng được nhưng theo mình như vầy nhanh gọn hơn
(3). Sheet NK mình làm như thế sữa chữa gì nữa không
(4). Sheet TH mình sẽ đặt mật khẩu sheet (mình đặt xong đưa mật khẩu cho bạn)
(Bạn cho mình ý kiến trước khi làm)
(1) . Chỗ này không cần phức tạp . chỉ cần mở file báo là phải đăng nhập không đăng nhập hay đăng nhập không đúng pass thì không sử dunghj được file .
(2) . Tạo From đăng nhập càng tốt không cần cầu kỳ chỉ cần tên from là Đăng nhập ,ô nhập pass , thẻ đồng ý , và thẻ thoát ( trường hợp không sử dụng , nhưng chỉ đóng file này thôi đừng tắt các file kia)thêm 1 yêu cầu nhỏ nữa nhé , là khi đăng nhập nhưng không sử dụng trong khoảng 15p thì tự thoát muốn sử dụng thì phải đăng nhập lại ,tránh trường hợp đi tolet có kẻ phá đám . hihihihi(Yêu cầu này tùy hỉ bạn cũng ko làm khó cho bạn ).
(3) . File của bạn vẫn còn vài chỗ làm mình rối :
- Khi mình nhập liệu từ 5 > >> 10 dòng thì nó dán qua sheet TH có 1 dòng đầu tiên , muốn nó dán hết mình phải nhập từng dòng rồi click "nhập" thì mất thời gian và qua TH thì nó nằm ở mấy dòng giữa chứ không phải dòng đầu tiên.nên mình muốn khi nhập bên NK bao nhiêu dòng thì nó dán qua TH bấy nhiêu dòng rồi tự xóa để mình nhập dữ liệu tiếp theo .
- Khi mình nhập không đủ tất cả các cột thì hiện thông báo yêu cầu phải nhập đủ. chổ này ko yêu cầu phải đủ chỉ cần có số chứng từ ,thì mới cho "nhập" qua sheet TH, dù có đầy đủ thông tin mà không có số chứng từ thì mới hiện thông báo " chưa có số chứng từ "( trường hợp này nên cho dán những số phiếu trùng vì khi 1 xuất kho 1 nhân viên gồm 6 thiết bị thì nó chung 1 số phiếu chứ không phải 1 thiết bị 1 số phiếu).
- Khi những dữ liệu đầu tiên được dán qua TH thì nó nằm ngay dòng đầu tiên , những dữ liệu tiếp theo sẽ nằm tiếp theo .( nghĩa là 1 ngày mình xuất nhập tới hơn 20 lần mình muốn sheet TH ghi lại những gì mình nhập bên NK theo thứ tự trước sau chứ đừng có xóa bên NK rồi xóa luôn bên TH , chết chắc )
(3) Ở đây ý bạn là bạn sẽ ẩn sheet TH hay là chỉ đọc không được chỉnh sữa ? theo mình nên làm cho nó đọc không được chỉnh sữa và chỉ riêng mình được chỉnh sửa bằng pass( có from thì tốt ).Hiện mình đang chập chững VBA nên muốn tìm hiểu và học hỏi thêm nên bạn đừng giấu code , mình định sẽ dựa vào đó chỉnh sữa đem vào File gốc làm thành tác phẩm đầu tay . hì hì hì
Mong tin bạn ! thanks!
 
Upvote 0
(1) . Chỗ này không cần phức tạp . chỉ cần mở file báo là phải đăng nhập không đăng nhập hay đăng nhập không đúng pass thì không sử dunghj được file .
(2) . Tạo From đăng nhập càng tốt không cần cầu kỳ chỉ cần tên from là Đăng nhập ,ô nhập pass , thẻ đồng ý , và thẻ thoát ( trường hợp không sử dụng , nhưng chỉ đóng file này thôi đừng tắt các file kia)thêm 1 yêu cầu nhỏ nữa nhé , là khi đăng nhập nhưng không sử dụng trong khoảng 15p thì tự thoát muốn sử dụng thì phải đăng nhập lại ,tránh trường hợp đi tolet có kẻ phá đám . hihihihi(Yêu cầu này tùy hỉ bạn cũng ko làm khó cho bạn ).
(3) . File của bạn vẫn còn vài chỗ làm mình rối :
- Khi mình nhập liệu từ 5 > >> 10 dòng thì nó dán qua sheet TH có 1 dòng đầu tiên , muốn nó dán hết mình phải nhập từng dòng rồi click "nhập" thì mất thời gian và qua TH thì nó nằm ở mấy dòng giữa chứ không phải dòng đầu tiên.nên mình muốn khi nhập bên NK bao nhiêu dòng thì nó dán qua TH bấy nhiêu dòng rồi tự xóa để mình nhập dữ liệu tiếp theo .
- Khi mình nhập không đủ tất cả các cột thì hiện thông báo yêu cầu phải nhập đủ. chổ này ko yêu cầu phải đủ chỉ cần có số chứng từ ,thì mới cho "nhập" qua sheet TH, dù có đầy đủ thông tin mà không có số chứng từ thì mới hiện thông báo " chưa có số chứng từ "( trường hợp này nên cho dán những số phiếu trùng vì khi 1 xuất kho 1 nhân viên gồm 6 thiết bị thì nó chung 1 số phiếu chứ không phải 1 thiết bị 1 số phiếu).
- Khi những dữ liệu đầu tiên được dán qua TH thì nó nằm ngay dòng đầu tiên , những dữ liệu tiếp theo sẽ nằm tiếp theo .( nghĩa là 1 ngày mình xuất nhập tới hơn 20 lần mình muốn sheet TH ghi lại những gì mình nhập bên NK theo thứ tự trước sau chứ đừng có xóa bên NK rồi xóa luôn bên TH , chết chắc )
(3) Ở đây ý bạn là bạn sẽ ẩn sheet TH hay là chỉ đọc không được chỉnh sữa ? theo mình nên làm cho nó đọc không được chỉnh sữa và chỉ riêng mình được chỉnh sửa bằng pass( có from thì tốt ).Hiện mình đang chập chững VBA nên muốn tìm hiểu và học hỏi thêm nên bạn đừng giấu code , mình định sẽ dựa vào đó chỉnh sữa đem vào File gốc làm thành tác phẩm đầu tay . hì hì hì
Mong tin bạn ! thanks!
Mình đưa file lại bạn xem nhé
Mật khẩu vào file: emyeuanh
Mật khẩu swar sheet TH: nganlanyeuem
Bạn cho ý kiến thêm nhé. Kính nhờ MOD xóa giúp bài này
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình đưa file lại bạn xem nhé
Mật khẩu vào file: emyeuanh
Mật khẩu swar sheet TH: nganlanyeuem
Bạn cho ý kiến thêm nhé
- Mật khẩu vào file chuẩn không cần chỉnh
- Mật khẩu sheet TH thì ......mình click qua TH và chỉnh sữa bình thường cũng đâu thấy nó ẩn . Mình muốn nó ẩn hoặc là chỉ xem không được chỉnh sữa , khi cố gắng chỉnh sửa sẽ hiện bảng thông báo " bạn ko có đủ quyền "
- Hình như bạn hiểu khác ý mình chổ này :
""- Khi mình nhập liệu từ 5 > >> 10 dòng thì nó dán qua sheet TH có 1 dòng đầu tiên , muốn nó dán hết mình phải nhập từng dòng rồi click "nhập" thì mất thời gian và qua TH thì nó nằm ở mấy dòng giữa chứ không phải dòng đầu tiên.nên mình muốn khi nhập bên NK bao nhiêu dòng thì nó dán qua TH bấy nhiêu dòng rồi tự xóa để mình nhập dữ liệu tiếp theo .
- Khi mình nhập không đủ tất cả các cột thì hiện thông báo yêu cầu phải nhập đủ. chổ này ko yêu cầu phải đủ chỉ cần có số chứng từ ,thì mới cho "nhập" qua sheet TH, dù có đầy đủ thông tin mà không có số chứng từ thì mới hiện thông báo " chưa có số chứng từ "( trường hợp này nên cho dán những số phiếu trùng vì khi 1 xuất kho 1 nhân viên gồm 6 thiết bị thì nó chung 1 số phiếu chứ không phải 1 thiết bị 1 số phiếu).
- Khi những dữ liệu đầu tiên được dán qua TH thì nó nằm ngay dòng đầu tiên , những dữ liệu tiếp theo sẽ nằm tiếp theo .( nghĩa là 1 ngày mình xuất nhập tới hơn 20 lần mình muốn sheet TH ghi lại những gì mình nhập bên NK theo thứ tự trước sau chứ đừng có xóa bên NK rồi xóa luôn bên TH , chết chắc )""
Để mình giải thích thêm : Có 1 nhân viên yêu cầu mình xuất 5 thiết bị , mình có đủ thông tin và nhập 5 dòng cho 5 TB đó vào sheet NK sau đó click nút "nhap" thì những thông tin mà mình nhập đều hiện qua bên sheet TH ( yêu cầu phải có Số chứng từ thì ok rồi ) đúng hàng và đúng vị trí . 1 nhân viên tiếp theo yêu cầu mình xuất 5 TB nữa và mình thao tác y chang như hồi nãy có điều qua sheeet TH thì 5 dòng của 5 TB nhập lần 2 nó nằm theo 5 dòng tiếp theo của lần nhập trước , 1 ngày mình thao tác hơn 20 lần xuất nhập nên mình muốn nó lưu đầy đủ những gì mình thao tác bên sheet NK , chứ ko phải xóa hết ( hic), ý mình là
*sheet NK :điền đầy đủ thông tin >> click "nhap" rồi tự xoá những gì vừa nhập ở sheet NK để tiếp tục cho lần nhập xuất tiếp theo.
*sheet TH : sẽ tự động lưu lại thông tin mà mình vừa nhập bên sheet NK theo thứ tự trước sau .
Như bạn comment cho mình lần đầu : "không ai làm vậy , chỉ cần nhập thẳng sheeet TH" thì ở đây sheet NK là sheeet Nháp và TH là sheet chính , NK nhập cái gì TH có cái đó chỉ khác chút là mỗi lần nhập NK sẽ tự xóa còn TH vẫn lưu những cái đó .( mình nói lát chắc điên luôn quá hihihihi)
Còn 1 vấn đề nữa, huhuhuhhu. sheet TH nó không hiện lên dòng số 9 mà nó hiện dòng số 12 , nhập cái tiếp theo thì nó xóa cái trước . hic
Phiền bạn chỉnh sửa lại giúp mình
Mong tin bạn liền , hihihihi
thanks
 
Upvote 0
Bị la nữa oy.
Em xin lỗi do em gấp gáp quá nên hơi hấp tấp . hic
Ở sheet NK bạn chèn một hàng để dòng [STT],[Số chứng từ]... nó xuống A8, cách với tiêu đề một hàng trống ( NHẬT KÝ XUẤT.....nằm ở A4)
Chép code này vào nút luôn nhé
Mã:
Private Sub nhap_Click()
  Dim i As Integer, Vung As Range, J As Integer
    i = [a8].CurrentRegion.Rows.Count - 2
    Set Vung = Range("b10:b" & i + 9)
        J = Application.WorksheetFunction.CountA(Vung)
            If J < i Then MsgBox ("Chung tu chua du"): Exit Sub
        Range([b10], [b500].End(xlUp)).Offset(0, -1).Resize(, 14).Copy Sheets("th").[a5000].End(xlUp).Offset(1)
        Sheets("TH").Range(Sheets("TH").[a9], Sheets("TH").[a5000].End(xlUp)) = [row(A:A)]
        Range([b10], [b500].End(xlUp)).Offset(0, -1).Resize(, 14).ClearContents
End Sub
Mình chỉ làm cho bạn code lưu qua thôi nhé mấy cái kia bạn Viethoai đã làm rồi, có gì nói tiếp
Híc, sao mình ghét "Mẹcmẹc" thế
 
Upvote 0
Xin lỗi bạn, mình post nhằm file
Chuẩn quá rồi , hihihi
Mình đổi pass cho sheet được đúng ko bạn ?
sheet NK phải nhập 5 dòng nó mới qua , hihihi đâu phải ai cũng lấy 5 món đâu . nhưng để mình mò thử xem có sữa được ko
mỗi lần bấm nút nhập nó dựt dựt màn hình hơi khó coai quá , mình tìm được bài chỉnh cái đó nhưng chưa test . hi
Nếu mình muốn chèm thêm cột thì có vấn đề gì ko bạn ?(chỉ hỏi cho biết )
Chúc bạn viethoai 1 ngày chủ nhật vui vẻ với người thân nha
Chân thành
 
Upvote 0
Ở sheet NK bạn chèn một hàng để dòng [STT],[Số chứng từ]... nó xuống A8, cách với tiêu đề một hàng trống ( NHẬT KÝ XUẤT.....nằm ở A4)
Chép code này vào nút luôn nhé
Mã:
Private Sub nhap_Click()
  Dim i As Integer, Vung As Range, J As Integer
    i = [a8].CurrentRegion.Rows.Count - 2
    Set Vung = Range("b10:b" & i + 9)
        J = Application.WorksheetFunction.CountA(Vung)
            If J < i Then MsgBox ("Chung tu chua du"): Exit Sub
        Range([b10], [b500].End(xlUp)).Offset(0, -1).Resize(, 14).Copy Sheets("th").[a5000].End(xlUp).Offset(1)
        Sheets("TH").Range(Sheets("TH").[a9], Sheets("TH").[a5000].End(xlUp)) = [row(A:A)]
        Range([b10], [b500].End(xlUp)).Offset(0, -1).Resize(, 14).ClearContents
End Sub
Mình chỉ làm cho bạn code lưu qua thôi nhé mấy cái kia bạn Viethoai đã làm rồi, có gì nói tiếp
Híc, sao mình ghét "Mẹcmẹc" thế
thanks bác concogia nhiều .
em sẽ nghiên cứu mấy cái code này mới được
ngày càng ghiền rồi hihihi.
Chữ Mẹc Mẹc là gì vậy Bác. em đã đắc tội với Bác à hic
thanks
 
Upvote 0
1.
Chuẩn quá rồi , hihihi
Mình đổi pass cho sheet được đúng ko bạn ?
Chọn sheet TH, Từ Menu Tools -> Chọn Protection -> Unprotect sheet.. -> Nhập mật khẩu cũ sau đó Bạn nhấn Alt+F11 để vào cửa sổ VBE để đổi mật khẩu nhé. Bạn nên đặt mật khẩu cho Code còn không người khác sẽ biết mật khẩu của bạn đấy
2.
Chuẩn quá rồi , hihihi
sheet NK phải nhập 5 dòng nó mới qua , hihihi đâu phải ai cũng lấy 5 món đâu . nhưng để mình mò thử xem có sữa được ko
Chân thành
Mình đã kiểm tra nhập bao nhiêu hàng cũng được không như bạn nói
3.
Chuẩn quá rồi , hihihi
mỗi lần bấm nút nhập nó dựt dựt màn hình hơi khó coai quá
Bạn dùng
PHP:
Application.ScreenUpdating = False
Đầu đoạn code ở Module1 và
PHP:
Application.ScreenUpdating = True
ở cuối đoạn code Module1
4.
Nếu mình muốn chèm thêm cột thì có vấn đề gì ko bạn ?(chỉ hỏi cho biết )
Nếu chèn thêm thì phải sửa lại Code, còn bạn muốn thêm bớt thỏa mái vẫn được nhưng phải chỉnh sửa lại code (nếu bạn cần mình làm tiếp)
 
Lần chỉnh sửa cuối:
Upvote 0
Ở sheet NK bạn chèn một hàng để dòng [STT],[Số chứng từ]... nó xuống A8, cách với tiêu đề một hàng trống ( NHẬT KÝ XUẤT.....nằm ở A4)
Chép code này vào nút luôn nhé
Mã:
Private Sub nhap_Click()
  Dim i As Integer, Vung As Range, J As Integer
    i = [a8].CurrentRegion.Rows.Count - 2
    Set Vung = Range("b10:b" & i + 9)
        J = Application.WorksheetFunction.CountA(Vung)
            If J < i Then MsgBox ("Chung tu chua du"): Exit Sub
        Range([b10], [b500].End(xlUp)).Offset(0, -1).Resize(, 14).Copy Sheets("th").[a5000].End(xlUp).Offset(1)
        Sheets("TH").Range(Sheets("TH").[a9], Sheets("TH").[a5000].End(xlUp)) = [row(A:A)]
        Range([b10], [b500].End(xlUp)).Offset(0, -1).Resize(, 14).ClearContents
End Sub
Mình chỉ làm cho bạn code lưu qua thôi nhé mấy cái kia bạn Viethoai đã làm rồi, có gì nói tiếp
Híc, sao mình ghét "Mẹcmẹc" thế
Bác concogia ơi em đem code này vào nút mà nó báo lỗi . nhưng mà em ko biết là có xóa hay để code cũ của anh viethoai ko , em test cả 2 không cái nào được
bác giúp em nhé !!!
thanks!!

1.

Bạn nhấn Alt+F11 để vào cửa sổ VBE để đổi mật khẩu nhé. Bạn nên đặt mật khẩu cho Code còn không người khác sẽ biết mật khẩu của bạn đấy
2.

Mình đã kiểm tra nhập bao nhiêu hàng cũng được không như bạn nói
3.

Bạn dùng
PHP:
Application.ScreenUpdating = False
Đầu đoạn code ở Module1 và
PHP:
Application.ScreenUpdating = True
ở cuối đoạn code Module1
4.

Nếu chèn thêm thì phải sửa lại Code, còn bạn muốn thêm bớt thỏa mái vẫn được nhưng phải chỉnh sửa lại code (nếu bạn cần mình làm tiếp)[/QUOte
Hay quá !
Mình sẽ nghiên cứu mấy cái này mới được hấp dẫn quá.
Sẵn đây Viethoai giúp mình 1 cái vd nữa nha, mình có hỏi trên 4rum rồi bảo dùng macro , mình dùng macro ghi lại thì công thức dài thênh thang ko biết chỉnh sửa như thế nào .
Nhờ Viethoai xem giúp nhé http://www.giaiphapexcel.com/forum/...ử-dụng-code-hay-công-thức&p=265692#post265692
thanks!!!!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn viethoai ơi ! bạ làm ơn cho mình hỏi đoạn code sau nó có nghĩa là gì , mình test 1 sheeet đổi tên thì nó báo lỗi không thể change merged dòng , mình muốn tìm hiểu thêm chỗ này mong bạn chỉ mình thông hiểu thanks !
Mã:
Sub NhapLieu()
Application.ScreenUpdating = False
Sheet3.Select
ActiveSheet.Unprotect ("nganlanyeuem")
Sheet2.Range("B9:N" & Sheet2.[B65500].End(xlUp).Row).Copy Range("B" & [B65500].End(xlUp).Row + 1)
ActiveSheet.Protect ("nganlanyeuem")
Sheet2.Select
Range("B9:N" & [B65500].End(xlUp).Row).ClearContents
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom