Lọc lấy các chữ sau dấu "/"

Liên hệ QC

Duong gia

Thành viên thường trực
Tham gia
15/1/07
Bài viết
352
Được thích
118
Chào các bạn, mình muốn tạo 1 button dùng Code lọc lấy chữ "thùng hay xô " sau dấu "/" thì làm sao, mong các bạn chỉ giúp. VD mặt hàng (quy cách) TÔM 1080 - ( 200g x 40 gói/thùng)----> lấy thùng CÁ 2010 - ( 200g x 40 bao/xô)----> lấy
 
Lần chỉnh sửa cuối:
Bạn có tải xem bài #14 của Bạn TrungChinhs không?
Xóa nội dung trong cột C rồi Bấm vào cái vòng tròn bên cạnh để xem kết quả code đã làm.
Xem lại file này đi
Code ở bài #14 không thiết lập cho tùy chọn Lookat khi sử dùng Replace nên Excel sẽ lấy theo lần tìm kiếm trước đó. Vì vậy, nếu trước đó Excel đã thực hiện Find hay Replace với tùy chọn Match entire cell contents thì code ở bài #14 không còn đúng nữa.

Có thể thử nghiệm bằng cách sau:
Nhấn Ctrl + F để bắt đầu tìm kiếm
Click vào nút Options >> để có thêm các tùy chọn
Đánh dấu vào mục Match entire cell contents
Click vào Findnext
Click Close

Bây giờ chạy lại code thì kết quả không còn đúng nữa.
 
Upvote 0
Mình tính dùng hàm của các bạn cho để thay thế cho đơn vị "T" (chỗ nào có chữ T bên dưới) ActiveCell.FormulaR1C1 = "=IF(AND(MOD(RC7,VLookup(RC6, TEN_HH, 3,0))>0,VLookup(RC6, TEN_HH, 3,0)>1,VLookup(RC6, TEN_HH, 3,0)1),""Xuaát ""&INT(RC7/VLookup(RC6, TEN_HH, 3,0))&""T ""&VLookup(RC6, TEN_HH, 2,0)&"" / ""&VLookup(RC12, TK_SC, 2,0),IF(OR(VLookup(RC6, TEN_HH, 3,0)=1,VLookup(RC6, TEN_HH, 3,0)>RC7),""Xuaát ""&RC7&"" ""&VLookup(RC6, TEN_HH, 4,0)&"" ""&VLookup(RC6, TEN_HH, 2, 0)&"" / ""&VLookup(RC12, TK_SC, 2,0))))" Giờ thì chịu thua, không biết làm sao để lòng ghép vào được. Nếu bác nào phát triển một hàm nào đó cho phù hợp thì tốt biết mấy. Cám ơn cả nhà
 
Lần chỉnh sửa cuối:
Upvote 0
Mình tính dùng hàm của các bạn cho để thay thế cho đơn vị "T" (chỗ nào có chữ T bên dưới)
ActiveCell.FormulaR1C1 = "=IF(AND(MOD(RC7,VLookup(RC6, TEN_HH, 3,0))>0,VLookup(RC6, TEN_HH, 3,0)>1,VLookup(RC6, TEN_HH, 3,0)<RC7),""Xuaát ""&INT(RC7/VLookup(RC6, TEN_HH, 3,0))&""T ""&ROUND((((RC7/VLookup(RC6, TEN_HH, 3, 0)-INT(RC7/VLookup(RC6, TEN_HH, 3,0)))*VLookup(RC6, TEN_HH, 3,0))),0)&"" ""&VLookup(RC6, TEN_HH, 4,0)&"" ""&VLookup(RC6, TEN_HH, 2,0)&"" / ""&VLookup(RC12, TK_SC, 2,0),IF(AND(MOD(RC7,VLookup(RC6, TEN_HH, 3,0))=0,VLookup(RC6, TEN_HH, 3,0)>1),""Xuaát ""&INT(RC7/VLookup(RC6, TEN_HH, 3,0))&""T ""&VLookup(RC6, TEN_HH, 2,0)&"" / ""&VLookup(RC12, TK_SC, 2,0),IF(OR(VLookup(RC6, TEN_HH, 3,0)=1,VLookup(RC6, TEN_HH, 3,0)>RC7),""Xuaát ""&RC7&"" ""&VLookup(RC6, TEN_HH, 4,0)&"" ""&VLookup(RC6, TEN_HH, 2, 0)&"" / ""&VLookup(RC12, TK_SC, 2,0))))"
Giờ thì chịu thua, không biết làm sao để lòng ghép vào được. Nếu bác nào phát triển một hàm nào đó cho phù hợp thì tốt biết mấy. Cám ơn cả nhà
Ít nhất Bạn cũng đưa tập tin và những yêu cầu cụ thể, kết quả mong muốn như thế nào (nhập thủ công vào), từ đó mọi người mới hiểu Bạn muốn gì mà giúp chớ nhìn cái công thức dài ngoằn lôn xộn, cái Name TEN_HH hổng biết nó ở đâu... làm sao hiểu được.
 
Upvote 0
Ít nhất Bạn cũng đưa tập tin và những yêu cầu cụ thể, kết quả mong muốn như thế nào (nhập thủ công vào), từ đó mọi người mới hiểu Bạn muốn gì mà giúp chớ nhìn cái công thức dài ngoằn lôn xộn, cái Name TEN_HH hổng biết nó ở đâu... làm sao hiểu được.
Đây Ba tê, mở file đính kèm. Mình muốn bạn lòng ghép hàm nào đó thay cho chữ "T" trong chuỗi code của mình. Cám ơn các bạn
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mọi người chạy đâu mất rồi, không ai giúp mình sao?
 
Lần chỉnh sửa cuối:
Upvote 0
Đây Ba tê, mở file đính kèm. Mình muốn bạn lòng ghép hàm nào đó thay cho chữ "T" trong chuỗi code của mình. Cám ơn các bạn
Công thức dài quá, bạn tham khảo chờ các cao thủ
Với công thức dài như thế này có vẽ dùng hàm tự tạo hay hơn??
 

File đính kèm

Upvote 0
Các bạn cố gắng rút gọn hàm của mình một tí, nó dài quá. Mình muốn click vào Button là ra kết quả. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Chắc là phức tạp quá, không ai giải quyết được. Thôi cám ơn các bác.
 
Lần chỉnh sửa cuối:
Upvote 0
Chắc là phức tạp quá, không ai giải quyết được. Thôi cám ơn các bác.
Ái chà chà, cái bạn này sử dụng chiêu "khích tướng" đây
Không phải là phức tạp, nhưng đã "chơi" VBA thì VBA hết chứ sao lại chen một "thằng" công thức dài như con trăn Nam Mỹ, nhìn tá hỏa tam tinh, tối tăm mặt mũi thì giúp bạn "thế quái" nào được
Bi giờ nói lại: trong sheet "PHATSINH", bạn nhập dữ liệu các cột_ trừ cột D _ hình như cột J bạn đã giải quyết xong, khi nhập xong bạn "phang" cái nút một phát nó cho ra kết quả như trong ví dụ ??????
Nếu đúng như zị, bạn thử code này xem, cái nào chưa đúng ý thì nói tiếp ( không chơi khích tướng) vì mình cũng chưa hiểu rõ lắm (do nhìn cái công thức của bạn tới giờ cũng chưa hoàn hồn. Híc)
Mã:
Public Sub ToTiTe()
    Dim Vung, VungDo, DonVi, SoLuong, SoDu, Ws, I, J, Tim, d, Ma, Khach
    Set Ws = Sheets("NXTHH"): Set d = CreateObject("scripting.dictionary")
    Set Vung = Range([f12], [f1000].End(xlUp)): Set Ma = Sheets("BCD").Range(Sheets("BCD").[b10], Sheets("BCD").[b1000].End(xlUp))
    Set VungDo = Ws.Range(Ws.[a9], Ws.[a1000].End(xlUp))
        For I = 1 To Ma.Rows.Count
            If Not d.exists(Ma(I).Value) Then d.Add Ma(I).Value, Ma(I).Offset(, 1)
        Next I
            For I = 1 To Vung.Rows.Count
                For J = 1 To VungDo.Rows.Count
                    If VungDo(J) = Vung(I) Then
                        Tim = VungDo(J).Offset(, 1)
                        Khach = d.Item(Vung(I).Offset(, 6).Value)
                            If Vung(I).Offset(, 1) >= VungDo(J).Offset(, 2) Then
                                DonVi = Right(Tim, Len(Tim) - InStr(1, Tim, "/"))
                                DonVi = Left(DonVi, Len(DonVi) - 1)
                                SoLuong = Int(Vung(I).Offset(, 1) / VungDo(J).Offset(, 2))
                                SoDu = Vung(I).Offset(, 1) Mod VungDo(J).Offset(, 2)
                                    If SoDu > 0 Then
                                        Vung(I).Offset(, -2) = "Xuat " & SoLuong & " " & DonVi & " " & SoDu & " " & VungDo(J).Offset(, 3) & " " & VungDo(J).Offset(, 1) & "/ " & Khach
                                        Exit For
                                    Else
                                        Vung(I).Offset(, -2) = "Xuat " & SoLuong & " " & DonVi & " " & VungDo(J).Offset(, 1) & "/ " & Khach
                                        Exit For
                                    End If
                            Else
                                Vung(I).Offset(, -2) = "Xuat " & Vung(I).Offset(, 1) & " " & VungDo(J).Offset(, 3) & " " & VungDo(J).Offset(, 1) & "/ " & Khach
                                Exit For
                            End If
                End If
            Next J
        Next I
End Sub
Thân
 

File đính kèm

Upvote 0
Ái chà chà, cái bạn này sử dụng chiêu "khích tướng" đây Không phải là phức tạp, nhưng đã "chơi" VBA thì VBA hết chứ sao lại chen một "thằng" công thức dài như con trăn Nam Mỹ, nhìn tá hỏa tam tinh, tối tăm mặt mũi thì giúp bạn "thế quái" nào được Bi giờ nói lại: trong sheet "PHATSINH", bạn nhập dữ liệu các cột_ trừ cột D _ hình như cột J bạn đã giải quyết xong, khi nhập xong bạn "phang" cái nút một phát nó cho ra kết quả như trong ví dụ ?????? Nếu đúng như zị, bạn thử code này xem, cái nào chưa đúng ý thì nói tiếp ( không chơi khích tướng) vì mình cũng chưa hiểu rõ lắm (do nhìn cái công thức của bạn tới giờ cũng chưa hoàn hồn. Híc)
Mã:
Public Sub ToTiTe()     Dim Vung, VungDo, DonVi, SoLuong, SoDu, Ws, I, J, Tim, d, Ma, Khach     Set Ws = Sheets("NXTHH"): Set d = CreateObject("scripting.dictionary")     Set Vung = Range([f12], [f1000].End(xlUp)): Set Ma = Sheets("BCD").Range(Sheets("BCD").[b10], Sheets("BCD").[b1000].End(xlUp))     Set VungDo = Ws.Range(Ws.[a9], Ws.[a1000].End(xlUp))         For I = 1 To Ma.Rows.Count             If Not d.exists(Ma(I).Value) Then d.Add Ma(I).Value, Ma(I).Offset(, 1)         Next I             For I = 1 To Vung.Rows.Count                 For J = 1 To VungDo.Rows.Count                     If VungDo(J) = Vung(I) Then                         Tim = VungDo(J).Offset(, 1)                         Khach = d.Item(Vung(I).Offset(, 6).Value)                             If Vung(I).Offset(, 1) >= VungDo(J).Offset(, 2) Then                                 DonVi = Right(Tim, Len(Tim) - InStr(1, Tim, "/"))                                 DonVi = Left(DonVi, Len(DonVi) - 1)                                 SoLuong = Int(Vung(I).Offset(, 1) / VungDo(J).Offset(, 2))                                 SoDu = Vung(I).Offset(, 1) Mod VungDo(J).Offset(, 2)                                     If SoDu > 0 Then                                         Vung(I).Offset(, -2) = "Xuat " & SoLuong & " " & DonVi & " " & SoDu & " " & VungDo(J).Offset(, 3) & " " & VungDo(J).Offset(, 1) & "/ " & Khach                                         Exit For                                     Else                                         Vung(I).Offset(, -2) = "Xuat " & SoLuong & " " & DonVi & " " & VungDo(J).Offset(, 1) & "/ " & Khach                                         Exit For                                     End If                             Else                                 Vung(I).Offset(, -2) = "Xuat " & Vung(I).Offset(, 1) & " " & VungDo(J).Offset(, 3) & " " & VungDo(J).Offset(, 1) & "/ " & Khach                                 Exit For                             End If                 End If             Next J         Next I End Sub
Thân
Cám ơn bạn đã giúp đỡ. Xin lỗi do chờ lâu quá nóng ruột, nên .... Code của bạn hay nhưng chỉ dùng riêng cho xuất kho thôi chứ không dùng cho những cái khác như nhập kho hàng mua, hàng trả lại, xuất nguyên liệu sx và mấy cái khác nữa .vv. Do trình độ VBA của mình có hạn, mình lượm lặc từ GPE chế biến thành CT, nó hơi dài, dùng rất ổn, nay muốn cải tiến cần 1 hàm nào để lọc lấy đơn vị thùng, xô .. nằm sau dấu "/" thay cho chữ "T" có trong công thức của mình. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bạn đã giúp đỡ. Xin lỗi do chờ lâu quá nóng ruột, nên .... Code của bạn hay nhưng chỉ dùng riêng cho xuất kho thôi chứ không dùng cho những cái khác như nhập kho hàng mua, hàng trả lại, xuất nguyên liệu sx và mấy cái khác nữa .vv. Do trình độ VBA của mình có hạn, mình lượm lặc từ GPE chế biến thành CT, nó hơi dài, dùng rất ổn, nay muốn cải tiến cần 1 hàm nào để lọc lấy đơn vị thùng, xô .. nằm sau dấu "/" thay cho chữ "T" có trong công thức của mình. Thanks
Hổng chịu kiểu của concogia thì coi thử cái này, Tả bín lù vừa code, vừa công thức, vừa name cho đủ màu. Chỉ nhập số liệu vào là nó "chạy". Copy hàng loạt rồi dán vào cột SL nó cũng chạy luôn, mà chạy đi "chết"
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom