Page 1 of 1

เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิม

Posted: Sun Mar 02, 2014 11:37 am
by voravit
เรียน : อาจารย์ ที่นับถือ
ผมขอเรียนสอบถาม การปรับแก้ เงื่อนไข การบันทึก แมโคร และ/หรือ การ เขียน Code เพื่อ
1. แก้ไข ฟังก์ชั่น OFFSET ส่งข้อมูลไปแล้ว ข้อมูลที่บันทึกใหม่ ไปบันทึกซ้ำ รายการเดิมที่บันทึกก่อนหน้าไปแล้ว
2. การ ระบุเงื่อนไข Copy และ Paste เพื่อให้ได้เฉพาะ ข้อความ ตัวเลข กรอบตาราง แต่ไม่ต้องการให้ สูตร หรือ รูปแบบ เช่น Drop Down List ติดมาด้วย
3. วิธี บันทึก แมโคร หรือ เขียน Code เพื่อกลับไปยังหน้ารายงาน เพื่อทำการแก้ไข เมื่อแก้ไขเสร็จก็ให้กลับไปหน้าแรก
และ ตาม ไฟล์ แนบครับ
ขอขอบคุณ อาจารย์เป็นอย่างสูงครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 11:57 am
by snasui
:D ทั้ง 3 ข้อที่กล่าวมา Macro อยู่ใน Module ไหน มีชื่อว่าอะไร

Macro แต่ละตัวติดขัดที่บรรทัดใด ช่วยแจ้งมาด้วยครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 12:29 pm
by voravit
เรียน : อาจารย์ ที่นับถือ ครับ
Module ที่ 16 ชื่อ AddOredrRecord ครับ
1. ปัญหาการ Copy และ Paste คือ บรรทัด ที่ 8 ถึง 15 ครับ (ผมนับ MsgBox อันที่หนึ่งเป็น บรรทัดแรกครับ)
2. Print Preview อยู่ บรรทัดที่ 16 ผมต้องการกลับไปหน้ารายงาน ใน ไฟล์นี้คือ Sheet "OrderRecord" หลังจากที่ดูจาก Print Preview แล้วพบว่ามีบางจุดต้องแก้ไข หรือ เพิ่มเติมครับ เมื่อแก้ไข และ บันทึก เรียบร้อย ก็ให้กลับไป หน้าแรก คือ Sheet"MorderRecord" ครับ
3. หลังจากที่ copy และ Past ได้ตามเงื่อนไขแล้ว จาก บรรทัด ที่ 15 ก่อนจะ Print Preview ผมต้อง บันทึก แมโคร อย่างไร เพื่อ ให้ เชลที่เลือก Merge กัน ครับ
ขอบคุณอาจารย์เป็นอย่างสูงครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 2:39 pm
by snasui
:D ผมเข้าใจว่าปัญหาคือมีการ Copy Data Validation มาด้วย

วิธีการ Copy โดยไม่เอา Validation มาด้วยจะต้องไม่ Paste All ครับ

ลองตามด้านล่างครับ
  1. ลบ Validation ในชีท OrderRecord ออกไป
  2. ปรับปรุง Code เป็นตามด้านล่าง

    Code: Select all

    Sub AddOrderRecod()
    '
    ' AddOrderRecod Macro
    '
    ' Keyboard Shortcut: Ctrl+Shift+A
    '
        MsgBox "â»Ã´µÃǨÊͺ¤ÇÒÁ¶Ù¡µéͧ¢Í§¢éÍÁÙÅ ¡è͹·Ó¡Òúѹ·Ö¡"
        Application.Goto Reference:="MorderRecord"
        Selection.Copy
        Application.Goto Reference:="ulOrderRecord"
        ActiveCell.Offset(3, 0).Range("A1").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        Application.CutCopyMode = False
        ActiveSheet.PrintPreview
        Sheets("OrderRecord").Select
        Sheets("MorderRecord").Select
        Range("C6:F14").Select
        Selection.ClearContents
        Range("B4").Select
    End Sub
    

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 4:17 pm
by voravit
เรียน : อาจารย์ ที่นับถือ
ผมได้เอา Code ที่อาจารย์ แนะนำมาไปแก้ไข แล้ว ผลคือ ไม่มี Data Validation ติดมาตามที่ต้องการ เพียงแต่ ได้มาเฉพาะข้อมูล ขอบตารางหายไป ผมเลยเพิ่ม Code ลงไป อีก 1 บรรทัด คือ

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ผลที่ออกมาครบทั้งข้อมูล และ ขอบตาราง
ผม อยากรบกวน อาจารย์ อีกรายการครับ คือ
ผมต้องเขียน Code อย่างไรเพื่อไปหน้า ที่ต้องการแก้ไข เมื่อทำการแก้ไขแล้วให้กลับไปหน้าแรกครับ
ขอบคุณเป็นอย่างสูงครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 5:03 pm
by snasui
:D ในกระทู้ถามตอบงดถามเฉพาะบุคคลใดบุคคลหนึ่งครับ ให้ถามได้เลยไม่ต้องเรียนสมาชิกท่านใด หากสมาชิกท่านนั้นไม่ว่าง คุณจะเสียโอกาสที่จะได้รับคำตอบจากสมาชิกท่านอื่นครับ
voravit wrote:ผมต้องเขียน Code อย่างไรเพื่อไปหน้า ที่ต้องการแก้ไข เมื่อทำการแก้ไขแล้วให้กลับไปหน้าแรกครับ
หน้าที่ต้องการแก้ไขคือหน้าใด Code ทีเขียนไว้แล้วคืออะไร มีปัญหาใดครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 5:35 pm
by voravit
เรียน อาจารย์ ที่นับถือ ครับ
หน้า รายงาน คำสั่งซื้อ คือ Sheet("OrderRecord") คือ เมื่อ Print Preview หน้านี้ ถ้าพบว่ามีรายการที่ต้องการ แก้ไข เพิ่มเตืม ก็ให้กลับไปหน้านี้
แล้วทำการ แก้ไข เพิ่มเติม เสร็จก็ให้กลับไปยังหน้าแรก คือ Sheet("MorderRecord") ครับ Code ที่ เขียน คือ

ActiveSheet.PrintPreview
ActiveCell.Select
MsgBox "กลับไปหน้าแรก เพื่อ ทำรายการต่อไป"
Sheets("MorderRecord").Select
ผลคือ หน้า "OrderRecord" ไม่เปิดขึ้นเพื่อให้ แก้ไข หรือ เพิ่มเติม เมื่อ คลิกปิดหน้า Print Preview แต่ กลับไปหน้าแรก คือ "MorderRecord" เลยครับ ต้อง เขียน Code อย่างไรครับ
ขอบคุณเป็นอย่างสูงครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 5:42 pm
by snasui
voravit wrote:เรียน อาจารย์ ที่นับถือ ครับ
แก้ไขข้อความด้วยครับ :roll: :ard:
snasui wrote:ในกระทู้ถามตอบงดถามเฉพาะบุคคลใดบุคคลหนึ่งครับ ให้ถามได้เลยไม่ต้องเรียนสมาชิกท่านใด

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 6:00 pm
by voravit
หน้า รายงาน คำสั่งซื้อ คือ Sheet("OrderRecord") คือ เมื่อ Print Preview หน้านี้ ถ้าพบว่ามีรายการที่ต้องการ แก้ไข เพิ่มเตืม ก็ให้กลับไปหน้านี้
แล้วทำการ แก้ไข เพิ่มเติม เสร็จก็ให้กลับไปยังหน้าแรก คือ Sheet("MorderRecord") ครับ Code ที่ เขียน คือ

ActiveSheet.PrintPreview
ActiveCell.Select
MsgBox "กลับไปหน้าแรก เพื่อ ทำรายการต่อไป"
Sheets("MorderRecord").Select

ผลคือ หน้า "OrderRecord" ไม่เปิดขึ้นเพื่อให้ แก้ไข หรือ เพิ่มเติม เมื่อ คลิกปิดหน้า Print Preview แต่ กลับไปหน้าแรก คือ "MorderRecord" เลยครับ ต้อง เขียน Code อย่างไรครับ
ขอบคุณเป็นอย่างสูงครับ

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 6:09 pm
by snasui
:D หากต้องการให้กลับไปหน้า Sheet("OrderRecord") ก็ต้องเปลี่ยน Code Sheets("MorderRecord").Select เป็น Sheet("OrderRecord").Select และเมื่อแก้ไขแล้วหากต้องการให้ไปยังชีท MorderRecord สามารถทำ Hyperlink หรือสร้างปุ่มเพิ่มเพื่อให้คลิกแล้วไปยังชีท MorderRecord ครับ

การโพสต์ Code ให้แสดงเป็น Code ดูตัวอย่างที่นี่ครับ :arrow: viewtopic.php?f=3&t=1187

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

Posted: Sun Mar 02, 2014 10:47 pm
by voravit
ปรับแก้ code ตามคำแนะนำ ได้แล้วครับ
ขอบคุณเป็นอย่างสูงครับ