Page 1 of 1

ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 9:16 pm
by kikuaemii
สวัสดีคะ
วันนี้มีปัญหามีปรึกษาคะ คือว่าเนื่องจากใส่สูตรผิดทำให้รันค่าไปเรื่อยๆจน row 30,000 กว่า แล้วยิ่งลบก้อยิ่งเพิ่มคะ จนตอนนี้ 65,000กว่าแล้ว ไม่ทราบว่าจะแก้ยังไงดีคะ
ขอบคุณล่วงหน้านะคะ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 9:56 pm
by snasui
:D แนบไฟล์ตัวอย่างที่เป็นปัญหามาดูกันครับ จะได้ทราบว่าทำอะไรไว้บ้าง จะได้แก้ได้ถูกจุดครับ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 10:37 pm
by kikuaemii
คือไฟล์ที่จะแนบมันใหญ่กว่า 300 kb แล้วคะ เพราะว่าตอนแรกใส่โค้ดผิดมันเลยรันตัวอักษร C ไปจนถึง row ที่ 30,000 คะ แต่ตอนนี้ลบตัว Cหมดแล้วแต่ว่า row ไม่หายคะ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 10:54 pm
by snasui
:lol: ไฟล์ตัวอย่างไม่ควรจะใหญ่ขนาดนั้นครับ ลบเรื่องอื่น ๆ ที่ไม่เกี่ยวข้องออกให้หมดครับ เอาเฉพาะที่เป็นปัญหา ถ้าเป็น Code ก็ช่วยระบุว่าอยู่ใน Module ใด ชื่อ Procedure ว่าอะไร จะได้เข้าถึงข้อมูลได้โดยไวครับ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 11:05 pm
by kikuaemii
ตอนนี้แก้ได้แล้วคะอาจารย์ หนูขอปรึกษาเรื่องโค้ดนิดนึงนะคะ
คือว่าหนูจะ ดาต้าเบส ให้ออกมาเป็นรายงานสรุปคะ โดยใช้โค้ด VBA
โดยที่หนูอยากให้รายงานนี้สามารถเลือกได้ว่า จะออกรายงานของพนักงานขายคนไหนและ เดือนไหนบ้าง หรือว่าทั้งปี
หนูแนบไฟล์มาแล้วคะ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 11:15 pm
by snasui
:D ปัจจุบันเขียน Code ในการดึงข้อมูลมาทำรายงานแล้วยังครับ อยู่ใน Module ใด Procedure ใด และติดปัญหาใด จะได้ช่วยทดสอบได้ สำหรับ VBA แล้ว กรณีที่ยังไม่เขียนให้เขียนมาก่อนเสมอ ติดปัญหาแล้วค่อยมาถามกันได้เรื่อย ๆ ครับ

สำหรับการดึงข้อมูลมาทำรายงาน สามารถใช้ความสามารถของ Advanced Filter มาช่วยได้โดยลองบันทึก Macro การทำ Advanced Filter และนำ Code มาปรับใช้ครับ ส่วน Database หัว Field ควรจะมีเพียงทัดเดียวเท่านั้น เพื่อจะนำไปใช้กับ Advanced Filter หรือการสรุปเป็นรายงานต่าง ๆ ด้วย PivotTable ได้ครับ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 11:22 pm
by kikuaemii
หนูเขียนโค้ดแล้วคะแต่ว่าพอคำนวณแล้วมันได้ 0.00 บาท ตลอดเลย ไม่ทราบว่าผิดตรงไหน มีโมดูลเดียวคะ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Mon Feb 27, 2012 11:45 pm
by snasui
:lol: ท่าทางจะยาวครับ ช่วยบอกวิธีทดสอบและการคีย์ข้อมูลทดสอบมาให้ด้วยครับ จะได้เข้าถึงปัญหาได้โดยไวครับ

คลิกปุ่มไหน กรอกค่าใดบ้าง คำตอบที่ถูกต้องจะแสดงที่ไหนเป็นค่าใด ผมลองคลิกปุ่มรายงานแล้วไม่มีพนักงานและเดือนให้เลือกครับ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Tue Feb 28, 2012 12:09 am
by kikuaemii
เริ่มจากเข้าหน้า REPORT คะ กดปุ่ม "แสดงรายงาน" จะมีข้อมูลจาก comboBox ให้เลือก2 ข้อมูลคะ คือ ให้เลือก (ในที่นี้หนูคิดว่ามันคือเงื่อนไข) คือ1.เลือกพนักงาน 2.เลือกเดือนที่ต้องการคำนวณ
พอได้ข้อมูลที่ต้องการกดปุ่ม Report เพื่อให้ข้อมูลที่เลือก ไปแสดงในหน้า REPORT คะ

[ ที่คิดไว้คร่าวๆ คือ ให้วนหาข้อมูลพนักงานจาก คอลัม sale_name_col เมื่อเจอแล้วให้ตรวจสอบคอลัม เดือน date_col ว่าตรงกับที่เราเลือกไว้ ถ้าตรงทั้ง 2 เงื่อนไข ก็ให้นำข้อมูลจาก คอลัม ยอดคอม com_sale_col มาคำนวณ เก็บไว้ในตัวแปรชื่อ com_sale วนจนกว่าจะเจอ "" แล้วนำค่าตัวแปรที่ได้ มาแสดงในหน้า report คะ ]

ขอโทษที่ส่งข้อมูลมาไม่ครบแต่แรกคะ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Tue Feb 28, 2012 7:36 am
by snasui
:D ช่องพนักงานตามภาพด้านล่างไม่สามารถ Match กันได้กับชื่อพนักงานในคอลัมน์ F ของชีท COMMISSIONDB ครับ

หากนำชื่อพนักงานมาแสดงในช่องรายงานแล้วลองเปลี่ยน Code เดิมเป็นตามด้านล่างแล้วทดสอบดูครับ

Code: Select all

Sub netCom()
    Dim rSource As Range
    Dim rTarget As Range
    Dim r As Range
    With Sheets("COMMISSIONDB")
        Set rSource = .Range("F3", .Range("F" & Rows.Count).End(xlUp))
    End With
    For Each r In rSource
        Set rTarget = Sheets("Report").Range("B" & Rows.Count).End(xlUp) _
            .Offset(1, 0)
        If r = FrmReport.cnnSale.Text And r.Offset(0, -4) = FrmReport.cbbMonth.Text Then
            rTarget = r.Offset(0, -4)
            rTarget.Offset(0, 1) = r
            rTarget.Offset(0, 4) = r.Offset(0, 3)
        End If
    Next r
End Sub

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Tue Feb 28, 2012 6:31 pm
by kikuaemii
เยี่ยมเลยคะอาจารย์ ขอบคุณนะคะ
อันนี้หนูขอความรู้เพิ่มเติมสักนิดนะคะ ถ้าเกิดว่าหนูจะทำแบบว่าให้สามารถเลือกให้แสดงยอดสรุปของ1เดือน แต่ว่าพนักงานหลายคน หรือ พนักงาน 1 คนแต่ว่าแสดงหลายเดือน หนูต้องเปลี่ยน combobox เป็น listbox แบบ 2 แถว หรือว่ายังไงดีคะ คือ หนูไม่เก่งอัลกอลิทึ่ม เวลาทำเงื่อนไขแบบซับซ้อน หนูจะมึนๆ อยากขอคำปรึกษาคะ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Tue Feb 28, 2012 7:41 pm
by snasui
:D ตอบให้แบบกว้าง ๆ นะครับ การทำเช่นที่ถามมาคงต้องทำ Form ให้เลือกครับว่าต้องการช่วงเวลาไหน จะดูพนักงานทุกคนหรือคนใดคนหนึ่ง หรือ เลือกมาเฉพาะบางคน สามารถทำ Option, ListBox, TextBox ก็แล้วแต่จะออกแบบครับ ช่วงเวลาก็อาจจะให้เลือกได้จากไหนถึงไหน คือทำเป็น 2 ListBox ให้เลือกเป็น From และ To เช่นนี้เป็นต้น

เนื่องจากว่า Excel มีความสามารถด้านการแสดงรายงานให้เลือกใช้อยู่แล้วครับ นั่นคือ PivotTable แทนที่จะเสียเวลาเขียนเองน่าจะลองใช้ PivotTable ดูก่อนครับ

Re: ยิ่งลบrow ยิ่งเยอะ

Posted: Tue Feb 28, 2012 7:57 pm
by kikuaemii
:P ได้ไอเดียไปพัฒนางานต่อแล้ว ขอบคุณมากมายนะคะอาจารย์