Xem giúp em code vba cho file đăng ký làm thêm giờ (4 người xem)

Liên hệ QC

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

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

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

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