Tự động cập nhật số lượng tròn thùng

Liên hệ QC

phammaihuong90

Thành viên mới
Tham gia
2/12/10
Bài viết
23
Được thích
5
Chào anh chị em. Lần đầu lập topic có gì sai sót bỏ qua giúp em.
Em có 1 file dữ liệu mẫu như đính kèm. Có lập trình sự kiện hoặc macro nào giúp cho mình gõ số nếu không tròn đóng gói thì ô đó tự roundup lên cho tròn thùng không ạ.
Ví dụ: Đóng gói là 20, mình gõ 30 sẽ tự làm tròn lên 40
Em cảm ơn nhiều ah.
 

File đính kèm

Chào anh chị em. Lần đầu lập topic có gì sai sót bỏ qua giúp em.
Em có 1 file dữ liệu mẫu như đính kèm. Có lập trình sự kiện hoặc macro nào giúp cho mình gõ số nếu không tròn đóng gói thì ô đó tự roundup lên cho tròn thùng không ạ.
Ví dụ: Đóng gói là 20, mình gõ 30 sẽ tự làm tròn lên 40
Em cảm ơn nhiều ah.
Dán code sau vào module sheet1 (code chưa xử lý vấn đề copy nhiều ô dán cùng lúc và nhập liệu số âm)
Mã:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range, lCol&, lRow&, valDG#
    Const sCol& = 1 ' Cot bat dau la A
    Const sRow& = 1 ' Dong bat dau la 1
    lCol = Cells(sRow, Columns.Count).End(xlToLeft).Column
    lRow = Cells(Rows.Count, sCol).End(xlUp).Row
    If lCol > sCol + 1 And lRow > sRow Then
        Set Rng = Range(Cells(sRow + 1, sCol + 2), Cells(lRow, lCol))
        If Not Intersect(Rng, Target) Is Nothing Then
            valDG = Cells(Target.Row, sCol + 1).Value
            If valDG <> 0 Then
                If Target.Value Mod valDG <> 0 Then
                    Target.Value = valDG * ((Target.Value \ valDG) + 1)
                End If
            End If
        End If
    End If
End Sub
 
Lần chỉnh sửa cuối:
Chà! Thấy bài đăng box hàm & công thức. Đang nghĩ công thức thì người ta sẽ làm thế nào thì có ngay bài VBA thay cho công thức, haha...
Thế bài này công thức không làm được hả @Nhattanktnn ?
 
Chà! Thấy bài đăng box hàm & công thức. Đang nghĩ công thức thì người ta sẽ làm thế nào thì có ngay bài VBA thay cho công thức, haha...
Thế bài này công thức không làm được hả @Nhattanktnn ?
Có thể họ đăng nhầm box đó bác.
Có lập trình sự kiện hoặc macro nào...
Còn công thức là biết ngay không thể làm được rồi, chả có cái công thức nào mà gõ ngay vào chính ô điền công thức cả
 
Dán code sau vào module sheet1 (code chưa xử lý vấn đề copy nhiều ô dán cùng lúc và nhập liệu số âm)
Mã:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range, lCol&, lRow&, valDG#
    Const sCol& = 1 ' Cot bat dau la A
    Const sRow& = 1 ' Dong bat dau la 1
    lCol = Cells(sRow, Columns.Count).End(xlToLeft).Column
    lRow = Cells(Rows.Count, sCol).End(xlUp).Row
    If lCol > sCol + 1 And lRow > sRow Then
        Set Rng = Range(Cells(sRow + 1, sCol + 2), Cells(lRow, lCol))
        If Not Intersect(Rng, Target) Is Nothing Then
            valDG = Cells(Target.Row, sCol + 1).Value
            If Target.Value Mod valDG <> 0 Then
                Target.Value = valDG * ((Target.Value \ valDG) + 1)
            End If
        End If
    End If
End Sub
Cảm ơn bác đã giúp đỡ. Code nhìn gọn mà đã giải quyết được vấn đề của em
Còn 1 lỗi nữa nhờ bác khắc phục nốt giúp. Ví dụ em xóa hết dữ liệu đi nó báo lỗi code như ảnh
Lỗi ở dòng này bác ạ " If Target.Value Mod valDG <> 0 Then"
Em dùng On Error Resume Next được ko ạ.
ERR.PNG
Bài đã được tự động gộp:

Chà! Thấy bài đăng box hàm & công thức. Đang nghĩ công thức thì người ta sẽ làm thế nào thì có ngay bài VBA thay cho công thức, haha...
Thế bài này công thức không làm được hả @Nhattanktnn ?
Tks bác nhắc nhở em nhầm box thật ạ hic
 
Vâng cảm ơn bác nhắc nhở em đã thử rồi nhưng trình gà nên muốn biết thêm cho code tối ưu ạ
Ở đây có ai dám nhận là code tối ưu đâu bạn, mình làm gọn rồi nhưng bạn khác có cách gọn hơn, tự nhiên nhận tối ưu thành ra ...
 
E paste lại rồi vẫn báo lỗi như trên ạ
Thực ra làm kiểu thời vụ thì mình cũng không lường hết vấn đề được đâu. Nhưng cái lỗi gặp phải khi xóa dữ liệu như bạn nói thì sau khi sửa code đâu còn phát sinh nữa? mình đã thử mới gửi cho bạn đấy
Hỏi thêm, có bao giờ bạn copy vùng rồi dán vào không (Tức copy nhiều ô), nếu không thì code không cần sửa
 
Thực ra làm kiểu thời vụ thì mình cũng không lường hết vấn đề được đâu. Nhưng cái lỗi gặp phải khi xóa dữ liệu như bạn nói thì sau khi sửa code đâu còn phát sinh nữa? mình đã thử mới gửi cho bạn đấy
Hỏi thêm, có bao giờ bạn copy vùng rồi dán vào không (Tức copy nhiều ô), nếu không thì code không cần sửa
Hiện tại thì em chỉ cần 1 ô 1 thì code ok, trong tương lai có thể phải làm cả copy nhiều ô vì em làm chia kế hoạch các mã hàng.
Code hiện tại là ok rồi cảm ơn bác nhiều
 
Ở đây có ai dám nhận là code tối ưu đâu bạn, mình làm gọn rồi nhưng bạn khác có cách gọn hơn, tự nhiên nhận tối ưu thành ra ...
Thì cứ nhận đại là "đã tối ưu rồi". Chết thằng [bồi] Tây nào mà sợ.
Bên xin code đâu có phải viết code nên cứ việc đòi tối ưu. Bên viết code đâu có cần ai chấm điểm, cứ việc vung văng code là gì chả được.
 
Thì cứ nhận đại là "đã tối ưu rồi". Chết thằng [bồi] Tây nào mà sợ.
Bên xin code đâu có phải viết code nên cứ việc đòi tối ưu. Bên viết code đâu có cần ai chấm điểm, cứ việc vung văng code là gì chả được.
Tối ưu trong 1 tối với GPE
Không hiểu nhiều người thích dùng từ tối ưu cho từ việc đơn giản đến phức tạp, bao giờ mới tối ưu và bao giờ thì hết tối ưu (?)
 
Tối ưu trong 1 tối với GPE
Không hiểu nhiều người thích dùng từ tối ưu cho từ việc đơn giản đến phức tạp, bao giờ mới tối ưu và bao giờ thì hết tối ưu (?)
Nhiều người còn dùng cụm từ "tối ưu hơn". Đã tối (cao nhất) rồi còn muốn cao hơn nữa. :p
 
Web KT

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

Back
Top Bottom