Tạo SheetForm nhập dữ liệu hàng ngày

Liên hệ QC

nguyentranduc1978

Unsurpassed Сasual Dating - Genuine Females
Tham gia
26/4/08
Bài viết
58
Được thích
4
Giới tính
Nam
Nghề nghiệp
Health
Được nghỉ em lập bài này, nhiều chuyên mục em không biết đăng ở đâu cho đúng nên min mod thấy sai thì chuyển giúp bài sang chuyên mục phù hợp
EM muốn làm file để quản lý và truy xuất CSDL, file: 1 VBA (ở sheet Nhap du lieu em đã có yêu cầu để nhờ giúp)
Có bác trên này đã hướng dẫn em nên làm theo file: 2 VBA dung SheetForm
Em định làm SheetForm để nhập dữ liệu như file 2 VBA dung SheetForm mà chưa đủ trình để làm, bác nào rảnh thì giúp em
Yêu cầu SheetForm các bác xem có hợp lý và làm được không, nhập liệu em thống kê và nhập một lần vào cuối ngày

Ngày nhập; tháng nhập; năm nhập: riêng để sau em lọc dữ liệu tiện theo tháng nhưng khác năm để so sánh …. Nếu ngày nghỉ không làm thì chọn nghỉ không nhập liệu nữa

1. Nhân công: Nhập mã số nhân viên làm trong ngày, lương ngày (lương ngày có thể thay đổi)

2. Vật liệu 1
  • VL1.1
  • VL1.2
  • VL1.3
  • ….. thêm bổ sung khi cần
3. Vật liệu 2
  • VL2.1
  • VL2.2
  • VL2.3
  • ….. (thêm bổ sung khi cần)
4. Vật liệu 3
  • VL3.1
  • VL3.2
  • VL3.3
  • ….. (thêm bổ sung khi cần)
5. Mặt bằng-Điện-Nước-CPK (mục này em có thể đưa vào sau vì mới chỉ là tạm tính khi chưa có hóa đơn thu hàng tháng)
  • MB (tạm tính)
  • Đ
  • N
  • CPK1
  • CPK2
  • CPK3
  • (thêm bổ sung khi cần)
6. Doanh thu:
  • Số bộ loại 1
  • Số bộ loại 2
  • Số bộ loại 3
  • (thêm bổ sung khi cần)
 

File đính kèm

  • 1 VBA.xlsx
    30.9 KB · Đọc: 16
  • 2 VBA dung SheetForm.xlsx
    25.6 KB · Đọc: 24
Lần chỉnh sửa cuối:
Anh ơi xem giúp dùm em tại sao em đánh theo đúng code của anh rồi nhưng nó vẫn ko chạy được, . . . .
Bạn đang trao đổi với ai vậy, trong những người có bài ở đây?
 
Upvote 0
Khi nào anh rãnh thì anh xem giúp dùm em cái nhe anh thank anh
Ông già đó khó tính lắm (tui cũng giống ổng), bạn nên viết tiếng Việt rõ ràng, đúng chính tả, chứ viết nữa Tây nửa Ta như "thank anh, sorry anh ...", hay kiểu "xì tin" như "lun, ko..." ổng không "ngó" tới nữa đâu.
 
Lần chỉnh sửa cuối:
Upvote 0
Ông già đó khó tính lắm (tui cũng giống ổng), bạn nên viết tiếng Việt rõ ràng, đúng chính tả, chứ viết nữa Tây nửa Ta như "thank anh, sorry anh ...", hay kiểu "xì tin" như "lun, ko..." ổng không "ngó" tới nữa đâu.
Cảm ơn anh đã góp ý. Em sẽ chú ý hơn
 
Upvote 0

File đính kèm

  • truoc khi nhap moi.png
    truoc khi nhap moi.png
    90.5 KB · Đọc: 11
  • sau khi nhap sheet Theo_Doi.png
    sau khi nhap sheet Theo_Doi.png
    102.9 KB · Đọc: 11
  • sau khi nhap sheet Tong_Hop.png
    sau khi nhap sheet Tong_Hop.png
    97.1 KB · Đọc: 11
Upvote 0
Macro CmdNhap cần sửa lại là vầy:
PHP:
Private Sub CmdNhap_Click()
Dim ShName As String:                                            Dim lRw As Long
ShName = Me!cbSheet.Text
If ShName = Space(0) Then Exit Sub
With Worksheets(ShName)
    lRw = .Cells(Cells.Rows.Count, "A").End(xlUp).Row + 1
    .Cells(lRw, "A").Value = .Cells(lRw - 1, "A").Value + 1
    .Cells(lRw, "B").Value = Me!tbNgay.Value:                   Me!tbNgay.Text = ""
    .Cells(lRw, "C").Value = Me!tbHD.Value:                     Me!tbHD.Text = ""
    .Cells(lRw, "D").Value = Me!tbNNHD.Text:                     Me!tbNNHD.Text = ""
    .Cells(lRw, "E").Value = Me!tbNcc.Text:                      Me!tbNcc.Text = ""
    .Cells(lRw, "F").Value = Me!tbTenHang.Text:                  Me!tbTenHang.Text = ""
    .Cells(lRw, "G").Value = Me!tbDvt.Text:                      Me!tbDvt.Text = ""
    .Cells(lRw, "H").Value = Me!tbSL.Text:                       Me!tbSL.Text = ""
    .Cells(lRw, "I").Value = Me!tbDN.Text:                       Me!tbDN.Text = ""
    .Cells(lRw, "J").Value = Me!tbNNHang.Text:                   Me!tbNNHang.Text = ""
    .Cells(lRw, "K").Value = Me!tbGC.Text:                       Me!tbGC.Text = ""
    .Cells(lRw, "L").Value = Me!tbXVC.Text:                      Me!tbXVC.Text = ""
    MsgBox "Nhâp Xong!", , "GPE.COM Xin Thông Báo!"
End With
End Sub
Cái này có phần lỗi do từ mình nữa, cảm phiền.
 
Upvote 0
Macro CmdNhap cần sửa lại là vầy:
PHP:
Private Sub CmdNhap_Click()
Dim ShName As String:                                            Dim lRw As Long
ShName = Me!cbSheet.Text
If ShName = Space(0) Then Exit Sub
With Worksheets(ShName)
    lRw = .Cells(Cells.Rows.Count, "A").End(xlUp).Row + 1
    .Cells(lRw, "A").Value = .Cells(lRw - 1, "A").Value + 1
    .Cells(lRw, "B").Value = Me!tbNgay.Value:                   Me!tbNgay.Text = ""
    .Cells(lRw, "C").Value = Me!tbHD.Value:                     Me!tbHD.Text = ""
    .Cells(lRw, "D").Value = Me!tbNNHD.Text:                     Me!tbNNHD.Text = ""
    .Cells(lRw, "E").Value = Me!tbNcc.Text:                      Me!tbNcc.Text = ""
    .Cells(lRw, "F").Value = Me!tbTenHang.Text:                  Me!tbTenHang.Text = ""
    .Cells(lRw, "G").Value = Me!tbDvt.Text:                      Me!tbDvt.Text = ""
    .Cells(lRw, "H").Value = Me!tbSL.Text:                       Me!tbSL.Text = ""
    .Cells(lRw, "I").Value = Me!tbDN.Text:                       Me!tbDN.Text = ""
    .Cells(lRw, "J").Value = Me!tbNNHang.Text:                   Me!tbNNHang.Text = ""
    .Cells(lRw, "K").Value = Me!tbGC.Text:                       Me!tbGC.Text = ""
    .Cells(lRw, "L").Value = Me!tbXVC.Text:                      Me!tbXVC.Text = ""
    MsgBox "Nhâp Xong!", , "GPE.COM Xin Thông Báo!"
End With
End Sub
Cái này có phần lỗi do từ mình nữa, cảm phiền.
Anh ơi, anh xem giúp dùm em cái em đã sữa lại theo anh nhưng em vẫn không mở được nút nhập liệu trong Sheet (Loc), nó không mở được là sao vậy anh mong anh chỉ giúp dùm em cảm ơn anh
 

File đính kèm

  • file mau kho cach 2-.xlsm
    392.9 KB · Đọc: 11
Upvote 0
Anh ơi, anh xem giúp dùm em cái em đã sữa lại theo anh nhưng em vẫn không mở được nút nhập liệu trong Sheet (Loc), nó không mở được là sao vậy anh mong anh chỉ giúp dùm em cảm ơn anh
Mình còn tệ hơn, không những không mở được mà cố tình xóa nó đi cũng không được;
Trong file của mình, mở Form bằng tổ hợp 3 phím
 
Upvote 0
Mình còn tệ hơn, không những không mở được mà cố tình xóa nó đi cũng không được;
Trong file của mình, mở Form bằng tổ hợp 3 phím
Em đã xóa đi đánh lại theo code khác nó mở ra được useform để nhập liệu, nhưng em nhập liệu vào thì nó báo lỗi như hình ah anh, có cách nào giúp em khắc phục dùm xin chỉ dùm em cái nhe anh cảm ơn anh
 

File đính kèm

  • file mau kho cach 3.xlsm
    380.4 KB · Đọc: 15
  • loi.png
    loi.png
    202.5 KB · Đọc: 13
Upvote 0
File của bạn đang có ma ám; Ngay cả trang 'VPP' cũng tự nhiên ẩn đi 1 số dòng 1 cách không bình thường khi nhập thêm dữ liệu vô nó;
Cái trang 'Loc' gì đó nên bỏ đi
Chỉ 4 hay 5 trang ghì đó để nhập liệu thì bớt rườm rà gọi tên trang tính ra để nhập liệu sẽ đơn giản hơn.

Có nghĩa là với mình thì muốn nhập liệu vô trang nào đó thì bấm vô thanh SheetName để kích hoạt trang đó, sau đó bấm tổ hợp phím (do ta qui ước) để mở form mà nhập liệu lên trang đó luôn.
 
Upvote 0
Cảm ơn bác. Em test chạy ổn chưa thấy lỗi gì. Ở sheet Theo_Doi bác giúp em cột thành tiền (=Khối lượng x đơn giá) để em không phải làm hàm
Kiểm tra lại File.
Lưu ý:
- Cột F và G của SheetForm nếu không có dữ liệu thì nó không có kết quả nhân.
- Cột F tôi gán sẳn là 1, còn giá thì bạn phải tự thêm vào.

Do sửa lại code một tí nên tôi chuyển File xuống bài 37.
 
Lần chỉnh sửa cuối:
Upvote 0
Em đã xóa đi đánh lại theo code khác nó mở ra được useform để nhập liệu, nhưng em nhập liệu vào thì nó báo lỗi như hình ah anh, có cách nào giúp em khắc phục dùm xin chỉ dùm em cái nhe anh cảm ơn anh

Tham gia ý kiến chút nhé mọi người.
- Cái lỗi "object requre" là do bạn copy, tạo các control (textbox) mới nhưng không đặt tên (thuộc tính Name) cho nó như trong code nên code nó không biết tham chiếu đến cái control nào.
Vd: ..... = tbNgay.Value
- Xem lại thứ tự các cột trong Sheet để gán giá trị có đúng không.
- Bẫy lỗi tránh để trống dữ liệu cột nào bắt buộc nhập. Ví dụ: cột [Stt]: vì bạn tham chiếu dòng cuối của cột này để xác định dòng nhập kế tiếp, nếu để trống, dữ liệu mấy cột khác vẫn nhập thì sau khi mở form nhập mới, có thể sẽ bị ghi đè dữ liệu.
 
Lần chỉnh sửa cuối:
Upvote 0
File của bạn đang có ma ám; Ngay cả trang 'VPP' cũng tự nhiên ẩn đi 1 số dòng 1 cách không bình thường khi nhập thêm dữ liệu vô nó;
Cái trang 'Loc' gì đó nên bỏ đi
Chỉ 4 hay 5 trang ghì đó để nhập liệu thì bớt rườm rà gọi tên trang tính ra để nhập liệu sẽ đơn giản hơn.

Có nghĩa là với mình thì muốn nhập liệu vô trang nào đó thì bấm vô thanh SheetName để kích hoạt trang đó, sau đó bấm tổ hợp phím (do ta qui ước) để mở form mà nhập liệu lên trang đó luôn.
Em đã nhập được rồi anh nhưng có cách nào cho nó nhập xuống dòng cuối của dữ liệu được không anh nó chỉ nhập dòng đầu dữ liệu dài dài xuống ah, cảm ơn anh
Bài đã được tự động gộp:

Tham gia ý kiến chút nhé mọi người.
- Cái lỗi "object requre" là do bạn copy, tạo các control (textbox) mới nhưng không đặt tên (thuộc tính Name) cho nó như trong code nên code nó không biết tham chiếu đến cái control nào.
Vd: ..... = tbNgay.Value
- Xem lại thứ tự các cột trong Sheet để gán giá trị có đúng không.
- Bẫy lỗi tránh để trống dữ liệu cột nào bắt buộc nhập. Ví dụ: cột [Stt]: vì bạn tham chiếu dòng cuối của cột này để xác định dòng nhập kế tiếp, nếu để trống, dữ liệu mấy cột khác vẫn nhập thì sau khi mở form nhập mới, có thể sẽ bị ghi đè dữ liệu.
Cảm ơn bạn
Bài đã được tự động gộp:

Em đã nhập được rồi anh nhưng có cách nào cho nó nhập xuống dòng cuối của dữ liệu được không anh nó chỉ nhập dòng đầu dữ liệu dài dài xuống ah, cảm ơn anh
Bài đã được tự động gộp:


Cảm ơn bạn
 

File đính kèm

  • file mau kho cach 3.xlsm
    384 KB · Đọc: 11
Upvote 0
Đã bảo là file của bạn có ma ám ở 1 vài trang tính mà!
Mình phát hiện thêm trang nữa ngoài 'VPP'; Đó là 'BienDong'
Phát hiện được thông qua macro như sau:
PHP:
Private Sub CommandButton1_Click()
 Dim Sh As Worksheet
TargetSheet = ComboBox1.Value
If TargetSheet = "" Then
    Exit Sub
End If
'Worksheets(TargetSheet).Activate       '
With Sheets(TargetSheet)
    LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox LastRow:                 Exit Sub
    .Cells(LastRow + 1, 1).Value = tbStt.Value
    .Cells(LastRow + 1, 2).Value = tbNgay.Value
    .Cells(LastRow + 1, 3).Value = tbHoadon.Value
    .Cells(LastRow + 1, 4).Value = tbNnhd.Value
    .Cells(LastRow + 1, 5).Value = tbNcc.Value
    .Cells(LastRow + 1, 6).Value = tbTenhang.Value
    .Cells(LastRow + 1, 7).Value = tbDvt.Value
    .Cells(LastRow + 1, 8).Value = tbSoluong.Value
    .Cells(LastRow + 1, 9).Value = tbDenghi.Value
    .Cells(LastRow + 1, 10).Value = tbNnh.Value
    .Cells(LastRow + 1, 11).Value = tbGhichu.Value
    MsgBox (" Da Nhâp Thành Công")
 End With
tbStt.Value = "":               tbNgay.Value = ""
tbHoadon.Value = "":        tbDvt.Value = ""
tbNnhd.Value = "":              tbNcc.Value = ""
tbTenhang.Value = "":       tbSoluong.Value = ""
tbDenghi.Value = "":        tbNnh.Value = ""
tbGhichu.Value = ""
' Worksheets("Loc").Activate
Worksheets("Loc").Cells(1, 1).Select
End Sub
Bạn chạy thử macro này xem có phải với 'BienDong' nó báo 257 Là con số trời ơi (TO)
Với 'VPP' nó báo 196 cũng là đất hỡi luôn!
 
Upvote 0
Kiểm tra lại File.
Lưu ý:
- Cột F và G của SheetForm nếu không có dữ liệu thì nó không có kết quả nhân.
- Cột F tôi gán sẳn là 1, còn giá thì bạn phải tự thêm vào.
EM dùng mấy hôm thì thấy chạy ổn nếu thực hiện đúng các bước.

Chỉ có lỗi này không biết là office bị lỗi hay xung đột của code nên em viết lại để anh biết. Lỗi này em cố tình làm lại vài lần trên vài máy thì lúc bị lúc không nên chắc là do office của em lỗi
1. Vào SheetForm
2. Mở Form Nhập VL
3. Chọn 1 nhóm VL
4. Lọc bảng giá (em quên bước này)
5. Nhập giá (EM thực hiện bước này) thì xảy ra lỗi và tự thoát khỏi excel nên không chụp ảnh màn hình được

P/s: trước em cũng định học VBA ở #11 nhưng cụ thể không ai trả lời nên em không học được. Nay nếu có lớp nào nhờ min, mod mail lịch học vào hòm thư thông báo em biết để em đăng ký: nguyentranduc2019@gmail.com
https://www.giaiphapexcel.com/diend...bản-tháng-7-16-23-và-30-7.127591/#post-801407
 
Upvote 0
EM dùng mấy hôm thì thấy chạy ổn nếu thực hiện đúng các bước.

Chỉ có lỗi này không biết là office bị lỗi hay xung đột của code nên em viết lại để anh biết. Lỗi này em cố tình làm lại vài lần trên vài máy thì lúc bị lúc không nên chắc là do office của em lỗi
1. Vào SheetForm
2. Mở Form Nhập VL
3. Chọn 1 nhóm VL
4. Lọc bảng giá (em quên bước này)
5. Nhập giá (EM thực hiện bước này) thì xảy ra lỗi và tự thoát khỏi excel nên không chụp ảnh màn hình được

P/s: trước em cũng định học VBA ở #11 nhưng cụ thể không ai trả lời nên em không học được. Nay nếu có lớp nào nhờ min, mod mail lịch học vào hòm thư thông báo em biết để em đăng ký: nguyentranduc2019@gmail.com
https://www.giaiphapexcel.com/diendan/threads/lớp-học-vba-cơ-bản-tháng-7-16-23-và-30-7.127591/#post-801407
1/ Tôi thay đổi cấu trúc 1 tí do không biết trước cột số cột F của SheetForm có số lượng là bao nhiêu nên khi nhập vật liệu xong thì bạn tự gõ số lượng vào rồi nhấn nút nhân giá.
2/ Các nút khác thì sử dụng như cũ.
 
Upvote 0
1/ Tôi thay đổi cấu trúc 1 tí do không biết trước cột số cột F của SheetForm có số lượng là bao nhiêu nên khi nhập vật liệu xong thì bạn tự gõ số lượng vào rồi nhấn nút nhân giá.
2/ Các nút khác thì sử dụng như cũ.
Thank bác, để em về test
 
Upvote 0
1/ Tôi thay đổi cấu trúc 1 tí do không biết trước cột số cột F của SheetForm có số lượng là bao nhiêu nên khi nhập vật liệu xong thì bạn tự gõ số lượng vào rồi nhấn nút nhân giá.
2/ Các nút khác thì sử dụng như cũ.
Bác xem giúp, em mở file mới làm,để máy tính một lúc khoảng 10 phút thì quay lại bị treo thế này (em thử mấy lần rồi)
 

File đính kèm

  • Loi 1.jpg
    Loi 1.jpg
    406.2 KB · Đọc: 10
Upvote 0

File đính kèm

  • VBA dung SheetForm.xls
    356.5 KB · Đọc: 13
Upvote 0
Web KT
Back
Top Bottom