Page 1 of 1
สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โดยมี
Posted: Thu Jul 26, 2012 3:04 pm
by birdzyo
รบกวนสอบถามอาจารย์ครับ
เรื่อง vba ถ้าเราต้องการเขียนสั่งให้ ปิด-เปิด workbook เดิมขึ้นมาใหม่ แต่ใบนี้เราจะเปิดเป็น read-only นะครับ
ตัวจริงจะมีคนอื่นเปิดอยู่เพื่อลงข้อมูล (ประมาณ refresh ใบของคนอื่นอ่ะครับ)
excel 2003 จะ มีปุ่ม refresh ได้ แต่พอผมมาใช้ 2010 แล้วกด refresh ข้อมูลที่อีกคนเพิ่ง save มันไม่ update ครับ
เลยจะแก้ปัญหาโดยจะทำปุ่ม vba เพิ่อสั่งปิดแล้วเปิดใบ แต่ติดตตรงที่มีเงื่อนไขว่า
ใบที่เราต้องการปิด-เปิดนั้นอยู่ใน share อ่ะครับ เช่น
วันที่ 1 ใบงานจะอยู่ที่ '\\10.10.99.1\share\งาน\01-07\โอน_bird
วันที่ 2 ใบงานจะอยู่ที่ '\\10.10.99.1\share\งาน\02-07\โอน_bird
เราจะเขียน code ยังไงอ่ะครับ ต้องขออภัยจริงๆครับผมคิดไม่ออกจริง
เคย search ข้อมูลในเว็ปของอาจารย์ผมเจอแต่ คำสั่ง เปิด workbook กับสั่ง ปิด workbook
ขอบคุณครับ
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Jul 26, 2012 3:20 pm
by snasui
birdzyo wrote:แต่พอผมมาใช้ 2010 แล้วกด refresh ข้อมูลที่อีกคนเพิ่ง save มันไม่ update ครับ
มันไม่ควรจะเป็นเช่นนั้นครับ ลองแนบ
ไฟล์ตัวอย่างมาดูครับ
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Jul 26, 2012 4:02 pm
by birdzyo
ผมอาจจะอธิบายไม่กระจ่างผมขอยกตัวอย่างอีกทีนะครับ
ใบงานจะไม่มีสูตรนะครับ
ผมสร้างใบงานชื่อ a (ตอนนี้ไม่มีข้อมูล)
ใบงานจะอยู่ใน share สมมติเป็น 10.10.99.1\share\งาน\01-07\a
แล้วอาจารย์มาเปิดใบงาน a ของผมเป็น จะได้เป็น read-only (ก็จะไม่มีข้อมูล)
เวลาผ่านไป 1 นาที
ใบงาน a ผมพิมข้อมูลลงไป เช่น hello แล้ว save แต่ไม่ได้ปิดนะครับ ตัวจริงผมจะใช้อยู่ตลอดเวลา
ผมบอกอาจารย์ให้ refresh ใบผมเพื่อที่จะให้เห็นคำว่า Hello
ปกติ 2003 จะมีปุ่ม refresh ให้กด ใบมันก็จะปิดเปิดใหม่พร้อมข้อมูลของใบ a ให้อ่ะครับ
แต่ 2010 อาจารย์ต้องปิดใบ a ของผมแล้วเปิดใหม่ถึงจะเห็นคำว่า hello
ผมเข้าใจถูกเปล่าครับ
ผมลอทดลองกับคอม 2 เครื่อง ดู เครื่องที่เปิดใบ read-only พอกด refresh คำว่า hello มันไม่ขึ้นมาอ่ะครับ
ผมเลยจะใส่ vba ที่ปิดเปิดใบใหม่ เพื่อที่จะให้เครื่องที่ read-only กดปุ่มแล้วสั่งปิด-เปิดใบ a ขึ้นมาใหม่ครับ
ขอบคุณอาจารย์มากครับที่เข้ามาตอบกระทู้ผม
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Jul 26, 2012 4:46 pm
by snasui

กรณีที่ต้องการให้ใช้ไฟล์เดียวกันพร้อมกันหลาย ๆ คนเราใช้วิธีการ Share ครับ การ Share ด้วย 2010 ทำได้โดยเข้าเมนู Review แล้วคลิกที่ Share Workbook จะมีหน้าต่างให้กำหนดการ Share
เมื่อ Share เรียบร้อยแล้วสามารถทำงานพร้อมกันหลายคน เมื่อเปิดไฟล์จะไม่มี Read Only ครับ เปิดได้เลย หากต้องการที่จะดูข้อมูลที่ Update ล่าสุดก็คลิก Refresh ได้เลยเช่นกัน การที่ผมขอดูตัวอย่างก็เพื่อที่จะดูว่า ไฟล์มีการ Share ไว้แล้วหรือไม่ จะได้แนะนำกันในแนวทางที่ควรจะเป็นต่อไปครับ
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Jul 26, 2012 5:51 pm
by birdzyo
ขอบคุณครับอาจารย์ ความรู้ใหม่สำหรับผม
แล้วถ้าต้องการให้นาย a เปลี่ยนแปลงข้อมูลได้คนเดียว นาย b ,c เปิดดูงานของนาย a ไม่สามารถแก้ไขใบงานของนาย a
นาย b, c ต้องคอย refresh เพื่อ update ข้อมูลได้อย่างเดียวสามารถทำได้เปล่าครับอาจารย์
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Jul 26, 2012 7:48 pm
by snasui

การ Share สามารถที่จะกำหนดสิทธิ์ของผู้ใช้งานได้ครับ ลองศึกษาดูก่อน ติดตรงไหนสามารถถามมาได้ครับ
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Jul 26, 2012 9:33 pm
by birdzyo
ขอบคุณครับอาจารย์
เดี๋ยวผมไปศึกษาก่อนครับผม
เปลี่ยนจากใช้ 2003 มาใช้ 2010 งงเลยผม

Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Aug 02, 2012 11:04 pm
by wisit
อาจารย์ครับ สมมติว่าเรา Share แล้ว เวลาเรานำไฟล์ไปลงในเครื่องนาย ก กับ นาย ข แล้วนาย ก คีย์ข้อมูล นาย ข ก็คีย์ข้อมูล แต่คีย์เชลเดียวกัน สมมตินาย ก คีย์ข้อมูลตั้งแต่ A3 ถึง B50 นาย ข ก็คีย์ข้อมูลตั้งแต่ A3 ถึง B50 เช่นกัน ทีนี้เราเปิดไฟล์งานในเครื่องของเรา สามารถที่จะเห็นข้อมูลที่นาย ก และ ข คีย์ได้หรือเปล่าครับ หรือต้องมีชีทที่เก็บข้อมูลที่แต่ละคนคีย์ถึงจะเป็นเชลเดียวกันก็ตาม
ปล. ผมไม่มีความรู้ในเรื่องนี้เลยครับ
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Thu Aug 02, 2012 11:16 pm
by snasui

การ Share File ตามกระทู้นี้หมายถึงให้เก็บไฟล์นั้นไว้ที่เครื่องใดเครื่องหนึ่ง แล้วสามารถเข้าใช้งานโดยเครื่องอื่น ๆ ได้ไม่เกิน 255 คนพร้อมกัน กรณีมีการคีย์เซลล์เดียวกันโปรแกรมจะเก็บข้อมูลไว้ทั้งหมดครับว่าใครคีย์เซลล์ไหนบ้าง คีย์ค่าใด วัน เวลาใด ผู้ที่เป็น Admin ของไฟล์นั้นสามารถที่จะยอมรับหรือปฏิเสธค่าที่คีย์ได้ทุกเวลาที่ต้องการ
กรณีที่นำไฟล์ที่ Share ไปไว้ในเครื่องของ User คนละเครื่อง เราสามารถนำไฟล์นั้นกลับมา Merge กันได้เช่นกัน เมื่อ Merge กันแล้วหากมีการคีย์เซลล์เดียวกันโปรแกรมก็จะเก็บข้อมูลเอาไว้ ผู้ที่ Merge สามารถที่จะยอมรับหรือปฏิเสธค่าใด ๆ ได้เหมือนกับกรณีแรก ดูตัวอย่างเพิ่มเติมที่นี่ครับ
http://www.gcflearnfree.org/excel2010/extra/63
Re: สอบถามครับ เรื่อง vba สั่งให้ปิด-เปิด wb เดิมขึ้นมาใหม่โ
Posted: Fri Aug 03, 2012 12:01 am
by wisit
ขอบคุณครับอาจารย์ เดี่ยวผมจะลองศึกษาดูครับ