Hiển thị thông báo khi vượt quá giá trị cho phép

Liên hệ QC

Nhathuy2012

Thành viên mới
Tham gia
13/8/17
Bài viết
41
Được thích
0
Giới tính
Nam
Như tiêu đề bài viết. Em có vấn đề này nhờ Anh chị giúp đỡ.
Khi mình cấp vật liệu nếu lượng Remain > 0 thì sẽ hiển thị thông báo giữa màn hình làm việc dạng : Line (2) cấp quá số lượng (10)
Anh chị nào giúp em code vba với ạ.
 

File đính kèm

  • Thông báo cấp quá số lượng.xlsx
    9.9 KB · Đọc: 21
Như tiêu đề bài viết. Em có vấn đề này nhờ Anh chị giúp đỡ.
Khi mình cấp vật liệu nếu lượng Remain > 0 thì sẽ hiển thị thông báo giữa màn hình làm việc dạng : Line (2) cấp quá số lượng (10)
Anh chị nào giúp em code vba với ạ.
Bạn thử dùng code sau cho Sheet1
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Intersect(Target, Range("E2", Range("E2").End(xlDown))) Is Nothing Then
        For Each Cll In Range("E2", Range("E2").End(xlDown))
            If Cll.Value > 0 Then
                MsgBox "Line (" & Cll.Offset(, -4).Value & ") cap qua so luong (" & Cll.Value & ")", vbCritical
            End If
        Next Cll
    End If
End Sub
Code sẽ hiện ra thông báo theo yêu cầu, nếu có 2 dòng thì sẽ hiện 2 thông báo bạn nhé!
 
Như tiêu đề bài viết. Em có vấn đề này nhờ Anh chị giúp đỡ.
Khi mình cấp vật liệu nếu lượng Remain > 0 thì sẽ hiển thị thông báo giữa màn hình làm việc dạng : Line (2) cấp quá số lượng (10)
Anh chị nào giúp em code vba với ạ.
Bạn thử với:
PHP:
Sub abc()
    Dim Cll As Range
    For Each Cll In Range("E2:E1000")
       If cll > 0 Then MsgBox " Line (" & cll.Offset(, -4).Value & ") cap qua so luong  " & cll.Value
    Next
End Sub
 
Lần chỉnh sửa cuối:
Bạn muốn nó tự động chạy phải chép đoạn dưới đây vào Sheet1:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E2:E1000")) Is Nothing Then
       abc
    End If
End Sub
Trước lệnh này em có 1 lệnh. Nên em gõ lệnh này vào nó báo lỗi worksheet.change bác ạ. Em đang gà mờ nên k biết sửa
 
Bạn thử dùng code sau cho Sheet1
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Intersect(Target, Range("E2", Range("E2").End(xlDown))) Is Nothing Then
        For Each Cll In Range("E2", Range("E2").End(xlDown))
            If Cll.Value > 0 Then
                MsgBox "Line (" & Cll.Offset(, -4).Value & ") cap qua so luong (" & Cll.Value & ")", vbCritical
            End If
        Next Cll
    End If
End Sub
Code sẽ hiện ra thông báo theo yêu cầu, nếu có 2 dòng thì sẽ hiện 2 thông báo bạn nhé!
Bài của bác vanthinh Ok nhé. Nhưng khi em chạy với lệnh khác nó báo lỗi worksheet-change vì trước đó cũng có 1 câu lệnh bắt đầu là private sub...
Bác chỉ em cách sửa được không ạ
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Application.Union([K3:K100], [O3:O100], [S3:S100])
If Not Intersect(Target, .Cells) Is Nothing Then
If Target.Offset(, 1) = "" Then
Target.Offset(, 1) = Now
Else
If Target.Offset(, 2) = "" Then Target.Offset(, 2) = Now
End If
End If
End With
End Sub
Code trước đây bác
 
Như tiêu đề bài viết. Em có vấn đề này nhờ Anh chị giúp đỡ.
Khi mình cấp vật liệu nếu lượng Remain > 0 thì sẽ hiển thị thông báo giữa màn hình làm việc dạng : Line (2) cấp quá số lượng (10)
Anh chị nào giúp em code vba với ạ.
1. Form thiết kế không hợp lý. Trang kế hoạch phải thiết kế riêng, trang cấp phát riêng và chạy theo hàng dọc. Thêm nữa phải có cột ngày cấp phát, nếu không thì khi có sự cố biết đâu mà kiểm tra. Hơn nữa cấp phát hàng mà không có cột tên mã hàng, màu sắc, ...
2. Đơn hàng lớn sẽ khó kiểm soát nếu cấp phát nhiều lần. Đơn hàng lớn có thể cấp phát trên 10 lần hoặc hơn nữa

Vài lời góp ý cho việc quản lý sản xuất
 
1. Form thiết kế không hợp lý. Trang kế hoạch phải thiết kế riêng, trang cấp phát riêng và chạy theo hàng dọc. Thêm nữa phải có cột ngày cấp phát, nếu không thì khi có sự cố biết đâu mà kiểm tra.
2. Đơn hàng lớn sẽ khó kiểm soát nếu cấp phát nhiều lần. Đơn hàng lớn có thể cấp phát trên 10 lần hoặc hơn nữa

Vài lời góp ý cho việc quản lý sản xuất
Em làm form cấp theo ngày a ạ.
Em làm sheet data riêng. KH riêng. Và form ví dụ kia là chỗ nv thực hiện cấp ạ
Em lấy kia để ví dụ là cấp quá thì nó sẽ hiển thị để nv biết .
Cảm ơn bác đã góp ý
 
Web KT
Back
Top Bottom