Giúp em code gọi Form trong trường hợp dò tìm không thấy dữ liệu (1 người xem)

Liên hệ QC

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

quoc nhat

Thành viên tiêu biểu
Tham gia
8/3/12
Bài viết
567
Được thích
43
Nghề nghiệp
cán bộ ngành y tế
Em có bài muốn hỏi các anh chị mong các anh chị giúp em với
Chi tiết em có gửi kèm theo File
 

File đính kèm

Không đây chỉ là ví dụ thôi. Cái em cần là code để áp dụng vào file khác anh ạ
anh giúp em nhé
 
Upvote 0
Upvote 0
Thử code sau nhé:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If IsError([c6]) = True Then UserForm1.Show
End Sub
anh ơi cái Code trên nếu ghép vào Code này thì làm như thế nào. Em loay hoay mãi mà không được:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A32:A36,F32:F36]) Is Nothing Then Exit Sub
On Error Resume Next
Dim i As Long
With Sheet5 'The Kho'
i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
If Cells(Target.Row, 6).Value > .Cells(i, 11).Value Then
MsgBoxUni UNC("HiÖn t¹i trong kho cßn l¹i ") & .Cells(i, 11) & " " & .Cells(i, 4), 48, "Thông báo"
Cells(Target.Row, 6) = .Cells(i, 11)

End If
End With
End Sub
 
Upvote 0
anh ơi cái Code trên nếu ghép vào Code này thì làm như thế nào. Em loay hoay mãi mà không được:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A32:A36,F32:F36]) Is Nothing Then Exit Sub
On Error Resume Next
Dim i As Long
With Sheet5 'The Kho'
i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
If Cells(Target.Row, 6).Value > .Cells(i, 11).Value Then
MsgBoxUni UNC("HiÖn t¹i trong kho cßn l¹i ") & .Cells(i, 11) & " " & .Cells(i, 4), 48, "Thông báo"
Cells(Target.Row, 6) = .Cells(i, 11)

End If
End With
End Sub
Theo tôi hiểu thì bạn muốn hiện thông báo khi không tìm thấy dữ liệu
Code của bạn thể hiện việc tìm thấy qua biến
Mã:
i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
Vậy nếu không Match được thì sẽ lỗi công thức của i => bạn chỉ cần thay đoạn [C6] của bài #4 bằng công thức tương ứng của i là được
 
Upvote 0
Theo tôi hiểu thì bạn muốn hiện thông báo khi không tìm thấy dữ liệu
Code của bạn thể hiện việc tìm thấy qua biến
Mã:
i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
Vậy nếu không Match được thì sẽ lỗi công thức của i => bạn chỉ cần thay đoạn [C6] của bài #4 bằng công thức tương ứng của i là được
Hai cái này không liên quan với nhau gì cả anh ạ.
Chẳng qua tên Sub nó giống nhau mà cho vào cùng 1 sheet thì nó bảo lổi . Em đã thử đổi tên Sub rồi mà không được. Anh chịu khó giúp em với
Em cảm ơn nhiều
 
Upvote 0
Hai cái này không liên quan với nhau gì cả anh ạ.
Chẳng qua tên Sub nó giống nhau mà cho vào cùng 1 sheet thì nó bảo lổi . Em đã thử đổi tên Sub rồi mà không được. Anh chịu khó giúp em với
Em cảm ơn nhiều
Mình đã hướng dẫn ở bài #7. Nếu bạn để ý kỹ 1 chút sẽ rút ra vấn đề. Đây là Code vận dụng từ bài #4 nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [A32:A36,F32:F36]) Is Nothing Then Exit Sub
    On Error Resume Next
    Dim i As Long
    With Sheet5    'The Kho'
        i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
[B]        If IsError(WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)) = True Then[/B]
[B]            frm.Show[/B]
[B]        Else[/B]
            If Cells(Target.Row, 6).Value > .Cells(i, 11).Value Then
                MsgBoxUni UNC("HiÖn t¹i trong kho cßn l¹i ") & .Cells(i, 11) & " " & .Cells(i, 4), 48, "Thông báo"
                Cells(Target.Row, 6) = .Cells(i, 11)


            End If
[B]        End If[/B]
    End With
End Sub
 
Upvote 0
Mình đã hướng dẫn ở bài #7. Nếu bạn để ý kỹ 1 chút sẽ rút ra vấn đề. Đây là Code vận dụng từ bài #4 nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [A32:A36,F32:F36]) Is Nothing Then Exit Sub
    On Error Resume Next
    Dim i As Long
    With Sheet5    'The Kho'
        i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
[B]        If IsError(WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)) = True Then[/B]
[B]            frm.Show[/B]
[B]        Else[/B]
            If Cells(Target.Row, 6).Value > .Cells(i, 11).Value Then
                MsgBoxUni UNC("HiÖn t¹i trong kho cßn l¹i ") & .Cells(i, 11) & " " & .Cells(i, 4), 48, "Thông báo"
                Cells(Target.Row, 6) = .Cells(i, 11)


            End If
[B]        End If[/B]
    End With
End Sub
em xin lỗi vì đã giải thích không rõ ràng.
Thôi em gửi File thực lên để các anh chị giúp đỡ
Đây là dự định thôi.
nếu gọi form lên được thì cái form đó em sẽ dùng để nhập liệu vào sheet Data. Các anh chị giúp em với. Mục đích của em, em có đính kèm trong sheet phieuxuất in
 

File đính kèm

Upvote 0
em xin lỗi vì đã giải thích không rõ ràng.
Thôi em gửi File thực lên để các anh chị giúp đỡ
Đây là dự định thôi.
nếu gọi form lên được thì cái form đó em sẽ dùng để nhập liệu vào sheet Data. Các anh chị giúp em với. Mục đích của em, em có đính kèm trong sheet phieuxuất in

Thử them vào trên đầu xem, bạn test thử nhé


Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    [COLOR=#ff0000][B]If IsError([c147]) = True Then UserForm1.Show
[/B][/COLOR]    If Intersect(Target, [A174:A178,D174:D178]) Is Nothing Then Exit Sub
    
    On Error Resume Next
    Dim i As Long
    With Sheet4 'The Kho'
    
        i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
        If Cells(Target.Row, 4).Value > .Cells(i, 11).Value Then
            MsgBox ("Chi con ") & .Cells(i, 11)
            Cells(Target.Row, 4) = .Cells(i, 11)
        End If
    End With
End Sub
 
Upvote 0
Thử them vào trên đầu xem, bạn test thử nhé


Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    [COLOR=#ff0000][B]If IsError([c147]) = True Then UserForm1.Show
[/B][/COLOR]    If Intersect(Target, [A174:A178,D174:D178]) Is Nothing Then Exit Sub
    
    On Error Resume Next
    Dim i As Long
    With Sheet4 'The Kho'
    
        i = WorksheetFunction.Match(Cells(Target.Row, 1), .[b:b], 0)
        If Cells(Target.Row, 4).Value > .Cells(i, 11).Value Then
            MsgBox ("Chi con ") & .Cells(i, 11)
            Cells(Target.Row, 4) = .Cells(i, 11)
        End If
    End With
End Sub
Trước hết cảm ơn anh đã giúp đỡ.
Form gọi lên được nhưng lại lỗi mấy phần phía dưới Ví dụ như :C170, G170 nếu nhập liệu vào các cell này Form cũng hiện lên.
Nhờ anh xem giúp em với
Em cảm ơn
 
Lần chỉnh sửa cuối:
Upvote 0
Form gọi lên được nhưng lại lỗi mấy phần phía dưới Ví dụ như :C170, G170 nếu nhập liệu vào các cell này Form cũng hiện lên.
Nhờ anh xem giúp em với
Em cảm ơn
Thì đúng quá rồi, điều kiện lỗi là tại C147, với sự kiện Worksheet_Change
Thế nên nếu C147 mà đang tại giá trị lỗi, bạn có thay đổi bất kỳ trong sheet thì code sẽ hoạt động thôi
=> Bạn phải nêu ra điểm mấu chốt của của vấn đề, chứ hỏi dần dần rồi áp dụng như thế này khó đạt yêu cầu lắm
Thân!
 
Upvote 0
Thì đúng quá rồi, điều kiện lỗi là tại C147, với sự kiện Worksheet_Change
Thế nên nếu C147 mà đang tại giá trị lỗi, bạn có thay đổi bất kỳ trong sheet thì code sẽ hoạt động thôi
=> Bạn phải nêu ra điểm mấu chốt của của vấn đề, chứ hỏi dần dần rồi áp dụng như thế này khó đạt yêu cầu lắm
Thân!
dạ cảm ơn anh. Em cũng vừa tìm ra vấn đề như anh nói. Vì vậy h][ngs khắc phục là không để Cell C147 bị lỗi mới tiếp tục làm các phần khác
Cảm ơn anh 1 lần nữa
 
Upvote 0

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

Back
Top Bottom