Page 1 of 2

ลิงค์ข้อมูลข้ามชีท

Posted: Tue Oct 29, 2013 6:06 pm
by มัคกี้เม้า
อยากให้ เซลล์ B1,B2,B3 ลิงค์กับชีทที่ชื่อเหมือนกัน เช่น B1 จะคู่กับชีทชื่อลำไย เป็นต้น โดยเวลาที่คลิกที่ชื่อลำไยอยากให้มันเด้งขึ้นมาเป็นชีทนั้นเลยคะ
ลิงค์ข้ามชีท.xls

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Tue Oct 29, 2013 6:32 pm
by bank9597
มัคกี้เม้า wrote:อยากให้ เซลล์ B1,B2,B3 ลิงค์กับชีทที่ชื่อเหมือนกัน เช่น B1 จะคู่กับชีทชื่อลำไย เป็นต้น โดยเวลาที่คลิกที่ชื่อลำไยอยากให้มันเด้งขึ้นมาเป็นชีทนั้นเลยคะ
ลิงค์ข้ามชีท.xls
:D ใช้ hyperlink ได้ครับ

คลิ๊กขวาที่เซลล์ต้องการ เลือก hyperlink เลือก pace in this document เลือกชีทที่ต้องการลิงค์ไปหา กด Ok

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Tue Oct 29, 2013 6:43 pm
by มัคกี้เม้า
ขอบคุณคะ คุณแบงค์แต่ว่ามีปัญหาอยู่นะคะว่าถ้าใช้ Hyperlink แล้วจะไม่สามารถดูได้หมดทุกคนยกเว้นเจ้าของเครื่อง อยากให้ทุกคนดูได้เหมือนกันเนื่องจากต้องส่งข้อมูลนี้ทุกเดือนคะ ขอบคุณคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Tue Oct 29, 2013 6:59 pm
by มัคกี้เม้า
มีอีกข้อคะ ไม่ต้องการให้เห็นชีทที่ชื่อลำไยจะซ่อนเอาไว้คะ ให้เห็นแค่ Sheet1 เท่านั้นคะต้องทำอย่างไรคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Tue Oct 29, 2013 7:03 pm
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะ คุณแบงค์แต่ว่ามีปัญหาอยู่นะคะว่าถ้าใช้ Hyperlink แล้วจะไม่สามารถดูได้หมดทุกคนยกเว้นเจ้าของเครื่อง อยากให้ทุกคนดูได้เหมือนกันเนื่องจากต้องส่งข้อมูลนี้ทุกเดือนคะ ขอบคุณคะ
:D หากเป็นเช่นนั้น ก็ต้องใช้ VBA ครับ สามารถทำได้ไม่ยากครับ

ตัวอย่างโค๊ด เช่น

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
sheets("ลำไย").activate
End If
End Sub
ลองนำไปปรับเองครับ

ส่วนการซ่อนชีทนั้น ก็ต้องใช้ VBA ครับ ยังไงต้องเขียนมาเองก่อนครับ ผมช่วยได้ไม่มากไปกว่านี้ เพราะจะผิดกฏฟอรั่มครับ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 2:57 pm
by มัคกี้เม้า
ขอบคุณคะสำหรับคำแนะนำ แต่ว่าการเขียนโค้ดนั้นความรู้เรื่องนี้น้อยอยู่คะ มีสูตรอะไรที่แทนการเขียนโค้ดหรือไม่คะ เนื่องจากต้องการใช้ด่วนคะ เพราะว่าชีทย่อย ในไฟล์เดียวกันนั้นค่อนข้างเยอะคะ อยากทำหน้าหลักที่ sheet 1 รบกวนด้วยนะคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 3:31 pm
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะสำหรับคำแนะนำ แต่ว่าการเขียนโค้ดนั้นความรู้เรื่องนี้น้อยอยู่คะ มีสูตรอะไรที่แทนการเขียนโค้ดหรือไม่คะ เนื่องจากต้องการใช้ด่วนคะ เพราะว่าชีทย่อย ในไฟล์เดียวกันนั้นค่อนข้างเยอะคะ อยากทำหน้าหลักที่ sheet 1 รบกวนด้วยนะคะ
สำหรับการลิงค์ข้ามไฟลต้องใช้ VBA เท่านั้นครับ สูตรไม่สามารถสั่งงานให้โชว์ชีทได้

คุณต้องเขียนมาเองครับ ผมแนะนำได้เฉพาะโค๊ดตัวอย่าง เช่น

Code: Select all

Sub activateSheet()
'ใส่ชื่อชีทลงไป
    Sheets("ลำไย").Activate
End Sub

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 4:18 pm
by มัคกี้เม้า
Sub activateSheet()
Sheets ("Sheet1").select
Sheets("ลำไย").Activate
End Sub

ใช่หรือเปล่าคะ ต้องใส่ชื่อหน้าหลักเข้าไป หรือว่าเป็นชื่อชีทลำไยคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 5:04 pm
by joo
มัคกี้เม้า wrote:มีอีกข้อคะ ไม่ต้องการให้เห็นชีทที่ชื่อลำไยจะซ่อนเอาไว้คะ ให้เห็นแค่ Sheet1 เท่านั้นคะต้องทำอย่างไรคะ
:D หากต้องการซ่อนซีทลองศึกษาจากลิงค์นี้ดูครับ http://www.snasui.com/viewtopic.php?f=3&t=1743

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 5:11 pm
by bank9597
มัคกี้เม้า wrote:Sub activateSheet()
Sheets ("Sheet1").select
Sheets("ลำไย").Activate
End Sub

ใช่หรือเปล่าคะ ต้องใส่ชื่อหน้าหลักเข้าไป หรือว่าเป็นชื่อชีทลำไยคะ
:D เปิดไฟล์ แล้ว กด Alt+F11 จะปรากฏหน้า VBE ขึ้นมา

ไปที่แท็บ Insert > Module
ในช่องว่าง ใส่โค๊ด

Code: Select all

Sub Lumyai()
    Sheets("ลำไย").Activate
End Sub
กลับมาที่ Sheet1 ไปที่ Insert > Shapes เลือกช่งสี่เหลี่ยม แล้ววาดสี่เหลี่ยมลงในเซลล์หลังคำว่า ลำไย
คลิีกขวาที่รูปสี่เหลี่ยมที่สร้างขึ้น เลือก Assign Macro > Lumyai >OK

ทดสอบคลิ๊กที่ช่องสี่เหลี่ยม

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 7:16 pm
by snasui
มัคกี้เม้า wrote:ขอบคุณคะ คุณแบงค์แต่ว่ามีปัญหาอยู่นะคะว่าถ้าใช้ Hyperlink แล้วจะไม่สามารถดูได้หมดทุกคนยกเว้นเจ้าของเครื่อง อยากให้ทุกคนดูได้เหมือนกันเนื่องจากต้องส่งข้อมูลนี้ทุกเดือนคะ ขอบคุณคะ
:shock: ปกติการ Link ข้ามชีทแบบ Hyperlink ควรจะใช้ได้กับทุกเครื่องครับ

กรณีต้องการใช้สูตรที่ B1 คีย์สูตร

=HYPERLINK("[ลิงค์ข้ามชีท.xls]"&INDEX({"ลำไย";"มะม่วง";"เงาะ"},ROWS(B$1:B1))&"!A1",INDEX({"ลำไย";"มะม่วง";"เงาะ"},ROWS(B$1:B1)))

Enter > Copy ลงด้านล่าง

ส่วนการซ่อนชีทสามารถเข้าเมนู Tools > Options > View > ปลดเครื่องหมายที่ Sheet tab

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 7:38 pm
by มัคกี้เม้า
ทำตามที่แนะนำแล้วคะได้ผลที่ต้องการแล้ว ดีใจมากๆๆๆคะ ขอบคุณนะคะ
ส่วนที่ล็อคชีส ยังงงและสับสนในหน้าที่2 เพราะว่า
จะเลือกทำแบบไหนที่เป็นต้นแบบเอามาประยุกต์คะ
ตรงที่ขึ้นต้นด้วย
Sub SaveToDatastore()
ActiveSheet.Unprotect Password:="240130" '<==UnProtect
Sheets("DataStore").Unprotect Password:="240130"
End If
Sheets("DataStore").Protect Password:="240130" '<==Protect
ActiveSheet.Protect Password:="240130" '<==UnProtect
End Sub
มาประยุกต์เป็นชีทลำไย
Sub SaveToLumyai()
ActiveSheet.Unprotect Password:="240130" '<==UnProtect
Sheets("Lumyai").Unprotect Password:="240130"
End If
Sheets("Lumyai").Protect Password:="240130" '<==Protect
ActiveSheet.Protect Password:="240130" '<==UnProtect
End Sub

จากที่อาจารย์ท่านยกตัวอย่างมาคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 7:46 pm
by snasui
:D ช่วยโพสต์ Code ให้แสดงเป็น Code จะได้สะดวกต่อการอ่านและการ Copy ไปทดสอบ ดูวิธีการโพสต์ให้แสดงเป็น Code ได้ที่ Link นี้ครับ viewtopic.php?f=2&t=1187

Code ที่ยกมานั้นไม่น่าจะทำงานถูกต้อง เพราะมี End If แต่ไม่มี If

การจะมี End If ได้ต้องมี If อยู่ก่อนหน้านั้น

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Wed Oct 30, 2013 7:51 pm
by bank9597
Code ที่ยกมานั้นไม่น่าจะทำงานถูกต้อง เพราะมี End If แต่ไม่มี If

การจะมี End If ได้ต้องมี If อยู่ก่อนหน้านั้น

:lol: :lol: :lol: :lol: :lol:

อาจารย์เห็นใจเค้าหน่อยน่ะครับ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Thu Oct 31, 2013 9:05 am
by มัคกี้เม้า
ช่วยแนะนำด้วยคะเมื่อคืนนอนคิดทั้งคืน คิดไม่ออกเลยคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Thu Oct 31, 2013 11:25 am
by bank9597
:D ลองดูตามไฟล์แนบครับ ผมปรับและเพิ่มโค๊ดให้แล้ว คิดว่าสามารถนำไปปรับใช้เองได้ ไม่น่าจะยากครับ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Fri Nov 01, 2013 5:28 pm
by มัคกี้เม้า
ขอบคุณคะคุณแบงค์ ในกรณีเครื่องที่เป็นโน๊ตบุ๊คไม่ใช่ โปรแกรม XP เป็น Vistra จะต้องตั้งค่าเครื่องยังไงคะที่จะให้ Macroรันโปรแกรมได้
ตอนนี้ตั้งค่าเครื่องแล้วแตมันไม่ตอบสนองเลยคะเฉพาะ Vistra นะคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Fri Nov 01, 2013 5:34 pm
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะคุณแบงค์ ในกรณีเครื่องที่เป็นโน๊ตบุ๊คไม่ใช่ โปรแกรม XP เป็น Vistra จะต้องตั้งค่าเครื่องยังไงคะที่จะให้ Macroรันโปรแกรมได้
ตอนนี้ตั้งค่าเครื่องแล้วแตมันไม่ตอบสนองเลยคะเฉพาะ Vistra นะคะ
:lol: Vista น่าจะสะกดแบบนี้ครับ

:lol: หากไฟล์ใช้งานร่วมกันหลายๆเครื่อง ควรมือคู่มือแนบไปด้วยน่ะครับ

ที่ว่ามา น่าจะเกิดจากการไม่เปิดการใช้งาน "มาโคร" ไฟล์ที่มีมาโคร หากเราไม่เปิดการใช้งาน มาโครก็ไม่สามารถทำานได้ครับ ลองดูวิธีเปิดการใช้งานตามลิงค์ด้านล่างครับ

http://portal.edu.chula.ac.th/aboutcomp ... msite=main
http://www.trainer.in.th/forum/index.php?topic=18.0
http://office.microsoft.com/th-th/excel ... 54316.aspx
https://www.google.co.th/#q=%E0%B9%80%E ... 4%E0%B8%A3

ส่วนระบบปฏิบัติการ Vista ไม่สามารถ Run มาโครได้ ผมคิดว่าไม่น่าจะเกี่ยวครับ เพราะมาโครทำงานบนไฟล์ Excel เท่านั้นครับ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Mon Nov 04, 2013 10:38 am
by มัคกี้เม้า
ขอบคุณคะมีเรื่องอยากถาม เกี่ยวกับการปลดล็อคเพื่อเพิ่มชีสเข้าไปแล้วล็อคชีสไว้เหมือนเดิมต้องทำอย่างไรคะ

Re: ลิงค์ข้อมูลข้ามชีท

Posted: Mon Nov 04, 2013 10:45 am
by bank9597
มัคกี้เม้า wrote:ขอบคุณคะมีเรื่องอยากถาม เกี่ยวกับการปลดล็อคเพื่อเพิ่มชีสเข้าไปแล้วล็อคชีสไว้เหมือนเดิมต้องทำอย่างไรคะ
:D ไปที่เมนู Review แล้วกดที่ protect Workbook โปรแกรมก็จะปลดล็อคให้ เนื่องจากผมไม่ได้ใส่รหัสไว้ จากนั้น เพิ่มชีทที่ต้องการ

เมื่อเพิ่มเสร็จแล้ว ก็กดปุ่ม "กลับหน้าแรก" ในชีทใดชีทหนึ่ง ชีทก็จะถูกซ่อนไปเอง

เหตุที่อาจารย์คนควนให้เราเขียน VBA มาก่อนก็เพราะแบบนี้เอง เนื่องจาก VBA ไม่ได้ทำได้ง่าย เหมือนแค่การวางสูตร แต่มันต้องรู้พื้นฐานพอสมควร หากไม่รู้อะไรเลยก็เท่ากับจะต้องจับมือเขียนเลยทีเดียว ทำเองปรับเองไม่ได้ ดังนั้นหากต้องใช้ VBA จำเป็นต้องศึกษามาก่อนอย่างจริงจัง เพื่อจะได้ปรับแก้ไขได้เองตามความเหมาะสมครับ ;)