trợ giúp đoạn code tạo mã (1 người xem)

Liên hệ QC

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

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
142
Được thích
12
Chào các bạn trong diễn đàn, mình có vấn đề này nhờ các bạn giúp mình với!

mình muốn khi nhấn nút comman thì cột YM sẽ tự động tạo mã theo các điều kiện sau.
tạo mã thì sort theo cột mã vật tư và cột code
thì kiểm tra cột PO rỗng thì không làm gì hết
nếu thỏa mãn 2 điều kiện cột PO không rỗng và cột YM= rỗng thì lấy ô B3 nối với max của 4 ký tự bên phải của cột YM cộng với 1.
củ thể trong file đínhkiemf mình có minh họa!

chân thành cảm ơn các bạn!
 

File đính kèm

Chào các bạn trong diễn đàn, mình có vấn đề này nhờ các bạn giúp mình với!

mình muốn khi nhấn nút comman thì cột YM sẽ tự động tạo mã theo các điều kiện sau.
tạo mã thì sort theo cột mã vật tư và cột code
thì kiểm tra cột PO rỗng thì không làm gì hết
nếu thỏa mãn 2 điều kiện cột PO không rỗng và cột YM= rỗng thì lấy ô B3 nối với max của 4 ký tự bên phải của cột YM cộng với 1.
củ thể trong file đínhkiemf mình có minh họa!

chân thành cảm ơn các bạn!
Chưa hiểu lắm, thử sub này xem sao:
PHP:
Public Sub GPE()
Dim Rng As Range, Cll As Range, K As Long, Str As String
Str = [B3].Value
Set Rng = Range([B8], [B65000].End(xlUp))
For Each Cll In Rng
    If Cll <> vbNullString Then
        K = K + 1
        If Cll.Offset(, -1) = vbNullString Then
            Cll.Offset(, -1).Value = Str & Format(K, "0000")
        End If
    End If
Next
Set Rng = Nothing
End Sub
 
Upvote 0
Đúng ý mình rồi đó bạn, nếu mình muốn sort côt codeID và cột code trước khi tạo mã thì sao bạn?
 
Upvote 0
Đúng ý mình rồi đó bạn, nếu mình muốn sort côt codeID và cột code trước khi tạo mã thì sao bạn?
Thay bằng Sub này thử coi:
PHP:
Public Sub GPE()
Dim Rng As Range, Cll As Range, K As Long, Str As String
Str = [B3].Value
Set Rng = Range([B8], [B65000].End(xlUp))
Rng.Resize(, 3).Sort Key1:=[C8], Key2:=[D8]
For Each Cll In Rng
    If Cll <> vbNullString Then
        K = K + 1
        Cll.Offset(, -1).Value = Str & Format(K, "0000")
    End If
Next
Set Rng = Nothing
End Sub
 
Upvote 0
Bạn ơi cái này có lổi là khi sort xong nó tạo mã thì nó tạo một số mã trùng nhau như vậy đó
 
Upvote 0
Bạn ơi cái này có lổi là khi sort xong nó tạo mã thì nó tạo một số mã trùng nhau như vậy đó
Khi bạn gởi bài thì phải bấm nút <Trả Lời Với Trích Dẫn> để người khác hiểu bạn muốn trao đổi với bài nào trong Topic.
Bạn viết "khơi khơi" vậy ai biết bạn đang nói đến bài nào, của ai, và "trùng nhau như vậy đó" là sao? Hổng có gì để thấy "như vậy đó" ra sao mà nói chuyện tiếp với bạn.
Tôi "Nghỉ chơi" với "topic này luôn nghe.
 
Upvote 0
Cũng là như vậy, nhưng mình cần thay đổi chút xíu, DV như CommandButton ở Sheet2 và nạp vào Sheet1 thì thêm như thế nào hả bạn Ba Tê?
 

File đính kèm

Upvote 0
Da7y là macro gắn với nút lệnh tại trang 'Sheet2' của bạn

[Thongbao]Cũng là như vậy, nhưng mình cần thay đổi chút xíu, DV như CommandButton ở Sheet2 và nạp vào Sheet1 thì thêm như thế nào hả bạn . . . ?[/ThongBao]

PHP:
Private Sub CommandButton1_Click()
 Dim Rng As Range, Cls As Range, Sh As Worksheet
 Dim K As Long, Str As String
 Set Sh = ThisWorkbook.Worksheets("Sheet1")
 Str = Sh.[B3].Value
 Set Rng = Sh.Range(Sh.[B8], Sh.[B65000].End(xlUp))
 For Each Cls In Rng
    If Cls <> vbNullString Then
        K = K + 1
        If Cls.Offset(, -1) = vbNullString Then
            Cls.Offset(, -1).Value = Str & Format(K, "000")
        End If
    End If
 Next Cls
 Sh.Select:                     Set Sh = Nothing
End Sub
 
Upvote 0

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

Back
Top Bottom