Nhờ sửa vùng dữ liệu của code VB form nhập liệu (1 người xem)

Liên hệ QC

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

ntquantn

Thành viên chính thức
Tham gia
13/4/12
Bài viết
72
Được thích
12
Chào các bạn,

Mình có đoạn code như bên dưới dùng để tạo form nhập liệu. Dữ liệu liệu mình muốn nhập vào các cột B,C, -->H và Cột M, bắt đầu từ hàng thứ 10 trở đi.
Vấn đề của mình là các cột A, J,K... thì mình đã để sẵn công thức nên khi sử dụng đoạn code trên thì dữ liệu nhập vào nhảy xuống dòng dưới cùng +1 (là dòng mình không đặt công thức tại các cột A,I,J,K...)

Rất mong các bạn sửa giúp mình đoạn code này.

P/s: Mình mù tịt về VB, đoạn code này là mình học từ 1 clip hướng dẫn trên mạng, và chỉnh sửa một chút theo nhu cầu.

Private Sub btnDHT_Click()
Dim EndR As Long
With Sheets("Banle")
EndR = .Range("B" & Rows.Count).End(xlUp).Row
.Range("B" & EndR + 1) = txtNgayBL.Text
.Range("C" & EndR + 1) = txtKHBL.Text
.Range("D" & EndR + 1) = txtPhoneBL.Text
.Range("E" & EndR + 1) = txtADDbl.Text
.Range("F" & EndR + 1) = txtNoteBL.Text
.Range("G" & EndR + 1) = txtMABL.Text
.Range("H" & EndR + 1) = txtSLBL.Text
.Range("M" & EndR + 1) = txtKMBL.Text
End With
Dim ctr As Control
For Each ctr In Me.Controls
If TypeName(ctr) = "Textbox" Then
ctr.Text = ""
End If
Next ctr
txtNgayBL.SetFocus
End Sub

Private Sub btnDong_Click()
Unload Me
End Sub

Private Sub btnSPT_Click()
Dim EndR As Long
With Sheets("Banle")
EndR = .Range("B" & Rows.Count).End(xlUp).Row
.Range("B" & EndR + 1) = txtNgayBL.Text
.Range("C" & EndR + 1) = txtKHBL.Text
.Range("D" & EndR + 1) = txtPhoneBL.Text
.Range("E" & EndR + 1) = txtADDbl.Text
.Range("F" & EndR + 1) = txtNoteBL.Text
.Range("G" & EndR + 1) = txtMABL.Text
.Range("H" & EndR + 1) = txtSLBL.Text
.Range("M" & EndR + 1) = txtKMBL.Text
End With
txtMABL.Text = ""
txtSLBL.Text = ""
txtKMBL.Text = ""
Dim ctr As Control
For Each ctr In Me.Controls
If TypeName(ctr) = "Textbox" Then
ctr.Text = ""
End If

Next ctr
txtMABL.SetFocus
End Sub
 
Chọn từ B10 trở xuống đến dòng cuối cùng của sheet và xóa rồi thử lại xem.
 
Upvote 0
Mình đã xóa các công thức thì khi dùng code này để nhập liệu ok bạn à. Nhưng vì mình muốn để công thức tại các cột kia để tiện theo dõi nên mới rắc rối :(
 
Upvote 0
Upvote 0
Gởi tới tác giả vài tâm tư về cấu trúc của trang bán lẽ:

Ta thấy thường 1 hóa đơn có không dưới 1 mặt hàng;
& như vậy khi nhập dữ liệu, thì các cột/trường
[Ngày], [Khách Hàng], [Điện Thoại], [Địa chỉ], [Ghi chú], [Số Hóa Đơn], [Giao hàng] & [ Tình Trạng]
Sẽ giống dữ liệu trong cùng 1 số hóa đơn;

Chi bằng ta nên tách dữ liệu trang tính này ra làm 2 bảng; trong 2 bảng đó có 1 trường trùng nhau mà thôi; Đó là trường [Số HĐ]
Nhưng cái lọi là bảng mà mình gọi là bảng chung (gồm [Ngày], [Khách hàng],. . . . ) sẽ giảm còn lại 1 dòng thôi.

Bạn nghĩ sao về điều này?
 
Upvote 0
Mình cũng nghĩ giống bạn, nhưng chưa nghĩ được cách làm ổn thỏa.

Thú thật là dù mình tiếp xúc với máy tính từ 20 năm nay. Nhưng kiến thức về excel tính cho đến cách đây 2 tuần thì mình biết mỗi lệnh Sum (nếu không tính cả copy, paste). 2 Tuần vừa rồi tranh thủ xử lý file excel quản lý cho gia đình mà vất vả quá
 
Upvote 0
Mới 2 tuần mà xài đến Form là quá lắm rồi!
Với mình thì 2 tuần mình chỉ dám nhập liệu từ 1 vùng trang tính lên trang CSDL mà thôi!

& quan trọng là bạn có định "khởi nghiệp" với 2 Tables như mình nêu hay không thôi; Mọi chuyện sẽ có rất nhiều thành viên từ GPE.COM hỗ trợ.

Chúc vui & thành công!
 
Upvote 0
Mình định dùng form vì nhu cầu thôi, 2 tuần vừa rồi loay hoay mãi mới tìm hiểu được 1 chút về excel xử lý cho công việc.. File excel của mình làm xong dù chưa có dữ liệu nhập đã hơn 3Mb, nặng quá nên phải nghiên cứu sang vb xem có nhẹ hơn không mà vất quá

Quay lại 1 về file mình gửi ở bên trên, Bây giờ mình muốn hiển thị thêm mục tên sản phẩm thì phải làm như thế nào.

Mình mô tả như sau: tại form nhập liệu thì khi nhập Mã sản phẩm thì bên cạnh sẽ có tên sản phẩm hiện ra để khi nhập liệu sẽ phát hiện sai xót nếu gõ nhầm mã. Mong các bạn hướng dẫn mình với
 
Upvote 0
Thường trong Form thì chuyện này nên xài ComboBox; nguồn của nó là bảng danh mục gồm 2 cột [Mã Hàng] & [Tên HH]
Bảng này nên gán 1 cái tên (như [DMHH]); Bạn thử xem sao!
 
Upvote 0
Thường trong Form thì chuyện này nên xài ComboBox; nguồn của nó là bảng danh mục gồm 2 cột [Mã Hàng] & [Tên HH]
Bảng này nên gán 1 cái tên (như [DMHH]); Bạn thử xem sao!

Cảm ơn bạn gợi ý, nhưng mình mù vb nên xin nhờ bạn giúp mình đoạn code làm được việc đó không??

Mình có tìm trên mạng thì thấy trong 1 clip có đoạn họ nói về dùng label để hiển thị, nên mình làm thử như sau: Mình tạo thêm 1 checkbox và 1 label đặt tên là Lbtsp. Nếu tích vào checkbox (hoặc đặt nó luôn luôn check) rồi dùng lệnh If để hiển thị nhưng không được


Private Sub cbox1_Click()
With Sheets("Banle")
If cbox1.Value Then
lbtsp.Visible = True
lbtsp.Caption = ActiveSheet.Cell("I" & EndR + 1).Value
Else
lbtsp.Caption = ""
lbtsp.Visible = False
End If
End With
End Sub
 
Upvote 0
Mình chưa dám đụng đến file của bạn;
Bạn tham khảo tạm file này;
Trong Form của file có 2 Combobox; Bạn xem cái fía dưới trước

(Xin lưu í với bạn không được đưa 2 bài cùng nội dung lên diễn đàn!)
 

File đính kèm

Upvote 0
Chào các bạn,
Mình có đoạn code như bên dưới dùng để tạo form nhập liệu. Dữ liệu liệu mình muốn nhập vào các cột B,C, -->H và Cột M, bắt đầu từ hàng thứ 10 trở đi.
Vấn đề của mình là các cột A, J,K... thì mình đã để sẵn công thức nên khi sử dụng đoạn code trên thì dữ liệu nhập vào nhảy xuống dòng dưới cùng +1 (là dòng mình không đặt công thức tại các cột A,I,J,K...)
Làm Hóa đơn mà dùng UserForm thì tôi không rớ rồi.
Bạn có thể tham khảo cách làm trong File của bài viết ở Link sau:

http://www.giaiphapexcel.com/diendan/threads/theo-dõi-và-truy-vấn-đơn-thuốc-nơi-phòng-khám-bệnh.126073/

Muốn nhập liệu nhanh thì phải có 1 sheet Danh mục hàng hóa.
Lưu ý: Nội dung bài viết này nên đăng trong Box Lập trình với Excel, đăng nơi đây là sai Box (do lỡ trả lời rồi) nên tôi chỉ nhắc để lần sau tránh vi phạm.

Hiện tại, tôi trả lời cho bạn tại bài viết này thì tôi cũng bị vi phạm nội quy, bài viết trước của bạn ở Link sau:
http://www.giaiphapexcel.com/diendan/threads/hiện-dữ-liệu-trong-userform-nhập-liệu.129880/
 
Lần chỉnh sửa cuối:
Upvote 0
Để tiếp tục, tác giả bài đăng cần cho biết:

(.) Số lương khách hàng nới bạn;
(.) Số lương mặt hàng hiện giờ hay trong tương lai gần;
(.) Số hóa đơn thường fải lập trong 1 ngày.

& Nên nhớ rằng thiết kế cấu trúc các trang dữ liệu hoàn hảo rồi mới đi đến việc xử lí dữ liệu. Mình thấy rằng cấu trúc dữ liệu của bạn đang có vấn đề
Thêm nữa, trong Excel ơới dự định xài VBA không nên trộn ô.
 
Upvote 0
Mình chưa dám đụng đến file của bạn;
Bạn tham khảo tạm file này;
Trong Form của file có 2 Combobox; Bạn xem cái fía dưới trước

(Xin lưu í với bạn không được đưa 2 bài cùng nội dung lên diễn đàn!)
Làm Hóa đơn mà dùng UserForm thì tôi không rớ rồi.
Bạn có thể tham khảo cách làm trong File của bài viết ở Link sau:

http://www.giaiphapexcel.com/diendan/threads/theo-dõi-và-truy-vấn-đơn-thuốc-nơi-phòng-khám-bệnh.126073/

Muốn nhập liệu nhanh thì phải có 1 sheet Danh mục hàng hóa.
Lưu ý: Nội dung bài viết này nên đăng trong Box Lập trình với Excel, đăng nơi đây là sai Box (do lỡ trả lời rồi) nên tôi chỉ nhắc để lần sau tránh vi phạm.

Hiện tại, tôi trả lời cho bạn tại bài viết này thì tôi cũng bị vi phạm nội quy, bài viết trước của bạn ở Link sau:
http://www.giaiphapexcel.com/diendan/threads/hiện-dữ-liệu-trong-userform-nhập-liệu.129880/


Rất cảm ơn be09 và Hoang2013 đã góp ý, cơ mà mình ngồi nghiên cứu từ sáng tới giờ mà cứ như nhìn bức vách ấy. :((

P/s: Mình xin lỗi nếu có vi phạm nội quy của GPE.
Mình lập bài kia là do nghĩ nội dung khác rồi nên lập để tiện theo dõi và phù hợp với tiêu đề.
 
Upvote 0
Rất cảm ơn be09 và Hoang2013 đã góp ý, cơ mà mình ngồi nghiên cứu từ sáng tới giờ mà cứ như nhìn bức vách ấy. :((

P/s: Mình xin lỗi nếu có vi phạm nội quy của GPE.
Mình lập bài kia là do nghĩ nội dung khác rồi nên lập để tiện theo dõi và phù hợp với tiêu đề.
Tôi nêu vi phạm nội quy vì nội dung bài viết này hỏi về UserForm thì phải đăng ở Box Lập Trình với Excel mới đúng.
 
Upvote 0
Để tiếp tục, tác giả bài đăng cần cho biết:

(.) Số lương khách hàng nới bạn;
(.) Số lương mặt hàng hiện giờ hay trong tương lai gần;
(.) Số hóa đơn thường fải lập trong 1 ngày.

& Nên nhớ rằng thiết kế cấu trúc các trang dữ liệu hoàn hảo rồi mới đi đến việc xử lí dữ liệu. Mình thấy rằng cấu trúc dữ liệu của bạn đang có vấn đề
Thêm nữa, trong Excel ơới dự định xài VBA không nên trộn ô.

Về nội dung bố cục file excel của mình (Mình đã làm hoàn thiện xong theo nhu cầu của mình nhưng khá nặng ~ 3Mb) trong đó có

1. Sheet data : gồm mã, tên sản phẩm, đơn vị, đơn giá tương ứng (hiện tại có khoảng 150 mã, dự kiến sẽ còn tăng thêm nữa) tại sheet này phải nhập dữ liệu thủ công
2. Sheet nhập kho: gồm có các tên, mã tương ứng như sheet data và theo dõi lượng hàng nhập vào. Số lượng hàng sẽ đc nhập theo ngày.
3 Sheet tồn kho: Theo dõi tồn kho (trong đó có mục tồn đầu kỳ thì phải nhập thủ công, còn xuất trong kỳ thì lấy dữ liệu từ sheet bán lẻ, nhập trong kỳ lấy từ sheet nhập kho)
4. Sheet Bán lẻ: Gồm các thông tin về khách hàng và đơn hàng (trong đó thông tin khách hàng thì phải nhập thủ công). Thông tin đơn hàng thì chỉ cần nhập mã hàng, số lượng và khuyến mại (nếu có) --Tự tạo số hóa đơn (không trùng nhau, dựa vào thông tin ngày, khách hàng)
5. Sheet Hóa đơn: chỉ cần chọn số hóa đơn rồi in
6. Sheet nhật ký chi: Ghi nhật ký chi thanh toán mua bán....-->nhập thủ công hoàn toàn
7. các Sheet còn lại (Lương, chi hoạt động, mua sắm thiết bị, tổng kết....): đều chỉ là lọc lấy dữ liệu từ các sheet trên

Do người nhập là đứa em rất kém về kỹ năng sử dụng nên mình đặt công thức sẵn cho toàn bộ file nên file khá nặng. Nên mình muốn xử lý lại cho file nhẹ nhàng thuận lợi hơn khi sử dụng. càng ít thao tác càng tốt. Ví dụ như mình đang muốn đặt cái nút in tại sheet hóa đơn để khi chọn số hóa đơn là bấm in đc ngay.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
File của bạn giống như 1 fần mềm rồi! Nhưng như vậy ta fải bỏ hầu hết các công thức đi & chuyển sang xài VBA mới mong nhẹ gánh.

So với file ban đầu thì là chuyện khác hoàn toàn rồi; & như vậy mình không đủ khả năng tiếp tục nữa.

Mong bạn thông cảm!
 
Upvote 0
Về nội dung bố cục file excel của mình (Mình đã làm hoàn thiện xong theo nhu cầu của mình nhưng khá nặng ~ 3Mb) trong đó có

1. Sheet data : gồm mã, tên sản phẩm, đơn vị, đơn giá tương ứng (hiện tại có khoảng 150 mã, dự kiến sẽ còn tăng thêm nữa) tại sheet này phải nhập dữ liệu thủ công
2. Sheet nhập kho: gồm có các tên, mã tương ứng như sheet data và theo dõi lượng hàng nhập vào. Số lượng hàng sẽ đc nhập theo ngày.
3 Sheet tồn kho: Theo dõi tồn kho (trong đó có mục tồn đầu kỳ thì phải nhập thủ công, còn xuất trong kỳ thì lấy dữ liệu từ sheet bán lẻ, nhập trong kỳ lấy từ sheet nhập kho)
4. Sheet Bán lẻ: Gồm các thông tin về khách hàng và đơn hàng (trong đó thông tin khách hàng thì phải nhập thủ công). Thông tin đơn hàng thì chỉ cần nhập mã hàng, số lượng và khuyến mại (nếu có) --Tự tạo số hóa đơn (không trùng nhau, dựa vào thông tin ngày, khách hàng)
5. Sheet Hóa đơn: chỉ cần chọn số hóa đơn rồi in
6. Sheet nhật ký chi: Ghi nhật ký chi thanh toán mua bán....-->nhập thủ công hoàn toàn
7. các Sheet còn lại (Lương, chi hoạt động, mua sắm thiết bị, tổng kết....): đều chỉ là lọc lấy dữ liệu từ các sheet trên

Do người nhập là đứa em rất kém về kỹ năng sử dụng nên mình đặt công thức sẵn cho toàn bộ file nên file khá nặng. Nên mình muốn xử lý lại cho file nhẹ nhàng thuận lợi hơn khi sử dụng. càng ít thao tác càng tốt. Ví dụ như mình đang muốn đặt cái nút in tại sheet hóa đơn để khi chọn số hóa đơn là bấm in đc ngay.
Từ không biết gì mà 2 tuần làm ra cái file này thì đúng là đại tài.
 
Upvote 0
File của bạn giống như 1 fần mềm rồi! Nhưng như vậy ta fải bỏ hầu hết các công thức đi & chuyển sang xài VBA mới mong nhẹ gánh.

So với file ban đầu thì là chuyện khác hoàn toàn rồi; & như vậy mình không đủ khả năng tiếp tục nữa.

Mong bạn thông cảm!

Mình vẫn chưa hiểu lắm cơ chế hoạt động khi dùng vb làm userform. Mục đích của mình vẫn chỉ là nhập liệu các thông tin bán hàng (ngày tháng, khách hàng, đơn hàng..) như ở file đầu tiên mình post.

Mình đang xem bài này http://www.giaiphapexcel.com/diendan/threads/hỏi-cách-tạo-2-combobox-phụ-thuộc-nhau.66539/

Trong đó có bài mà bạn huuthang_bd đã làm rất hay, và giống giống với nhu cầu của mình, cơ mà mình copy về rồi chỉnh sửa mãi mà không chạy được hic :(
 
Upvote 0

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

Back
Top Bottom