Page 1 of 1

เลือก Package แล้วคลิกปุ่ม Calculate อยากให้ผลลัพธ์ที่ได้เป็นดังรูป

Posted: Thu Jul 11, 2024 9:09 am
by wisitsakbenz
เรียน อาจารย์

เลือก Package แล้วคลิกปุ่ม Calculate อยากให้ผลลัพธ์ที่ได้เป็นดังรูป (ไฟล์แนบ)
ต้องปรับ Code อย่างไรครับ ขอบคุณครับ

Re: เลือก Package แล้วคลิกปุ่ม Calculate อยากให้ผลลัพธ์ที่ได้เป็นดังรูป

Posted: Sat Jul 13, 2024 12:44 pm
by snasui
:D กรุณาปลด Password แล้วแนบไฟล์มาใหม่พร้อมอธิบายมาพอสังเขปว่านำข้อมูลจากที่ไหนมาแสดงตามภาพ โดยมีเงื่อนไขอะไรบ้าง ฯลฯ เพื่อสะดวกต่อการตอบของเพื่อนสมาชิกครับ

Re: เลือก Package แล้วคลิกปุ่ม Calculate อยากให้ผลลัพธ์ที่ได้เป็นดังรูป

Posted: Mon Jul 15, 2024 8:20 am
by wisitsakbenz
เรียน อาจารย์

เลือก Package : จาก Dropdown list แล้วคลิกปุ่ม Calculate
Packge จาก sheet "Data" ที่ตรงกับ Dropdown list จะมาแสดงที่ Sheet "Display"
และอยากให้แสดงดังภาพ

ต้องปรับสูตรอย่างไรครับ ขอบคุณครับ

Re: เลือก Package แล้วคลิกปุ่ม Calculate อยากให้ผลลัพธ์ที่ได้เป็นดังรูป

Posted: Mon Jul 15, 2024 3:01 pm
by snasui
:D เตรียมหัวตารางและท้ายตารางให้เหมือนกับภาพทีแนบมาในโพสต์ #1 ด้านบน :roll:

จากนั้นปรับ Code เป็นด้านล่างแล้วทดสอบรันดูครับ

Code: Select all

Sub Test0()
    Dim rall As Range, r As Range
    Dim arr(9999, 5) As Variant, i As Integer
    Dim cdt As String, sumOPD As Long, sumIPD As Long, sumQty As Long
    Dim lstl0 As Integer, lstl1 As Integer, lstl2 As Integer
    
    cdt = Worksheets("Display").Range("l7")(1).Value
    With Worksheets("Data")
        Set rall = .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
        For Each r In rall
            If r.Value = cdt Then
                arr(i, 0) = r.Offset(0, 2).Value
                arr(i, 1) = ""
                arr(i, 2) = ""
                arr(i, 3) = r.Offset(0, 5).Value
                arr(i, 4) = r.Offset(0, 6).Value
                arr(i, 5) = r.Offset(0, 7).Value
                sumQty = sumQty + arr(i, 3)
                sumOPD = sumOPD + arr(i, 4)
                sumIPD = sumIPD + arr(i, 5)
                i = i + 1
            End If
        Next r
    End With
    If i > 0 Then
        With Worksheets("Display")
            lstl1 = .Range("c" & .Rows.Count).End(xlUp).Offset(-1, 0).Row - 1
            .Range("c12:h" & lstl1).ClearContents
            .Range("c12").Resize(i).EntireRow.Insert
            .Range("c12").Resize(i, 6).Value = arr
            lstl2 = .Range("c" & .Rows.Count).End(xlUp).Row
            .Cells(lstl2, "f").Value = sumQty
            .Cells(lstl2, "g").Value = sumOPD
            .Cells(lstl2, "h").Value = sumIPD
            lstl0 = .Range("c" & .Rows.Count).End(xlUp).Offset(-1, 0).Row
            lstl1 = .Range("c" & lstl0).End(xlUp).Row
            .Range("c" & lstl1 + 1).Resize(lstl0 - lstl1 - 1).EntireRow.Delete
        End With
    End If
End Sub

Re: เลือก Package แล้วคลิกปุ่ม Calculate อยากให้ผลลัพธ์ที่ได้เป็นดังรูป

Posted: Mon Jul 15, 2024 4:38 pm
by wisitsakbenz
เรียน อาจารย์ snasui

ได้แล้วครับ ขอบคุณอาจารย์มากครับ