chào thầy,
Mình muốn khi click vào nút "Lưu" sẽ hiện thêm MsgBox "Kiểm tra lại dữ liệu lần nữa trước khi Lưu"
>> nghĩa là, nếu sai mình sửa lại trước khi Lưu
phải làm sao ah?
Chào bạn bạn đang nói lưu trên from hay trên sheets nhỉ?
dạ, trên sheet ah,
như bài giảng ở trên
nghĩa là có thêm 1 Msgbox nhắc 1 lần nữa kiểm tra dữ liệu trước khi Save,
nếu cancel thì mình sửa lại dữ liệu
Sub thuchien()
Dim hoi As VbMsgBoxResult
hoi = MsgBox("Ban co thuc su muon luu du lieu khong", vbOKCancel, "Thông báo")
If hoi = vbOK Then
''xoa
Else
End If
End Sub
Chào bạn bạn thực hiện code như sau nhé.
cảm ơn Tuấn Ba,
MÌNH TEST RỒI,
CLICK CANCEL VẪN SAVE
chào bạn bạn debug từng dòng nhé.
https://drive.google.com/file/d/1yYk3...
Mong thầy xem & sửa giúp ah
Chào bạn bạn cần sử dụng như sau
Sub Re_check()
Dim hoi As VbMsgBoxResult
hoi = MsgBox("Do you really want to save your data?", vbOKCancel, "Notice")
If hoi = vbOK Then
Luu_Du_Lieu_TongHop
End If
End Sub
chào Tuấn Ba, Sorry mình chưa rõ,
Ý mình muốn click "cancel " thì có thể quay trở lại để điều chỉnh data
Mình làm như hướng dẫn thì click "cancel" vẫn save data
Ý mình muốn click "cancel " thì back lên row1 để điều chỉnh data.
Cảm ơn Tuấn Ba.

Chào bạn trong đoạn code này
Option Explicit
Sub Luu_Du_Lieu()
Dim DongCuoi As Long
DongCuoi = Sheets("AUG.21").Range("A" & Rows.Count).End(xlUp).Row
'xac dinh ket qua luu
'Date sign
Range("A" & DongCuoi + 1).Value = Range("A1").Value
'Expire
Range("B" & DongCuoi + 1).Value = Range("B1").Value
'Cus name
Range("C" & DongCuoi + 1).Value = Range("C1").Value
'Contract No.
Range("D" & DongCuoi + 1).Value = Range("D1").Value
'Carry over
Range("E" & DongCuoi + 1).Value = Range("E1").Value
'Q'ty
Range("F" & DongCuoi + 1).Value = Range("F1").Value
'Price
Range("G" & DongCuoi + 1).Value = Range("G1").Value
'Floor price
Range("H" & DongCuoi + 1).Value = Range("H1").Value
'Grade
Range("I" & DongCuoi + 1).Value = Range("I1").Value
'Packing
Range("J" & DongCuoi + 1).Value = Range("J1").Value
'Term
Range("K" & DongCuoi + 1).Value = Range("K1").Value
'PIC
Range("L" & DongCuoi + 1).Value = Range("L1").Value
'Region
Range("M" & DongCuoi + 1).Value = Range("M1").Value
'Code
Range("N" & DongCuoi + 1).Value = Range("N1").Value
'Application
Range("O" & DongCuoi + 1).Value = Range("O1").Value
End Sub
Sub Xoa_Du_Lieu()
Range("A1, B1, C1, D1, E1, F1, G1,H1, I1, J1, K1").ClearContents
End Sub
Sub Luu_Du_Lieu_KetQua()
Call Luu_Du_Lieu
Call Xoa_Du_Lieu
MsgBox "Saving successfull"
End Sub
Sub Luu_Du_Lieu_TongHop()
If Range("A1").Value = "" Then
MsgBox "Pls key: Signing date"
Exit Sub
ElseIf Range("B1").Value = "" Then
MsgBox "Pls key: Expire date"
Exit Sub
ElseIf Range("C1").Value = "" Then
MsgBox "Pls key: Cus name"
Exit Sub
ElseIf Range("D1").Value = "" Then
MsgBox "Pls key: Contract No."
Exit Sub
ElseIf Range("G1").Value = "" Then
MsgBox "Pls key: Price"
Exit Sub
ElseIf Range("H1").Value = "" Then
MsgBox "Pls key: Floor Price"
Exit Sub
ElseIf Range("I1").Value = "" Then
MsgBox "Pls choose: Grade"
Exit Sub
ElseIf Range("J1").Value = "" Then
MsgBox "Pls choose: Packing"
Exit Sub
ElseIf Range("K1").Value = "" Then
MsgBox "Pls choose: Payment term"
Exit Sub
Else
Call Luu_Du_Lieu_KetQua
End If
End Sub
Sub Re_check()
Dim hoi As VbMsgBoxResult
hoi = MsgBox("Do you really want to save your data?", vbOKCancel, "Notice")
If hoi = vbOK Then
Luu_Du_Lieu_TongHop
Else
If Range("A1").Value = "" Then
MsgBox "Pls key: Signing date"
Range("A1").Select
Exit Sub
ElseIf Range("B1").Value = "" Then
MsgBox "Pls key: Expire date"
Range("B1").Select
Exit Sub
ElseIf Range("C1").Value = "" Then
MsgBox "Pls key: Cus name"
Range("C1").Select
Exit Sub
ElseIf Range("D1").Value = "" Then
MsgBox "Pls key: Contract No."
Range("D1").Select
Exit Sub
ElseIf Range("G1").Value = "" Then
MsgBox "Pls key: Price"
Range("G1").Select
Exit Sub
ElseIf Range("H1").Value = "" Then
MsgBox "Pls key: Floor Price"
Range("H1").Select
Exit Sub
ElseIf Range("I1").Value = "" Then
MsgBox "Pls choose: Grade"
Range("I1").Select
Exit Sub
ElseIf Range("J1").Value = "" Then
MsgBox "Pls choose: Packing"
Range("J1").Select
Exit Sub
ElseIf Range("K1").Value = "" Then
MsgBox "Pls choose: Payment term"
Range("K1").Select
Exit Sub
End If
End If
End SubChào bạn bạn chọn nút lưu vào sự kiện Re_check
chân thành cảm ơn chuyên gia, Ok rồi ah,
Mình lại gặp sự cố khi lock sheet, mong chuyên gia hổ trợ thêm lần nữa ah,
Ko lock sheet thi OK save dc, nhưng clock thì như sau ah
https://drive.google.com/file/d/1yYk3...

Chào bạn phần này gợi ý bạn như sau
Sub Re_check()
//code mở locksheet
Dim hoi As VbMsgBoxResult
hoi = MsgBox("Do you really want to save your data?", vbOKCancel, "Notice")
If hoi = vbOK Then
Luu_Du_Lieu_TongHop
Else
If Range("A1").Value = "" Then
MsgBox "Pls key: Signing date"
Range("A1").Select
Exit Sub
ElseIf Range("B1").Value = "" Then
MsgBox "Pls key: Expire date"
Range("B1").Select
Exit Sub
ElseIf Range("C1").Value = "" Then
MsgBox "Pls key: Cus name"
Range("C1").Select
Exit Sub
ElseIf Range("D1").Value = "" Then
MsgBox "Pls key: Contract No."
Range("D1").Select
Exit Sub
ElseIf Range("G1").Value = "" Then
MsgBox "Pls key: Price"
Range("G1").Select
Exit Sub
ElseIf Range("H1").Value = "" Then
MsgBox "Pls key: Floor Price"
Range("H1").Select
Exit Sub
ElseIf Range("I1").Value = "" Then
MsgBox "Pls choose: Grade"
Range("I1").Select
Exit Sub
ElseIf Range("J1").Value = "" Then
MsgBox "Pls choose: Packing"
Range("J1").Select
Exit Sub
ElseIf Range("K1").Value = "" Then
MsgBox "Pls choose: Payment term"
Range("K1").Select
Exit Sub
End If
End If
//code khoá locksheet
End Subcảm ơn bạn, mình đã hiểu và làm dc.
chúc 1 ngày tốt lành !
cảm ơn bạn đã tin tưởng và đồng hành cùng gitiho chúc bạn học tốt nếu thời gian rảnh hãy đánh giá về gitiho