Xem giúp em code vba cho file đăng ký làm thêm giờ

Liên hệ QC

nguyentheviet86

Thành viên hoạt động
Tham gia
18/7/20
Bài viết
114
Được thích
7
Thân gửi anh chị, nhờ anh chị xem giúp em code cho file
Tại sheet Data nếu ko nhập đầy đủ thông tin tại cột C-> E và H->J thì sẽ không nhập vào dữ liệu ạ
Em xin cảm ơn !

1641866253926.png
 

File đính kèm

  • Đăng ký OVT.xlsm
    172.7 KB · Đọc: 5
Sao bạn lập lắm toppic thế?
Thêm điều kiện vào trước khi làm gì đó là được mà
 
Upvote 0
vì em chưa biết code nhiều nên mong anh chị giúp đỡ ạ

Sửa thử như này coi có đúng ý bạn không?
Mã:
Sub dkot()

Dim lr1, lr2 As Long
Dim rng As Range
Dim datetc As Date
Dim ckdt As Boolean

lr1 = Sheet1.Range("C" & Rows.Count).End(xlUp).Row
lr2 = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
datetc = Sheet1.Range("h9").value
If datetc > 0 And Sheet1.Range("e9").value <> "" And Sheet1.Range("H9").value <> "" And Sheet1.Range("J9").value <> "" And lr1 > 12 Then
    ckdt = True
Else
    If datetc = 0 Then
        ckdt = False
        MsgBox " OT date is emplty", , "Thoa Hana"
        Exit Sub
    End If
    If lr1 <= 12 Then
        ckdt = False
        MsgBox "Data is empty", , "Thoa Hana"
        Exit Sub
    End If
End If
If ckdt = True Then
    Sheet3.Range("A" & lr2 + 1 & ":A" & lr2 + lr1 - 12) = Now
    Sheet3.Range("B" & lr2 + 1 & ":B" & lr2 + lr1 - 12) = datetc
    Sheet3.Range("C" & lr2 + 1 & ":K" & lr2 + lr1 - 12) = Sheet1.Range("C13:K" & lr1).value
    Sheet1.Range("B13:K" & lr1) = ""
    MsgBox "Done", , "Thoa Hana"
End If
End Sub
 
Upvote 0
Sửa thử như này coi có đúng ý bạn không?
Mã:
Sub dkot()

Dim lr1, lr2 As Long
Dim rng As Range
Dim datetc As Date
Dim ckdt As Boolean

lr1 = Sheet1.Range("C" & Rows.Count).End(xlUp).Row
lr2 = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
datetc = Sheet1.Range("h9").value
If datetc > 0 And Sheet1.Range("e9").value <> "" And Sheet1.Range("H9").value <> "" And Sheet1.Range("J9").value <> "" And lr1 > 12 Then
    ckdt = True
Else
    If datetc = 0 Then
        ckdt = False
        MsgBox " OT date is emplty", , "Thoa Hana"
        Exit Sub
    End If
    If lr1 <= 12 Then
        ckdt = False
        MsgBox "Data is empty", , "Thoa Hana"
        Exit Sub
    End If
End If
If ckdt = True Then
    Sheet3.Range("A" & lr2 + 1 & ":A" & lr2 + lr1 - 12) = Now
    Sheet3.Range("B" & lr2 + 1 & ":B" & lr2 + lr1 - 12) = datetc
    Sheet3.Range("C" & lr2 + 1 & ":K" & lr2 + lr1 - 12) = Sheet1.Range("C13:K" & lr1).value
    Sheet1.Range("B13:K" & lr1) = ""
    MsgBox "Done", , "Thoa Hana"
End If
End Sub
Em coppy mã code vào nhưng khi nhập xong bấm nút Update không nhập được dữ liệu vào ạ
 
Upvote 0
Upvote 0
nhưng em đánh đầy đủ các thông tin ở các cột khi bấm update thì không ra dữ liệu ạ
Sửa lại code
Mã:
Sub dkot()

Dim lr1, lr2 As Long
Dim rng As Range
Dim datetc As Date
Dim ckdt As Boolean

lr1 = Sheet1.Range("C" & Rows.Count).End(xlUp).Row
lr2 = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
datetc = Sheet1.Range("h9").value
If datetc > 0 And Sheet1.Range("C9").value <> "" And Sheet1.Range("E9").value <> "" And Sheet1.Range("H9").value <> "" And lr1 > 12 Then
    ckdt = True
Else
    If datetc = 0 Then
        ckdt = False
        MsgBox " OT date is emplty", , "Thoa Hana"
        Exit Sub
    End If
    If lr1 <= 12 Then
        ckdt = False
        MsgBox "Data is empty", , "Thoa Hana"
        Exit Sub
    End If
End If
If ckdt = True Then
    Sheet3.Range("A" & lr2 + 1 & ":A" & lr2 + lr1 - 12) = Now
    Sheet3.Range("B" & lr2 + 1 & ":B" & lr2 + lr1 - 12) = datetc
    Sheet3.Range("C" & lr2 + 1 & ":K" & lr2 + lr1 - 12) = Sheet1.Range("C13:K" & lr1).value
    Sheet1.Range("B13:K" & lr1) = ""
    MsgBox "Done", , "Thoa Hana"
End If
End Sub
 
Upvote 0
Sửa lại code
Mã:
Sub dkot()

Dim lr1, lr2 As Long
Dim rng As Range
Dim datetc As Date
Dim ckdt As Boolean

lr1 = Sheet1.Range("C" & Rows.Count).End(xlUp).Row
lr2 = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
datetc = Sheet1.Range("h9").value
If datetc > 0 And Sheet1.Range("C9").value <> "" And Sheet1.Range("E9").value <> "" And Sheet1.Range("H9").value <> "" And lr1 > 12 Then
    ckdt = True
Else
    If datetc = 0 Then
        ckdt = False
        MsgBox " OT date is emplty", , "Thoa Hana"
        Exit Sub
    End If
    If lr1 <= 12 Then
        ckdt = False
        MsgBox "Data is empty", , "Thoa Hana"
        Exit Sub
    End If
End If
If ckdt = True Then
    Sheet3.Range("A" & lr2 + 1 & ":A" & lr2 + lr1 - 12) = Now
    Sheet3.Range("B" & lr2 + 1 & ":B" & lr2 + lr1 - 12) = datetc
    Sheet3.Range("C" & lr2 + 1 & ":K" & lr2 + lr1 - 12) = Sheet1.Range("C13:K" & lr1).value
    Sheet1.Range("B13:K" & lr1) = ""
    MsgBox "Done", , "Thoa Hana"
End If
End Sub
Code dưới này thì em nhập không đầy đủ thông tin CỘT C,D,E,H,I,J thì vẫn update được vào dữ liệu ạ
 
Upvote 0
Code dưới này thì em nhập không đầy đủ thông tin CỘT C,D,E,H,I,J thì vẫn update được vào dữ liệu ạ
Mình không biết bạn thử như nào. Nhưng khi mình điền đầy đủ và để trống ô H9 hoặc C9 thì nó sẽ không thực hiện nhập mà
1641871935007.png
 
Upvote 0
Mình không biết bạn thử như nào. Nhưng khi mình điền đầy đủ và để trống ô H9 hoặc C9 thì nó sẽ không thực hiện nhập mà
View attachment 271305
Cái dòng thử 9 không có vấn đề gì ạ, ý em là bắt đầu nhập thông tin tại dòng 13, khi dòng 13 không nhập đủ dữ liệu tại cột C,D,E,H,I,J thì bấm nút update không ra số liệu ạ
Em xin lỗi anh chị vì em không nói rõ tại dòng và cột thứ bao nhiêu
 
Upvote 0
Cái dòng thử 9 không có vấn đề gì ạ, ý em là bắt đầu nhập thông tin tại dòng 13, khi dòng 13 không nhập đủ dữ liệu tại cột C,D,E,H,I,J thì bấm nút update không ra số liệu ạ
Em xin lỗi anh chị vì em không nói rõ tại dòng và cột thứ bao nhiêu
chót:
Mã:
Sub dkot()
Dim tungay, denngay
Dim lr1, lr2 As Long
Dim rng As Range
Dim datetc As Date
Dim ckdt As Boolean

lr1 = Sheet1.Range("C" & Rows.Count).End(xlUp).Row
lr2 = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
datetc = Sheet1.Range("h9").value
tungay = Sheet1.Range("c9").value
denngay = Sheet1.Range("E9").value

If datetc > 0 And tungay <> "" And denngay <> "" And lr1 > 12 Then

    ckdt = True
Else
    If datetc = 0 Then
        ckdt = False
        MsgBox " OT date is emplty", , "Thoa Hana"
        Exit Sub
    End If
    If lr1 <= 12 Then
        ckdt = False
        MsgBox "Data is empty", , "Thoa Hana"
        Exit Sub
    End If
End If

If ckdt = True And (lr1 - 12) * 6 = Sheet1.Cells(1, 1).value Then
    Sheet3.Range("A" & lr2 + 1 & ":A" & lr2 + lr1 - 12) = Now
    Sheet3.Range("B" & lr2 + 1 & ":B" & lr2 + lr1 - 12) = datetc
    Sheet3.Range("C" & lr2 + 1 & ":K" & lr2 + lr1 - 12) = Sheet1.Range("C13:K" & lr1).value
   
    Sheet1.Range("B13:K" & lr1) = ""
    MsgBox "Done", , "Thoa Hana"
Else
    MsgBox "Nhap thieu du lieu. Kiem tra lai"
End If

End Sub
 

File đính kèm

  • Đăng ký OVT (1).xlsm
    123.5 KB · Đọc: 12
Upvote 0
chót:
Mã:
Sub dkot()
Dim tungay, denngay
Dim lr1, lr2 As Long
Dim rng As Range
Dim datetc As Date
Dim ckdt As Boolean

lr1 = Sheet1.Range("C" & Rows.Count).End(xlUp).Row
lr2 = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
datetc = Sheet1.Range("h9").value
tungay = Sheet1.Range("c9").value
denngay = Sheet1.Range("E9").value

If datetc > 0 And tungay <> "" And denngay <> "" And lr1 > 12 Then

    ckdt = True
Else
    If datetc = 0 Then
        ckdt = False
        MsgBox " OT date is emplty", , "Thoa Hana"
        Exit Sub
    End If
    If lr1 <= 12 Then
        ckdt = False
        MsgBox "Data is empty", , "Thoa Hana"
        Exit Sub
    End If
End If

If ckdt = True And (lr1 - 12) * 6 = Sheet1.Cells(1, 1).value Then
    Sheet3.Range("A" & lr2 + 1 & ":A" & lr2 + lr1 - 12) = Now
    Sheet3.Range("B" & lr2 + 1 & ":B" & lr2 + lr1 - 12) = datetc
    Sheet3.Range("C" & lr2 + 1 & ":K" & lr2 + lr1 - 12) = Sheet1.Range("C13:K" & lr1).value
  
    Sheet1.Range("B13:K" & lr1) = ""
    MsgBox "Done", , "Thoa Hana"
Else
    MsgBox "Nhap thieu du lieu. Kiem tra lai"
End If

End Sub
Được rồi ạ, em cảm ơn anh chị ạ
 
Upvote 0
Web KT

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

Back
Top Bottom