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
Web KT

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

Back
Top Bottom