:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

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

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#1

Post by kikuaemii »

สวัสดีคะ
วันนี้มีปัญหามีปรึกษาคะ คือว่าเนื่องจากใส่สูตรผิดทำให้รันค่าไปเรื่อยๆจน row 30,000 กว่า แล้วยิ่งลบก้อยิ่งเพิ่มคะ จนตอนนี้ 65,000กว่าแล้ว ไม่ทราบว่าจะแก้ยังไงดีคะ
ขอบคุณล่วงหน้านะคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#2

Post by snasui »

:D แนบไฟล์ตัวอย่างที่เป็นปัญหามาดูกันครับ จะได้ทราบว่าทำอะไรไว้บ้าง จะได้แก้ได้ถูกจุดครับ
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#3

Post by kikuaemii »

คือไฟล์ที่จะแนบมันใหญ่กว่า 300 kb แล้วคะ เพราะว่าตอนแรกใส่โค้ดผิดมันเลยรันตัวอักษร C ไปจนถึง row ที่ 30,000 คะ แต่ตอนนี้ลบตัว Cหมดแล้วแต่ว่า row ไม่หายคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#4

Post by snasui »

:lol: ไฟล์ตัวอย่างไม่ควรจะใหญ่ขนาดนั้นครับ ลบเรื่องอื่น ๆ ที่ไม่เกี่ยวข้องออกให้หมดครับ เอาเฉพาะที่เป็นปัญหา ถ้าเป็น Code ก็ช่วยระบุว่าอยู่ใน Module ใด ชื่อ Procedure ว่าอะไร จะได้เข้าถึงข้อมูลได้โดยไวครับ
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#5

Post by kikuaemii »

ตอนนี้แก้ได้แล้วคะอาจารย์ หนูขอปรึกษาเรื่องโค้ดนิดนึงนะคะ
คือว่าหนูจะ ดาต้าเบส ให้ออกมาเป็นรายงานสรุปคะ โดยใช้โค้ด VBA
โดยที่หนูอยากให้รายงานนี้สามารถเลือกได้ว่า จะออกรายงานของพนักงานขายคนไหนและ เดือนไหนบ้าง หรือว่าทั้งปี
หนูแนบไฟล์มาแล้วคะ
Attachments
โปรแกรมค่าคอมมิชชั่น.xlsm
(122.35 KiB) Downloaded 5 times
โปรแกรมค่าคอมมิชชั่น.xlsm
(125.84 KiB) Downloaded 1 time
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#6

Post by snasui »

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

สำหรับการดึงข้อมูลมาทำรายงาน สามารถใช้ความสามารถของ Advanced Filter มาช่วยได้โดยลองบันทึก Macro การทำ Advanced Filter และนำ Code มาปรับใช้ครับ ส่วน Database หัว Field ควรจะมีเพียงทัดเดียวเท่านั้น เพื่อจะนำไปใช้กับ Advanced Filter หรือการสรุปเป็นรายงานต่าง ๆ ด้วย PivotTable ได้ครับ
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#7

Post by kikuaemii »

หนูเขียนโค้ดแล้วคะแต่ว่าพอคำนวณแล้วมันได้ 0.00 บาท ตลอดเลย ไม่ทราบว่าผิดตรงไหน มีโมดูลเดียวคะ
Attachments
โปรแกรมค่าคอมมิชชั่น.xlsm
(125.84 KiB) Downloaded 4 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#8

Post by snasui »

:lol: ท่าทางจะยาวครับ ช่วยบอกวิธีทดสอบและการคีย์ข้อมูลทดสอบมาให้ด้วยครับ จะได้เข้าถึงปัญหาได้โดยไวครับ

คลิกปุ่มไหน กรอกค่าใดบ้าง คำตอบที่ถูกต้องจะแสดงที่ไหนเป็นค่าใด ผมลองคลิกปุ่มรายงานแล้วไม่มีพนักงานและเดือนให้เลือกครับ
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#9

Post by kikuaemii »

เริ่มจากเข้าหน้า REPORT คะ กดปุ่ม "แสดงรายงาน" จะมีข้อมูลจาก comboBox ให้เลือก2 ข้อมูลคะ คือ ให้เลือก (ในที่นี้หนูคิดว่ามันคือเงื่อนไข) คือ1.เลือกพนักงาน 2.เลือกเดือนที่ต้องการคำนวณ
พอได้ข้อมูลที่ต้องการกดปุ่ม Report เพื่อให้ข้อมูลที่เลือก ไปแสดงในหน้า REPORT คะ

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

ขอโทษที่ส่งข้อมูลมาไม่ครบแต่แรกคะ
Attachments
โปรแกรมค่าคอมมิชชั่น.xlsm
(131.68 KiB) Downloaded 14 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#10

Post 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
Attachments
Emp.png
Emp.png (5.52 KiB) Viewed 50 times
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#11

Post by kikuaemii »

เยี่ยมเลยคะอาจารย์ ขอบคุณนะคะ
อันนี้หนูขอความรู้เพิ่มเติมสักนิดนะคะ ถ้าเกิดว่าหนูจะทำแบบว่าให้สามารถเลือกให้แสดงยอดสรุปของ1เดือน แต่ว่าพนักงานหลายคน หรือ พนักงาน 1 คนแต่ว่าแสดงหลายเดือน หนูต้องเปลี่ยน combobox เป็น listbox แบบ 2 แถว หรือว่ายังไงดีคะ คือ หนูไม่เก่งอัลกอลิทึ่ม เวลาทำเงื่อนไขแบบซับซ้อน หนูจะมึนๆ อยากขอคำปรึกษาคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

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

#12

Post by snasui »

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

เนื่องจากว่า Excel มีความสามารถด้านการแสดงรายงานให้เลือกใช้อยู่แล้วครับ นั่นคือ PivotTable แทนที่จะเสียเวลาเขียนเองน่าจะลองใช้ PivotTable ดูก่อนครับ
kikuaemii
Member
Member
Posts: 7
Joined: Sat Feb 25, 2012 12:30 am

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

#13

Post by kikuaemii »

:P ได้ไอเดียไปพัฒนางานต่อแล้ว ขอบคุณมากมายนะคะอาจารย์
Post Reply