XIN GIÚP TẠO USERFORM NHẬP DỮ LIỆU (1 người xem)

Liên hệ QC

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

tommybull

Thành viên hoạt động
Tham gia
21/7/08
Bài viết
191
Được thích
29
Giới tính
Nam
Kính chào anh chị trên diễn đàn,
Nay em lại có một File nhờ anh chị giúp ạ
Nhờ anh chị viết Code UserForm nhập liệu như sau giúp em!
1. Nhập dữ liệu theo thứ tự ưu tiên như sau: "Mã_NV" hoặc "Họ Tên" - "Ngày" - "Tăng ca thường" - "Tăng ca chủ nhật" - "Loại phép" - "Tăng ca đêm" - Tăng ca đêm chủ nhật" - "Tăng ca ngày lễ" - "Tăng ca đêm ngày lễ"
2. Tại "Mã N_V" khi nhập mã số nhân viên vào thì sẽ thực hiện lệnh tìm kiếm và Ô "Họ Tên" sẽ hiển thị đúng tên Nhân viên trong Sheet "Chamcong" hoặc ngược lại.
3. Tại "Ngày" chỉ nhập với định dạng là "DD" không cần nhập tháng và năm, căn cứ ngày tháng hiện tại được đặt ở Sheet "Chamcong"
4. Các ô ghi giờ tăng ca, chỉ nhập số giờ thực tế, sau đó căn cứ vào ô "Ngày" và "Mã_NV" hoặc "Họ Tên" trên UserForm và sau khi Click vào nút lệnh "Nhập-Enter" dữ liệu sẽ ghi vào đúng ngày trong tháng đó và đúng theo tên của nhân viên đó trên Sheet "ChamCong"
5. Ô "Loại phép" gồm có các ký tự như "P" "C" "S" "B" "T" "M" "V" "K" Tại Sheet "Chamcong" sau khi UpdateList" thì các ô từ ngày 1 đến ngày 31 đã mặc định dấu "X" (dấu đi làm) đánh sẵn (Phần UpdateList" em đã nhờ các anh chị trên diễn đàn làm OK rồi ạ), em muốn sau khi nhập vào ô "Loại phép" ở UserForm ví dụ "P8"(Nghỉ phép năm 8 tiếng) hoặc "V4" (Nghỉ việc riêng 4 tiếng) và ô "Ngày" đã nhập số ngày "DD" của tháng đó sau đó nhấn nút lệnh "Nhập_Enter" thì sẽ được ghi vào ô tương ứng của ngày đó và đúng vào dòng tương ứng của nhân viên đó trong Sheet "ChamCong" (Ví dụ tại ô "L6" và "AG6" với dạng là "X;P8 và "X;V4")
*** Em mới chỉ tạo được mẫu USerForm và nút lệnh "Mở Form dữ liệu" theo yêu cầu sử dụng của em, còn lại phần Code, em nhờ các anh chị trên diễn đàn làm giúp ạ. Em không biết diễn tả sao cho xúc tích cụ thể và ngắn gọn, anh chị thông cảm và nhiệt tình giúp đỡ với ạ!

Trân trọng và mong sớm nhận được sự giúp đỡ của mọi người
 

File đính kèm

Bạn tham khảo macro cho câu (1)
1. Nhập dữ liệu theo thứ tự ưu tiên như sau: "Mã_NV" hoặc "Họ Tên" - "Ngày" - "Tăng ca thường" - "Tăng ca chủ nhật" - "Loại phép" - "Tăng ca đêm" - Tăng ca đêm chủ nhật" - "Tăng ca ngày lễ" - "Tăng ca đêm ngày lễ"
PHP:
Private Sub btnInsert_Click()
 Dim Rng As Range, sRng As Range
 Dim Cot As Byte, Dg As Integer

 Set Rng = Range([B5], [B9999].End(xlUp))
 Set sRng = Rng.Find(Me!txtCode.Text, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
    MsgBox "Nothing"
 Else
    Cot = Me!txtDate.Value:                     Dg = sRng.Row
    With Cells(Dg, Cot)
        .Value = Me!txtPhep.Text:               Me!txtPhep.Text = ""
        .Offset(1).Value = Me!txtTct.Value:     Me!txtTct.Value = 0
        .Offset(2).Value = Me!txtTcd.Value:     Me!txtTcd.Value = 0
        .Offset(3).Value = Me!txtTcCN.Value:    Me!txtTcCN.Value = 0
        .Offset(4).Value = Me!txtDCn.Value:     Me!txtDCn.Value = 0
        .Offset(5).Value = Me!txtTcNL.Value:    Me!txtTcNL.Value = 0
        .Offset(6).Value = Me!txtDNl.Value:     Me!txtTcNL.Value = 0
    End With
    MsgBox "Nhâp Xong Ròi!"
 End If
End Sub
 
Upvote 0
Bạn tham khảo macro cho câu (1)

PHP:
Private Sub btnInsert_Click()
 Dim Rng As Range, sRng As Range
 Dim Cot As Byte, Dg As Integer

 Set Rng = Range([B5], [B9999].End(xlUp))
 Set sRng = Rng.Find(Me!txtCode.Text, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
    MsgBox "Nothing"
 Else
    Cot = Me!txtDate.Value:                     Dg = sRng.Row
    With Cells(Dg, Cot)
        .Value = Me!txtPhep.Text:               Me!txtPhep.Text = ""
        .Offset(1).Value = Me!txtTct.Value:     Me!txtTct.Value = 0
        .Offset(2).Value = Me!txtTcd.Value:     Me!txtTcd.Value = 0
        .Offset(3).Value = Me!txtTcCN.Value:    Me!txtTcCN.Value = 0
        .Offset(4).Value = Me!txtDCn.Value:     Me!txtDCn.Value = 0
        .Offset(5).Value = Me!txtTcNL.Value:    Me!txtTcNL.Value = 0
        .Offset(6).Value = Me!txtDNl.Value:     Me!txtTcNL.Value = 0
    End With
    MsgBox "Nhâp Xong Ròi!"
 End If
End Sub
Em thử rồi mà chưa được anh à!
Sau khi cho chạy thử, thì các Cell từ "C6:C12' bị xóa trắng, nghĩa là tên và các nội dung tăng ca của nhân viên đó bị xóa hết
Ngoài ra, các ngày tăng ca khác, em nhập nhưng đều không chạy đúng ý ạ
Anh xem lại giúp em với, đồng thời các phần còn lại nhờ anh và các anh chị khác cùng xem và làm giúp với ạ!
Cảm ơn anh chị
 
Upvote 0
Đúng là còn sai địa chỉ;
Bạn sửa lại vầy & xin lỗi bạn về chuyện này:
PHP:
Cot = 5 + Me!txtDate.Value
 
Upvote 0
Tiếp tục bạn xài các macro sau:
Mã:
Private Sub btnCancel_Click()
 UserForm1.Hide
End Sub
PHP:
Private Sub txtName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 GPE_COM 1
End Sub
PHP:
Private Sub txtCode_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 GPE_COM
End Sub
Mã:
Sub GPE_COM(Optional Col As Integer = 0)
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Dim Rws As Long
 Dim STim As String
 Set Sh = ThisWorkbook.Worksheets("DanhSach_NV")
 Rws = Sh.[B7].CurrentRegion.Rows.Count
 Set Rng = Sh.[B7].Resize(Rws).Offset(, Col)
 If Col Then
    STim = Me!txtName.Text
 Else
    STim = Me!txtCode.Text
 End If
 Set sRng = Rng.Find(STim, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
    MsgBox "Nothing!"
 Else
    If Col Then
        Me!txtCode.Text = sRng.Offset(, -1)
    Else
        Me!txtName.Text = sRng.Offset(, 1).Value
    End If
 End If
End Sub

Cách xài: Nhập các chuỗi vô 1 trong 2 TextBox & nhấn fím {Tab}
 
Upvote 0
Tiếp tục bạn xài các macro sau:
Mã:
Private Sub btnCancel_Click()
 UserForm1.Hide
End Sub
PHP:
Private Sub txtName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 GPE_COM 1
End Sub
PHP:
Private Sub txtCode_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 GPE_COM
End Sub
Mã:
Sub GPE_COM(Optional Col As Integer = 0)
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Dim Rws As Long
 Dim STim As String
 Set Sh = ThisWorkbook.Worksheets("DanhSach_NV")
 Rws = Sh.[B7].CurrentRegion.Rows.Count
 Set Rng = Sh.[B7].Resize(Rws).Offset(, Col)
 If Col Then
    STim = Me!txtName.Text
 Else
    STim = Me!txtCode.Text
 End If
 Set sRng = Rng.Find(STim, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
    MsgBox "Nothing!"
 Else
    If Col Then
        Me!txtCode.Text = sRng.Offset(, -1)
    Else
        Me!txtName.Text = sRng.Offset(, 1).Value
    End If
 End If
End Sub

Cách xài: Nhập các chuỗi vô 1 trong 2 TextBox & nhấn fím {Tab}
Xin lỗi anh, em đọc phần "Nhập các chuỗi vô 1 trong 2 TextBox & nhấn fím {Tab}" chưa hiểu ạ!
và sau khi cho chạy các các code thì báo lỗi như hình đính kèm ạ
Anh xem lại và hướng dẫn cụ thể giúp em với ạ
Cảm ơn anh!
 

File đính kèm

  • LỖI1.png
    LỖI1.png
    266.5 KB · Đọc: 9
Upvote 0
Có fải chạy macro nào đâu kia chứ!
Bạn thực hiện như điều bạn iêu cầu nè:
2. Tại "Mã N_V" khi nhập mã số nhân viên vào thì sẽ thực hiện lệnh tìm kiếm và Ô "Họ Tên" sẽ hiển thị đúng tên Nhân viên trong Sheet "Chamcong" hoặc ngược lại.
Nhập xong chuỗi thích hợp vô 1 trong 2 TextBox đó & bấm fím {Tab} thay vì {ENTER}
mà.
 
Upvote 0
Có fải chạy macro nào đâu kia chứ!
Bạn thực hiện như điều bạn iêu cầu nè:

Nhập xong chuỗi thích hợp vô 1 trong 2 TextBox đó & bấm fím {Tab} thay vì {ENTER}
mà.
Chào anh, em làm được rồi, nhưng khi em nhập dữ liệu và cho nhập vào bảng chấm công, thì Cell "Ngày đi làm (Đánh dấu "X") bị xóa mất dấu "X" như Cell "F6", hoặc khi em chấm nghỉ thì dấu X cũng bị xóa và chỉ còn ký hiệu "V4" (như "G6"), em muốn khi chấm phép và nhập liệu xong thì vẫn còn các ký "X;V4" như ví dụ tại "L6" (Nghĩa là dấu "X" không bị xóa, tiếp đến là dấu ";" rồi đến ký hiệu nghỉ phép ạ)
Anh xem lại giúp em với ạ!

Cảm ơn anh!
 

File đính kèm

  • LOI2.png
    LOI2.png
    246.4 KB · Đọc: 12
Upvote 0
Thứ nhất: Dấu 'X' đánh cho cả tháng là không thực tế;
Nếu bạn thuyết minh rằng như vậy là thực tế nơi cơ quan bạn, thì sẽ có cách thôi.

Nhưng hiện giờ (ở macro đầu) để đạt những gì ở hàng đầu tiên của 1 nhân viên thì nhập hết vô TextBox 'Nghỉ fép' tạm đi.
 
Upvote 0
Thứ nhất: Dấu 'X' đánh cho cả tháng là không thực tế;
Nếu bạn thuyết minh rằng như vậy là thực tế nơi cơ quan bạn, thì sẽ có cách thôi.

Nhưng hiện giờ (ở macro đầu) để đạt những gì ở hàng đầu tiên của 1 nhân viên thì nhập hết vô TextBox 'Nghỉ fép' tạm đi.
Dạ, vì nguyên tắc chấm công của em là: sau khi "UpdateList" sẽ tự động chấm công cho cả tháng cho từng nhân viên, em chọn chỉ chấm tăng ca và nghỉ phép vì tỉ lệ tăng ca và nghỉ phép sẽ ít hơn tỉ lệ người lao động đi làm (tiết kiệm thời gian khi chấm công), thứ Code UpdateList em cũng nhờ các anh chị trên GPE làm giúp, nên đã mặc định như vậy rồi ạ!
Nói chung là anh cố gắng giúp em giữ nguyên nguyên tắc chấm công của em và giúp em giữ lại ký hiệu "X" bằng phương pháp của anh để không ảnh hưởng đến Code UpdateList ạ!
Chân thành cảm ơn anh!
 
Upvote 0
Vậy thì sửa lại câu lệnh của #2
Mã:
       .Value = Me!txtPhep.Text:
thành:
PHP:
       .Value = .Value & "; " &  Me!txtPhep.Text:
 
Upvote 0
Vậy thì sửa lại câu lệnh của #2
Mã:
       .Value = Me!txtPhep.Text:
thành:
PHP:
       .Value = .Value & "; " &  Me!txtPhep.Text:
Anh có cách nào mà nếu khi chỉ chấm tăng ca mà nhân viên đó không nghỉ phép, thì dòng đầu tiên của nhân viên đó chỉ hiển thị "X" mà không phải "X;" không
Chỉ khi nhân viên đó nghỉ phép thì mới xuất hiện "X;loạiphép" (về phần sửa lại câu lệnh đã chạy đúng, lệnh tính công chạy chính xác, em muốn nhân viên khi không nghỉ phép thì Cell chứa dấu "X" không xuất hiện thêm ";" anh giúp với ạ!
Trân trọng
 
Upvote 0
Thì thêm điều kiện cho dòng lệnh vừa sửa đó, như:

If Me!txtPhep.Text<>"" then .Value = .Value & "; " & Me!txtPhep.Text

Bạn thử xem sao?
 
Upvote 0
Úp lại file đi bạn
 
Upvote 0
Nay em lại có một File nhờ anh chị giúp ạ
Nhờ anh chị viết Code UserForm nhập liệu như sau giúp em!
1. Nhập dữ liệu theo thứ tự ưu tiên như sau: "Mã_NV" hoặc "Họ Tên" - "Ngày" - "Tăng ca thường" - "Tăng ca chủ nhật" - "Loại phép" - "Tăng ca đêm" - Tăng ca đêm chủ nhật" - "Tăng ca ngày lễ" - "Tăng ca đêm ngày lễ"
2. Tại "Mã N_V" khi nhập mã số nhân viên vào thì sẽ thực hiện lệnh tìm kiếm và Ô "Họ Tên" sẽ hiển thị đúng tên Nhân viên trong Sheet "Chamcong" hoặc ngược lại.
3. Tại "Ngày" chỉ nhập với định dạng là "DD" không cần nhập tháng và năm, căn cứ ngày tháng hiện tại được đặt ở Sheet "Chamcong"
4. Các ô ghi giờ tăng ca, chỉ nhập số giờ thực tế, sau đó căn cứ vào ô "Ngày" và "Mã_NV" hoặc "Họ Tên" trên UserForm và sau khi Click vào nút lệnh "Nhập-Enter" dữ liệu sẽ ghi vào đúng ngày trong tháng đó và đúng theo tên của nhân viên đó trên Sheet "ChamCong"
5. Ô "Loại phép" gồm có các ký tự như "P" "C" "S" "B" "T" "M" "V" "K" Tại Sheet "Chamcong" sau khi UpdateList" thì các ô từ ngày 1 đến ngày 31 đã mặc định dấu "X" (dấu đi làm) đánh sẵn (Phần UpdateList" em đã nhờ các anh chị trên diễn đàn làm OK rồi ạ), em muốn sau khi nhập vào ô "Loại phép" ở UserForm ví dụ "P8"(Nghỉ phép năm 8 tiếng) hoặc "V4" (Nghỉ việc riêng 4 tiếng) và ô "Ngày" đã nhập số ngày "DD" của tháng đó sau đó nhấn nút lệnh "Nhập_Enter" thì sẽ được ghi vào ô tương ứng của ngày đó và đúng vào dòng tương ứng của nhân viên đó trong Sheet "ChamCong" (Ví dụ tại ô "L6" và "AG6" với dạng là "X;P8 và "X;V4")
*** Em mới chỉ tạo được mẫu USerForm và nút lệnh "Mở Form dữ liệu" theo yêu cầu sử dụng của em, còn lại phần Code, em nhờ các anh chị trên diễn đàn làm giúp ạ. Em không biết diễn tả sao cho xúc tích cụ thể và ngắn gọn, anh chị thông cảm và nhiệt tình giúp đỡ với ạ!

Anh Hoang2013 cũng đã nhiệt tình giúp đỡ (Như các bài trên ạ) nhưng vẫn còn bị hiện tượng sau khi chấm phép và tăng ca , cho nhập liệu thì Dòng đầu tiên của nhân viên (Dòng đánh chứ "X" dấu hiển thị có đi làm lại bị tăng thêm ";" thành "X;"
Anh xem giúp ạ
 

File đính kèm

Upvote 0
Code tạm bợ, chắp vá cho yêu cầu của bạn chạy được cái đã. Bạn test kỹ lại nhé.
Thay toàn bộ code trong UserForm1 cũ với code này:
Mã:
Option Explicit

Sub ClearAllTextBoxes()
    Dim ctrl As Control
    For Each ctrl In Me.Controls
        If TypeName(ctrl) Like "TextBox" Then
            ctrl.Text = ""
        End If
    Next
End Sub

Private Sub btnCancel_Click()
    Me.Hide
End Sub

Private Sub btnInsert_Click()
    Dim Rng As Range, sRng As Range
    Dim Cot As Integer, Dg As Integer, iDay As Integer
    Dim strOld As String

    iDay = Val(txtDate.Text)
    If (iDay <= 0) Or (iDay > 31) Then
        MsgBox "Nhap sai ngay", vbCritical Or vbOKOnly
        txtDate.SetFocus
        Exit Sub
    End If
   
    txtCode.Text = Trim$(txtCode.Text)
    If (Len(txtCode.Text) = 0) Then
        MsgBox "Lam on nhap gium em Ma NV nhen dai ca :)", vbCritical
        txtCode.SetFocus
        Exit Sub
    End If
   
    Set Rng = Range([B5], [B9999].End(xlUp))
    Set sRng = Rng.Find(txtCode.Text, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Ma NV không hop le, to tim eo thay ;)", vbCritical Or vbOKOnly
        Debug.Print "Code có gì something wrong here :')"
        Debug.Assert False
        Exit Sub
    End If
       
    Cot = 5 + iDay
    Dg = sRng.Row
    With Cells(Dg, Cot)
        strOld = Trim$(.Value)
        txtPhep.Text = UCase$(Trim$(txtPhep.Text))
        If Len(txtPhep.Text) > 0 Then
            If Len(strOld) > 0 Then
                .Value = strOld & ";" & txtPhep.Text
            Else
                .Value = txtPhep.Text
            End If
        Else
            .Value = strOld     ' To rim chim may luon
        End If
       
        .Offset(1).Value = txtTct.Value
        .Offset(2).Value = txtTcd.Value
        .Offset(3).Value = txtTcCN.Value
        .Offset(4).Value = txtDCn.Value
        .Offset(5).Value = txtTcNL.Value
        .Offset(6).Value = txtDNl.Value
   
        ClearAllTextBoxes
    End With
       
    MsgBox "DA NHAP!", vbInformation Or vbOKOnly
End Sub

Private Sub txtCode_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txtCode.Text = Trim$(txtCode.Text)
    If Len(txtCode.Text) > 0 Then Cancel = Not GPE_COM
End Sub

Private Sub txtName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txtName.Text = Trim$(txtName.Text)
    If Len(txtName.Text) > 0 Then Cancel = Not GPE_COM(1)
End Sub

Function GPE_COM(Optional Col As Integer = 0) As Boolean
    Dim Sh As Worksheet
    Dim Rng As Range, sRng As Range
    Dim Rws As Long
    Dim STim As String
   
    GPE_COM = False
   
    Set Sh = ThisWorkbook.Worksheets("DanhSach_NV")
    Rws = Sh.[B7].CurrentRegion.Rows.Count
    Set Rng = Sh.[B7].Resize(Rws).Offset(, Col)
   
    STim = IIf(Col = 0, txtCode.Text, txtName.Text)
   
    Set sRng = Rng.Find(STim, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox IIf(Col = 0, "Tim khong thay Ma NV " & STim, "Tim khong thay HoTen NV " & STim), vbCritical Or vbOKOnly
        ClearAllTextBoxes
    Else
        If Col Then
            txtCode.Text = sRng.Offset(, -1).Value
        Else
            txtName.Text = sRng.Offset(, 1).Value
        End If
        GPE_COM = True
    End If
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
Code tạm bợ, chắp vá cho yêu cầu của bạn chạy được cái đã. Bạn test kỹ lại nhé.
Thay toàn bộ code trong UserForm1 cũ với code này:
Mã:
Option Explicit

Sub ClearAllTextBoxes()
    Dim ctrl As Control
    For Each ctrl In Me.Controls
        If TypeName(ctrl) Like "TextBox" Then
            ctrl.Text = ""
        End If
    Next
End Sub

Private Sub btnCancel_Click()
    Me.Hide
End Sub

Private Sub btnInsert_Click()
    Dim Rng As Range, sRng As Range
    Dim Cot As Integer, Dg As Integer, iDay As Integer
    Dim strOld As String

    iDay = Val(txtDate.Text)
    If (iDay <= 0) Or (iDay > 31) Then
        MsgBox "Nhap sai ngay", vbCritical Or vbOKOnly
        Exit Sub
    End If
  
    Set Rng = Range([B5], [B9999].End(xlUp))
    Set sRng = Rng.Find(txtCode.Text, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Ma NV khong hop le, to tim eo thay ;)", vbCritical Or vbOKOnly
        Exit Sub
    End If
      
    Cot = 5 + iDay
    Dg = sRng.Row
    With Cells(Dg, Cot)
        strOld = Trim$(.Value)
        txtPhep.Text = UCase$(Trim$(txtPhep.Text))
        If Len(txtPhep.Text) > 0 Then
            If Len(strOld) > 0 Then
                .Value = strOld & ";" & txtPhep.Text
            Else
                .Value = txtPhep.Text
            End If
        Else
            .Value = strOld     ' To rim chim may luon
        End If
      
        .Offset(1).Value = txtTct.Value
        .Offset(2).Value = txtTcd.Value
        .Offset(3).Value = txtTcCN.Value
        .Offset(4).Value = txtDCn.Value
        .Offset(5).Value = txtTcNL.Value
        .Offset(6).Value = txtDNl.Value
  
        ClearAllTextBoxes
    End With
      
    MsgBox "DA NHAP!", vbInformation Or vbOKOnly
End Sub

Private Sub txtCode_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txtCode.Text = Trim$(txtCode.Text)
    If Len(txtCode.Text) > 0 Then Cancel = Not GPE_COM
End Sub

Private Sub txtName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txtName.Text = Trim$(txtName.Text)
    If Len(txtName.Text) > 0 Then Cancel = Not GPE_COM(1)
End Sub

Function GPE_COM(Optional Col As Integer = 0) As Boolean
    Dim Sh As Worksheet
    Dim Rng As Range, sRng As Range
    Dim Rws As Long
    Dim STim As String
  
    GPE_COM = False
  
    Set Sh = ThisWorkbook.Worksheets("DanhSach_NV")
    Rws = Sh.[B7].CurrentRegion.Rows.Count
    Set Rng = Sh.[B7].Resize(Rws).Offset(, Col)
  
    STim = IIf(Col = 0, txtCode.Text, txtName.Text)
  
    Set sRng = Rng.Find(STim, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox IIf(Col = 0, "Tim khong thay Ma NV " & STim, "Tim khong thay HoTen NV " & STim), vbCritical Or vbOKOnly
        ClearAllTextBoxes
    Else
        If Col Then
            txtCode.Text = sRng.Offset(, -1).Value
        Else
            txtName.Text = sRng.Offset(, 1).Value
        End If
        GPE_COM = True
    End If
End Function
Chào anh, em thử cho chạy được rồi!
Đúng ý em rồi ạ
Nhân tiện cho em hỏi File đính kèm tại bài #21, em nén lại thì chỉ còn 299Kb, nhưng giải nén ra thì lại đến gần 9Mb, mình phải giải quyết sao ạ!, em không hiểu sao từ 9Mb mà nén xuống chỉ còn 299Kb? mà File thì không bao nhiêu dữ liệu nhưng không nén thì đến cả Mb?
Cảm ơn anh!
Ngoài cảm ơn rất nhiều .....thì vẫn là cảm ơn rất nhiều ạk!
Nhân tiện cho em cảm ơn anh "Hoang2013" luôn ạ!
 
Upvote 0
Chào anh, em thử cho chạy được rồi!
Đúng ý em rồi ạ
Nhân tiện cho em hỏi File đính kèm tại bài #21, em nén lại thì chỉ còn 299Kb, nhưng giải nén ra thì lại đến gần 9Mb, mình phải giải quyết sao ạ!, em không hiểu sao từ 9Mb mà nén xuống chỉ còn 299Kb? mà File thì không bao nhiêu dữ liệu nhưng không nén thì đến cả Mb?
Cảm ơn anh!
Ngoài cảm ơn rất nhiều .....thì vẫn là cảm ơn rất nhiều ạk!
Nhân tiện cho em cảm ơn anh "Hoang2013" luôn ạ!
File bạn dữ liệu rác thừa nhiều nên nó độn dung lượng file lên, bạn xóa những ròng rác đi thì file nó sẽ nhẹ đi.
Xử lý tạm bằng cách, qua sheet Chamcong, nhấn phím Ctrl + End, xóa hết mấy dòng thừa đó đi, lưu lại file, thoát và xem kết quả !
 
Upvote 0
............................
Nhân tiện cho em hỏi File đính kèm tại bài #21, em nén lại thì chỉ còn 299Kb, nhưng giải nén ra thì lại đến gần 9Mb, mình phải giải quyết sao ạ!, .........................!
Tôi chỉ xử lý giúp dung lượng File, chứ không đá động gì đến UserForm, code trong sheet ChamCong còn lỗi (nhưng tôi chưa xem lại), bạn nhờ ai giúp thì nhờ tiếp người đó.
 

File đính kèm

Upvote 0
Tôi chỉ xử lý giúp dung lượng File, chứ không đá động gì đến UserForm, code trong sheet ChamCong còn lỗi (nhưng tôi chưa xem lại), bạn nhờ ai giúp thì nhờ tiếp người đó.
Bác chỉ em cách xử lý được không ạ, em còn vài File như thế này dung lượng nặng bất thường, em muốn biết cách để tự xử lý luôn ạ!
Cảm ơn bác
 
Upvote 0
Upvote 0
Upvote 0

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

Back
Top Bottom