Tự động cộng 1 khi click vào button trên UseForm

Liên hệ QC

jensen_phan

Thành viên mới
Tham gia
12/2/20
Bài viết
11
Được thích
0
Em đang gặp 1 khó khăn với VBA mong mọi người giúp đỡ với ạ. Em có search google rồi, nhưng không biết keyword nên phải lên đây hỏi mọi người ạ.
Em đang làm 1 file excel có 3 sheet tương ứng với 3 sản phẩm được làm trên 1 máy. Em muốn quản lý số mẻ của máy nào làm ra được.
VD: Hôm nay sản phẩm A chạy từ mẻ số 1 đến 20
ngày mai sẽ chạy sản phẩm B thì số mẻ sẽ tiếp tục từ 21, và tương tụ với C.
"Số của mẻ cuối" cùng được em lấy ra 1 cell bằng hàm Max của 3 cột trong 3 trang sản phẩm.
User form em có 1 button nhập liệu khi kết thúc mẻ.
em muốn mỗi lần click vào button này số mẻ sẽ được cộng 1 đơn vị.
Như vậy khi em click nhập liệu cho sản phẩm B thì hàm sẽ lấy "Số của mẻ cuối" + 1 để điền vào ô dữ liệu.
Mong mọi ng giúp đỡ code mẫu hoặc keyword ạ.
Bài đã được tự động gộp:

Hoặc mình có thể cho nó tự cộng và hiển thị lên trên Useform không ạ.
 
Yêu cầu của bạn nhiều lắm. Vài từ khoá không search nổi gú gô đâu.
Cái mà trong tâm bạn muốn thực hiện là một vấn dề khá phức tạp, nhưng đầu óc bạn tự dối lòng rằng đó chỉ là chuyện nhỏ.

Sub ButtonRefreshSoMe_Click(...)
' populates the textboxes that show latest số mẻ for 3 sản phẩm A, B, C
' NB. change the names like SheetA, textBoxA,... to suit your own circumstances
Const COTSP = "A"
Const COTME = "B"
Dim shCDL, tbSM, i, toiDa
shCDL = VBA.Array( Sheets("SheetA"), Sheets("SheetB"), Sheets("SheetC") )
tbSM = VBA.Array( Me.Controls("textBoxA"), Me.Controls("textBoxB"), Me.Controls("textBoxC") )
For i = 0 To UBound(shCDL)
With shCDL(i)
tbSM(i) = Application.MAX(.Range(COTME & "1:" & COTME & .Cells(.Rows.Count, COTME).End(xlUp).Row))
End With
Next i
End Sub
 
Upvote 0
Yêu cầu của bạn nhiều lắm. Vài từ khoá không search nổi gú gô đâu.
Cái mà trong tâm bạn muốn thực hiện là một vấn dề khá phức tạp, nhưng đầu óc bạn tự dối lòng rằng đó chỉ là chuyện nhỏ.

Sub ButtonRefreshSoMe_Click(...)
' populates the textboxes that show latest số mẻ for 3 sản phẩm A, B, C
' NB. change the names like SheetA, textBoxA,... to suit your own circumstances
Const COTSP = "A"
Const COTME = "B"
Dim shCDL, tbSM, i, toiDa
shCDL = VBA.Array( Sheets("SheetA"), Sheets("SheetB"), Sheets("SheetC") )
tbSM = VBA.Array( Me.Controls("textBoxA"), Me.Controls("textBoxB"), Me.Controls("textBoxC") )
For i = 0 To UBound(shCDL)
With shCDL(i)
tbSM(i) = Application.MAX(.Range(COTME & "1:" & COTME & .Cells(.Rows.Count, COTME).End(xlUp).Row))
End With
Next i
End Sub
cảm ơn bạn rất nhiều, mình tạo 1 cell lấy giá trị Max của các sheet, sau đó đưa vào VBA rồi + 1 để điền vào ô tiếp theo nếu click lựa chọn nhập liệu.
Nó đã chạy theo yêu cầu của mình. Cám ơn bạn đã nhiệt tình hỗ trợ ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom