[Help] Code liệt kê và tính số lượng tổng sản phẩm

Liên hệ QC

ultimatum86

Thành viên chính thức
Tham gia
19/11/10
Bài viết
79
Được thích
5
Code liệt kê và tính tổng Sản phẩm

Chào các Anh/chị trên GPE

Nhờ các anh chị xem giúp file và bổ sung lại code file này giúp nha.
Yêu cầu:
- Mình muốn bỏ button "TOTAL" và chuyển chức năng của nó sang button "Tinh toan" bên Sheet "thong tin". Khi mình bấm Button Tinh toan này thì:
1- Liệt kê tất cả các mặt hàng trong cột B bên sheet SCOPE OF WORK (nhưng loại trừ mã TC1, TC2) vào cột tổng hợp mặt hàng bên sheet "Thong tin".
2- tại cột I thì nó tính số lượng tổng giống như chức năng button Total hiện tại, riệng mã hàng TC1, TC2 thì tại cột J nó sẽ lấy "ĐƠN GIÁ * SỐ LƯỢNG mới tính được".
 

File đính kèm

  • FileTest-Fix.rar
    40.2 KB · Đọc: 31
Lần chỉnh sửa cuối:
Đã hơn 1 tuần rồi, Mong anh chị nào xem giúp vấn đề này.

Cảm ơn rất nhiều.
Không ai vào giúp vì bạn cứ Hepl rồi Xin Giúp đỡ...
Việt Anh lẫn lộn, giống "Việt kiều hồi hộp" , ớn quá.
Dùng tiếng Việt đơn thuần chẳng lẽ không ai hiểu được.
Xin giúp đỡ.. cũng coi như phạm quy.
Lưu ý khi gửi bài:
- Bài viết không dấu Tiếng Việt sẽ bị xóa
- Đặt tựa đề theo sát nội dung câu hỏi/ trả lời. Các bài viết có tựa đề chung chung như
Help me, cứu cứu, cứu em, gấp gấp,... sẽ bị xoá
- Giải thích/ mô tả câu hỏi càng chi tiết càng tốt
- Nên gửi thêm tập tin Excel kèm chú thích về câu hỏi nếu có

Nhớ rút kinh nghiệm khi post bài nhé bạn.
Xem thử file này, code cũ của bạn hầu như nguyên dạng, nhanh hay chậm thì không biết .
 

File đính kèm

  • FileTest-Fix.rar
    43.3 KB · Đọc: 30
Upvote 0
Không ai vào giúp vì bạn cứ Hepl rồi Xin Giúp đỡ...
Việt Anh lẫn lộn, giống "Việt kiều hồi hộp" , ớn quá.
Dùng tiếng Việt đơn thuần chẳng lẽ không ai hiểu được.
Xin giúp đỡ.. cũng coi như phạm quy.


Nhớ rút kinh nghiệm khi post bài nhé bạn.
Xem thử file này, code cũ của bạn hầu như nguyên dạng, nhanh hay chậm thì không biết .

Cảm ơn anh/chị Ba Tê đã góp ý. đã sửa lại tiêu đề nhưng cái tên đề tài thì không sửa được, sẽ rút kinh nghiệm lần sau.
Anh/chị đã giúp xin giúp cho trót luôn ạ, mong anh/chị chỉnh sửa cho code chạy nhanh luôn vì khi đưa vào Form còn nhiều công thức nữa nên sẽ bị chậm.
Hiện tại trong file này còn vài vấn đề xin anh/chị chỉnh sửa giúp:
1- Theo như code thì những mã hàng bắt đầu bằng "NQ*" thì mới được liệt kê bên sheet thông tin, vậy những mã hàng khác thì sẽ không được liệt kê luôn, đây là file ví dụ nên các mã hàng giống nhau, thực tế thì khác nhau. Mong anh/chị chỉnh sửa lại giúp. Ở đây mình muốn qui định cụ thể tên TC1, TC2 hoặc tên gì đó không được liệt kê luôn.
2- Những dòng có STT sẽ không hiện số lượng tổng bên cột tính tổng số lượng ( giống như file mình gửi lên GPE vậy đó).
3- Tính thành tiền thì chỉ có những dòng có tên theo qui định ( trong ví dụ là TC1, TC2) mới được lấy giá * số lượng mới tính, còn lại không cần tính để file không bị rối.

Mong anh/chị Ba Tê xem giúp với nha.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh/chị Ba Tê đã góp ý. đã sửa lại tiêu đề nhưng cái tên đề tài thì không sửa được, sẽ rút kinh nghiệm lần sau.
Anh/chị đã giúp xin giúp cho trót luôn ạ, mong anh/chị chỉnh sửa cho code chạy nhanh luôn vì khi đưa vào Form còn nhiều công thức nữa nên sẽ bị chậm.
Hiện tại trong file này còn vài vấn đề xin anh/chị chỉnh sửa giúp:
1- Theo như code thì những mã hàng bắt đầu bằng "NQ*" thì mới được liệt kê bên sheet thông tin, vậy những mã hàng khác thì sẽ không được liệt kê luôn, đây là file ví dụ nên các mã hàng giống nhau, thực tế thì khác nhau. Mong anh/chị chỉnh sửa lại giúp. Ở đây mình muốn qui định cụ thể tên TC1, TC2 hoặc tên gì đó không được liệt kê luôn.
2- Những dòng có STT sẽ không hiện số lượng tổng bên cột tính tổng số lượng ( giống như file mình gửi lên GPE vậy đó).
3- Tính thành tiền thì chỉ có những dòng có tên theo qui định ( trong ví dụ là TC1, TC2) mới được lấy giá * số lượng mới tính, còn lại không cần tính để file không bị rối.

Mong anh/chị Ba Tê xem giúp với nha.

Cái gì cũng phải nói rõ hoặc ví dụ rõ từ đâu chớ bạn, mã hàng chỉ ghi có 1 loạt rồi bi giờ bảo nó có nhiều loại lắm...
Còn chuyện code của bạn thì bạn sửa lại đi, khi nào có dữ liệu thật khoảng 1.000 dòng thì mới biết code nhanh hay chậm. Tôi viết thêm cái mới và cho chạy một lần 2 cái luôn.
 

File đính kèm

  • FileTest-Fix2.rar
    44.3 KB · Đọc: 47
Upvote 0
Cái gì cũng phải nói rõ hoặc ví dụ rõ từ đâu chớ bạn, mã hàng chỉ ghi có 1 loạt rồi bi giờ bảo nó có nhiều loại lắm...
Còn chuyện code của bạn thì bạn sửa lại đi, khi nào có dữ liệu thật khoảng 1.000 dòng thì mới biết code nhanh hay chậm. Tôi viết thêm cái mới và cho chạy một lần 2 cái luôn.
Dạ đừng nóng nổi mụn. --=0

Code này mình cũng xin trên GPE thôi, có biết lập trình đâu mà chỉnh với sửa, chỉ biết đọc code thôi, hjhjh.
Tại nghĩ là file test nên không tập trung mã hàng, mong anh/chị thông cảm

Cho mình hỏi thêm chút xíu nữa nha:
1- Nếu muốn thêm 1 mã hàng vào danh sách không cho hiển thị bên sheet Thông tin (ví dụ "Luxubu") thì làm thế nào?
2- Mình thấy file excel có code VBA thì có file Undo được, còn có file không Undo được, vậy là bị sao vậy anh/chị
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ đừng nóng nổi mụn. --=0

Code này mình cũng xin trên GPE thôi, có biết lập trình đâu mà chỉnh với sửa, chỉ biết đọc code thôi, hjhjh.
Tại nghĩ là file test nên không tập trung mã hàng, mong anh/chị thông cảm

Cho mình hỏi thêm chút xíu nữa nha:
1- Nếu muốn thêm 1 mã hàng vào danh sách không cho hiển thị bên sheet Thông tin (ví dụ "Luxubu") thì làm thế nào?
2- Mình thấy file excel có code VBA thì có file Undo được, còn có file không Undo được, vậy là bị sao vậy anh/chị

Xong mỗi bài bạn lại "Nếu...".
Bây giờ thì tôi tạo 1 cột mã hàng mà bạn không muốn nó lọc sang bên sheet Thong tin (Cột O sheet SCOPE OF WORK)
Và hy vọng là không gặp "Nếu.." nữa.
 

File đính kèm

  • FileTest-Fix3.rar
    44.6 KB · Đọc: 20
Upvote 0
Xong mỗi bài bạn lại "Nếu...".
Bây giờ thì tôi tạo 1 cột mã hàng mà bạn không muốn nó lọc sang bên sheet Thong tin (Cột O sheet SCOPE OF WORK)
Và hy vọng là không gặp "Nếu.." nữa.
Cám ơn anh/chị rất nhiều.

Đúng là code này cao siêu quá không thể hiểu nổi nên khi đưa vào form không được,
Anh/chị giải thích ý nghĩa giúp mình chút xíu phần màu đỏ bên dưới nha.
Mã:
Public Sub GPE()Dim Dic As Object, MaMa As Object, sArr(), dArr(), I As Long, K As Long, Tem As String, Cll As Range
Set Dic = CreateObject("Scripting.Dictionary")
Set MaMa = CreateObject("Scripting.Dictionary")
With Sheets("SCOPE OF WORK")
    sArr = .Range(.[C5], .[C65000].End(xlUp)).Offset(, -2).Resize(, 2).Value
    For Each Cll In .Range(.[O1], .[O1000].End(xlUp))
        MaMa.Add UCase(Cll), ""
    Next
End With
[COLOR=#ff0000]    ReDim dArr(2 To UBound(sArr, 2), 2 To 2)[/COLOR]
[COLOR=#ff0000]    For I = 2 To UBound(sArr, 2)[/COLOR]
[COLOR=#ff0000]        Tem = UCase(sArr(I, 3))[/COLOR]
[COLOR=#ff0000]        If Not MaMa.Exists(Tem) And sArr(I, 2) = "" Then[/COLOR]
[COLOR=#ff0000]            If Not Dic.Exists(Tem) Then[/COLOR]
[COLOR=#ff0000]                K = K + 1[/COLOR]
[COLOR=#ff0000]                Dic.Add Tem, K[/COLOR]
[COLOR=#ff0000]                dArr(K, 2) = Tem[/COLOR]
[COLOR=#ff0000]            End If[/COLOR]
[COLOR=#ff0000]        End If[/COLOR]
    Next I
With Sheets("Thong tin")
    .[C6:C65000].ClearContents
    If K Then .[C6].Resize(K).Value = dArr
End With
Set Dic = Nothing
Set MaMa = Nothing
End Sub
 
Upvote 0
Cám ơn anh/chị rất nhiều.

Đúng là code này cao siêu quá không thể hiểu nổi nên khi đưa vào form không được,
Anh/chị giải thích ý nghĩa giúp mình chút xíu phần màu đỏ bên dưới nha.
Mã:
Public Sub GPE()Dim Dic As Object, MaMa As Object, sArr(), dArr(), I As Long, K As Long, Tem As String, Cll As Range
Set Dic = CreateObject("Scripting.Dictionary")
Set MaMa = CreateObject("Scripting.Dictionary")
With Sheets("SCOPE OF WORK")
    sArr = .Range(.[C5], .[C65000].End(xlUp)).Offset(, -2).Resize(, 2).Value
    For Each Cll In .Range(.[O1], .[O1000].End(xlUp))
        MaMa.Add UCase(Cll), ""
    Next
End With
[COLOR=#ff0000]    ReDim dArr(2 To UBound(sArr, 2), 2 To 2)[/COLOR]
[COLOR=#ff0000]    For I = 2 To UBound(sArr, 2)[/COLOR]
[COLOR=#ff0000]        Tem = UCase(sArr(I, 3))[/COLOR]
[COLOR=#ff0000]        If Not MaMa.Exists(Tem) And sArr(I, 2) = "" Then[/COLOR]
[COLOR=#ff0000]            If Not Dic.Exists(Tem) Then[/COLOR]
[COLOR=#ff0000]                K = K + 1[/COLOR]
[COLOR=#ff0000]                Dic.Add Tem, K[/COLOR]
[COLOR=#ff0000]                dArr(K, 2) = Tem[/COLOR]
[COLOR=#ff0000]            End If[/COLOR]
[COLOR=#ff0000]        End If[/COLOR]
    Next I
With Sheets("Thong tin")
    .[C6:C65000].ClearContents
    If K Then .[C6].Resize(K).Value = dArr
End With
Set Dic = Nothing
Set MaMa = Nothing
End Sub
Rốt lại là file trên bài #9 có chạy được không? Còn code bạn hỏi trong bài #10 thì đã không còn nguyên bản như trong file rồi, chạy không được là do ai đó chỉnh sửa thôi.
Bye bạn luôn.
Tôi chép lại từ file trên đây:
PHP:
Public Sub GPE()
Dim Dic As Object, MaMa As Object, sArr(), dArr(), I As Long, K As Long, Tem As String, Cll As Range
Set Dic = CreateObject("Scripting.Dictionary")
Set MaMa = CreateObject("Scripting.Dictionary")
With Sheets("SCOPE OF WORK")
    sArr = .Range(.[B5], .[B65000].End(xlUp)).Offset(, -1).Resize(, 2).Value
    For Each Cll In .Range(.[O1], .[O1000].End(xlUp))
        MaMa.Add UCase(Cll), ""
    Next
End With
    ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
    For I = 1 To UBound(sArr, 1)
        Tem = UCase(sArr(I, 2))
        If Not MaMa.Exists(Tem) And sArr(I, 1) = "" Then
            If Not Dic.Exists(Tem) Then
                K = K + 1
                Dic.Add Tem, K
                dArr(K, 1) = Tem
            End If
        End If
    Next I
With Sheets("Thong tin")
    .[C6:C65000].ClearContents
    If K Then .[C6].Resize(K).Value = dArr
End With
Set Dic = Nothing
Set MaMa = Nothing
End Sub
 
Upvote 0
Rốt lại là file trên bài #9 có chạy được không? Còn code bạn hỏi trong bài #10 thì đã không còn nguyên bản như trong file rồi, chạy không được là do ai đó chỉnh sửa thôi.
Bye bạn luôn.
Tôi chép lại từ file trên đây:
PHP:
Public Sub GPE()
Dim Dic As Object, MaMa As Object, sArr(), dArr(), I As Long, K As Long, Tem As String, Cll As Range
Set Dic = CreateObject("Scripting.Dictionary")
Set MaMa = CreateObject("Scripting.Dictionary")
With Sheets("SCOPE OF WORK")
    sArr = .Range(.[B5], .[B65000].End(xlUp)).Offset(, -1).Resize(, 2).Value
    For Each Cll In .Range(.[O1], .[O1000].End(xlUp))
        MaMa.Add UCase(Cll), ""
    Next
End With
    ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
    For I = 1 To UBound(sArr, 1)
        Tem = UCase(sArr(I, 2))
        If Not MaMa.Exists(Tem) And sArr(I, 1) = "" Then
            If Not Dic.Exists(Tem) Then
                K = K + 1
                Dic.Add Tem, K
                dArr(K, 1) = Tem
            End If
        End If
    Next I
With Sheets("Thong tin")
    .[C6:C65000].ClearContents
    If K Then .[C6].Resize(K).Value = dArr
End With
Set Dic = Nothing
Set MaMa = Nothing
End Sub
Xin lỗi mình copy nhầm code đã chỉnh sửa.

Vì bây giờ mình làm form lại có thay đổi số cột, Cột B lúc trước trong sheet "" Scope of work" bây giờ chuyển thành cột E.
Khi thay đổi như vậy mình không thể sửa lại code của bạn để chạy cho đúng, đang bị vướng phần mình tô màu đỏ do không hiểu code chổ đó, bạn giúp mình xíu nữa nha.
cảm ơn bạn rất nhiều.
 
Upvote 0
Xin lỗi mình copy nhầm code đã chỉnh sửa.

Vì bây giờ mình làm form lại có thay đổi số cột, Cột B lúc trước trong sheet "" Scope of work" bây giờ chuyển thành cột E.
Khi thay đổi như vậy mình không thể sửa lại code của bạn để chạy cho đúng, đang bị vướng phần mình tô màu đỏ do không hiểu code chổ đó, bạn giúp mình xíu nữa nha.
cảm ơn bạn rất nhiều.
Tóm lại, khi không thể tự mình hiểu và chỉnh sửa thì đưa file dữ liệu giống thật lên, bạn đưa file không giống thật rồi tự ý chỉnh sửa code, rồi bảo là "khi đưa vào form không được", có oan cho người giúp bạn không.
Như trên tôi đã nói, "bye bạn luôn" rồi.
 
Upvote 0
Tóm lại, khi không thể tự mình hiểu và chỉnh sửa thì đưa file dữ liệu giống thật lên, bạn đưa file không giống thật rồi tự ý chỉnh sửa code, rồi bảo là "khi đưa vào form không được", có oan cho người giúp bạn không.
Như trên tôi đã nói, "bye bạn luôn" rồi.

Uh, vậy xin lỗi bạn nha, sẽ rút kinh nghiệm lần sau.
Bây giờ bạn không giúp nữa chắc mình phải tạo chủ đề mới và upload file đó lên vậy.

Một lần nữa cám ơn bạn.
 
Upvote 0
Web KT
Back
Top Bottom