Cách nhập dữ liệu trong Excel bằng form tự tạo

Liên hệ QC

thaibinh_excel

Thành viên hoạt động
Tham gia
18/10/07
Bài viết
127
Được thích
29
Nghề nghiệp
Bán Hàng
Các bạn giúp mình nhé,

Mình có 1 Form số liệu mà nếu nhập bằng cách trực tiếp thì rất dài và mất thời gian, còn nếu dùng lệnh Form của Excel thi nó không thể hiện hết nổi các sheet và phải dùng Tab mới chuyển được.

Mình muốn tạo 1 Form riêng để nhập số liệu tiết kiệm thời gian hơn bằng cách hễ mình nhập trong Form của mình là nó sẽ tự cập nhật qua sheet tổng hợp, nhập xong mình xóa đi nhập dữ liệu khác là nó tự động xuống 1 hàng để chuyển tiếp dữ liệu mà không mất đi dữ liệu của mình. Mình có đính kèm file để các bạn xem thử ?

Không biết Excel có làm được cái này không nhỉ? Các bạn xem và giúp mình nhé.

Cảm ơn các bạn nhiều
 

File đính kèm

  • Sample.xls
    20 KB · Đọc: 8,096
Em cảm ơn bác ạ, file bác làm rất hay và nhập rất nhanh ạ. Có thể vừa nhập vừa quan sát được cả danh sách.
Xin bác giúp em
(1) cách để gọi bảng nhập, vì em phải đổi từ sheet này sang sheet khác nó mới lên bảng nhập,
(2) & font chữ của bảng nhập, bác bỏ dấu và viết gọn lại giúp em ạ.
(3) Ngoài ra bác chỉnh giúp em sau khi từ đơn giá enter 1 cái là tự nhập luôn đồng thời tự động xóa và trở lại ô tên sản phẩm để nhập ạ.
(4) cửa sổ đã nhập xong nếu là 1 phép check thì bác set giúp em tự tắt sau 0,5s, còn không thì tắt hẳn.
(5) mặc định khi mở thẻ nhập tất cả các ô đều trắng hết.
Khiếp, từ từ từng bước đi nào

(1) Hiện tại khi kích động trang tính Form2 thì Form xuất hiện
Nếu muốn hiện lúc nào cũng được thì:
Tạo 1 macro để mở Form để ở module1
Tạo cho macro này 1 tổ hợp phím để mơ nó, ví dụ như {CTRL}+{SHIFT}+O
Khí í ở trang tính nào bạn muốn mở Form cũng đặng!

(2) Chưa rõ iêu cầu lắm

(3) Chuyện trở lại TextBox 'Tên' sau khi nhập là lệnh Set Forcus, bạn thử hay tìm trên GPE

(4) Chuyện này bạn tự tìm hiểu & thực hiện đi, mình không có chuyên lắm!

(5) Không nên; Ngược lại cần thêm câu lệnh để kiểm tra TextBox 'Tên' có khác "GPE.COM" hay không mà thôi.
 
Upvote 0
Khiếp, từ từ từng bước đi nào

(1) Hiện tại khi kích động trang tính Form2 thì Form xuất hiện
Nếu muốn hiện lúc nào cũng được thì:
Tạo 1 macro để mở Form để ở module1
Tạo cho macro này 1 tổ hợp phím để mơ nó, ví dụ như {CTRL}+{SHIFT}+O
Khí í ở trang tính nào bạn muốn mở Form cũng đặng!

(2) Chưa rõ iêu cầu lắm

(3) Chuyện trở lại TextBox 'Tên' sau khi nhập là lệnh Set Forcus, bạn thử hay tìm trên GPE

(4) Chuyện này bạn tự tìm hiểu & thực hiện đi, mình không có chuyên lắm!

(5) Không nên; Ngược lại cần thêm câu lệnh để kiểm tra TextBox 'Tên' có khác "GPE.COM" hay không mà thôi.
Vâng. Em cảm ơn bác ạ
 
Upvote 0

File đính kèm

  • NhapSach.xlsm
    41.3 KB · Đọc: 13
Lần chỉnh sửa cuối:
Upvote 0
Em đã làm như bác hướng dẫn nhưng khi xóa hết dữ liệu nhập thì không nhập được, bác cho em hỏi sau khi enter ở cột đơn giá sẽ tự nhập và quay lại ô đầu tiên như nào với
:D :D Làm vậy có tiện, nhưng CSDL dễ trùng dòng rất cao: Lợi thì có lợi nhưng răng không còn!
$$$$@

Nếu bạn vẫn muốn tiếp tục thì tạo vài dòng lệnh nắm bắt sự kiện rời khỏi TextBox 'DonGia' thì gọi macro nút lệnh lưu để tiếp tục thôi.
 
Upvote 0
:D :D Làm vậy có tiện, nhưng CSDL dễ trùng dòng rất cao: Lợi thì có lợi nhưng răng không còn!
$$$$@

Nếu bạn vẫn muốn tiếp tục thì tạo vài dòng lệnh nắm bắt sự kiện rời khỏi TextBox 'DonGia' thì gọi macro nút lệnh lưu để tiếp tục thôi.
Thế em xoá hết dữ liệu đi, nhập lại là bị lỗi thì xử lý thế nào bác
 
Upvote 0
Thế em xoá hết dữ liệu đi, nhập lại là bị lỗi thì xử lý thế nào bác
Trong 3 cái Controls đó thì 2 cái cuối đang được cài mặc định, bạn tìm đến từng TextBox đó & bỏ trị mặc định đi
Còn ComboBox thì có thề dùng lệnh để nó lấy trị rỗng lúc cần
 
Upvote 0
Trong 3 cái Controls đó thì 2 cái cuối đang được cài mặc định, bạn tìm đến từng TextBox đó & bỏ trị mặc định đi
Còn ComboBox thì có thề dùng lệnh để nó lấy trị rỗng lúc cần
Private Sub cbDVT_Change()

End Sub

Private Sub CmdLuu_Click()
Dim Rws As Long

Rws = [A65500].End(xlUp).Row + 1
Cells(Rws, "A").Value = 1 + Cells(Rws - 1, "A").Value
Cells(Rws, "B").Value = Me!tbTS.Text
Cells(Rws, "C").Value = Me!cbDVT.Text
Cells(Rws, "D").Value = Me!tbSL.Value
Cells(Rws, "E").Value = Me!tbDG.Value
Me!tbTS.SetFocus
Exit Sub
End Sub

Private Sub tbDG_Change()

End Sub

Private Sub tbTS_Change()

End Sub
em không xác định được đối tượng cần chỉnh sửa bác chỉ giúp em với ạ
 
Upvote 0
Cái TextBox để nhập số lương đang được gán mặc định là Text (=) 1
& TexBox 'DonGia' đang mặc định là 200000
Bạn vô thiết kế của 2 TextBox này & bỏ các trị này đi

Sau đó vô macro bạn trích dẫn bên trên (Private Sub CmdLuu_Click() ) hãy thực hiện gán trị gì mà bạn muốn (Ở dạng chuỗi)
 
Upvote 0
Cái TextBox để nhập số lương đang được gán mặc định là Text (=) 1
& TexBox 'DonGia' đang mặc định là 200000
Bạn vô thiết kế của 2 TextBox này & bỏ các trị này đi

Sau đó vô macro bạn trích dẫn bên trên (Private Sub CmdLuu_Click() ) hãy thực hiện gán trị gì mà bạn muốn (Ở dạng chuỗi)
Cảm ơn bác ạ, em cũng đã chỉnh và tùy biên được một chút , nhưng do trình độ chưa đến mức da lông, 1 số đối tượng có vẻ hơi trìu tượng em chỉ chỉnh được máy móc ở mức độ nào đó, nên em chỉ làm được đến thế này thôi, còn lỗi vẫn phải để số 1 ở danh sách mới cho nhập em không xử lý được
 

File đính kèm

  • NhapSach.xlsm
    22.1 KB · Đọc: 7
Upvote 0
Nếu sửa lại đơn giá được thì TextBox số lượng cũng sửa tương tự mà.
 
Upvote 0
Bạn thao tác trên file này xem sao
 

File đính kèm

  • NhapSach.xlsm
    44.7 KB · Đọc: 30
Upvote 0
Bác SA_DQ chưa bẫy lỗi ở dòng này khi bảng dữ liệu chưa phát sinh STT nào cả.
Cells(Rws, "A").Value = 1 + Cells(Rws - 1, "A").Value

Tôi chỉ biết có mỗi cách này:

Mã:
If InStr(1, Cells(Rws - 1, "A").Value, "STT") Then
        Cells(Rws, "A").Value = 1
    Else
        Cells(Rws, "A").Value = 1 + Cells(Rws - 1, "A").Value
    End If
 
Lần chỉnh sửa cuối:
Upvote 0
Bác SA_DQ chưa bẫy lỗi ở dòng này khi bảng dữ liệu chưa phát sinh STT nào cả.
Cells(Rws, "A").Value = 1 + Cells(Rws - 1, "A").Value

Tôi chỉ biết có mỗi cách này:

Mã:
If InStr(1, Cells(Rws - 1, "A").Value, "STT") Then
        Cells(Rws, "A").Value = 1
    Else
        Cells(Rws, "A").Value = 1 + Cells(Rws - 1, "A").Value
    End If
Xoá dòng kia đi thay dòng này vài ah bạn.
 
Upvote 0
C1: tạm đổi các kí tự STT thành số 0; Sau khi nhập dòng dữ liệu thì trả lại các kí tự này.
C2: Nhập tay (thủ công) dòng dữ liệu đầu
C3: Bảy lỗi dòng lệnh Theo kiểu: Nếu Rws=3 thì =1 Else thì như dòng lệnh.
C4. . . . .
. . . .
 
Upvote 0
C1: tạm đổi các kí tự STT thành số 0; Sau khi nhập dòng dữ liệu thì trả lại các kí tự này.
C2: Nhập tay (thủ công) dòng dữ liệu đầu
C3: Bảy lỗi dòng lệnh Theo kiểu: Nếu Rws=3 thì =1 Else thì như dòng lệnh.
C4. . . . .
. . . .
Cảm ơn bác. E đã chỉnh được
 
Upvote 0
e thì không rành Vba cho lắm, e có tìm trên mạng cách làm một cái form, nhưng lại không biết làm sao cho đúng, nhờ các a chị giúp e.
1. Ô tìm kiếm của e thì tìm ô STT, mà e lại muốn tìm là cái tên.
2. Chưa làm được nút thêm ở chế độ sửa.
3. Chưa làm được nút xoá
4. Khi tìm kiếm không có người nào mà lại bấm sửa bị lỗi, không khắc phục được.
Xin mọi người giúp đỡ
 

File đính kèm

  • QuanLy.xlsm
    52.9 KB · Đọc: 15
Upvote 0
Nhờ mọi người giúp mình công thức tổng các khẩu trong excel lên dòng tổng mình đã bôi đậm trong file đính kèm giúp mình với
Cám ơn mọi người./.
 

File đính kèm

  • Khẩu thu năm 2021.xls
    1.6 MB · Đọc: 3
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom