Page 1 of 1

การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Wed Aug 19, 2015 10:00 pm
by teawssks
สอบถามหน่อยค่ะ
ถ้าเราต้องการให้ ข้อมูลเปลี่ยนไป ตาม ComboBox สามารถเขียนสูตร VBA ได้อย่างไรคะ
ตัวอย่างเช่น

ใน Combobox มีค่า
= Saraburi
= Bangkok
= Lopburi

Sheet มีทั้งหมด 3 sheet คือ
= Saraburi
= Bangkok
= Lopburi

โดยข้อมูลในแต่ละ Sheet ไม่เท่ากัน

เราสามารถโชว์ข้อมูล แต่ละ Sheet โดยการเลือก Combobox ใน Sheet แรก Sheet เดียวได้มั้ยค่ะ

ขอบคุณสำหรับความรู้ดีๆค่ะ

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Wed Aug 19, 2015 10:39 pm
by snasui
:D สำหรับการใช้งาน VBA ต้องทำตามกฎข้อ 5 ด้านบนครับ :roll:

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Thu Aug 20, 2015 9:09 am
by teawssks
Private Sub ComboBox1_Change()

If ComboBox1.Value = "Saraburi" Then
Range("A5:F7").Value = "=Formula1"
End If
If ComboBox1.Value = "Bangkok" Then
Range("Bangkok!A5:F7").Value = "=Formula2"
End If
If ComboBox1.Value = "Lopburi" Then
Range("Lopburi!A5:F7").Value = "=Formula2"
End If

End Sub

ที่เขียนได้ Flow ประมานนี้ค่ะ
รบกวนชี้แนะด้วยนะคะ
ขอบคุณมากค่ะ

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Thu Aug 20, 2015 9:20 am
by snasui
:D แนบไฟล์มาด้วยครับ อ่านกฎข้อ 5 ด้านบนประกอบด้วยสำหรับการโพสต์ Code ครับ :roll:

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Thu Aug 20, 2015 10:58 am
by teawssks

Code: Select all

Private Sub ComboBox1_Change()

If ComboBox1.Value = "Saraburi" Then
Range("A5:F7").Value = "=Formula1"
End If
If ComboBox1.Value = "Bangkok" Then
Range("Bangkok!A5:F7").Value = "=Formula2"
End If
If ComboBox1.Value = "Lopburi" Then
Range("Lopburi!A5:F7").Value = "=Formula2"
End If

End Sub
รบกวนด้วยนะคะอาจารย์

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Thu Aug 20, 2015 11:27 am
by snasui
:D ไม่พบ Code ในไฟล์แนบครับ

การจะแนบ Code มาได้นั้นไฟล์แนบจะต้องมีนามสกุลเป็น .xlsm เป็นอย่างน้อย ไม่ใช่ .xlsx ครับ

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Thu Aug 20, 2015 11:34 am
by teawssks
:( ขอโทษนะคะ

รบกวนตรวจสอบอีกทีค่ะ ^^ :D

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก

Posted: Thu Aug 20, 2015 11:49 am
by snasui
:D Combobox ควรไว้ในชีทสำหรับแสดงผล ไม่ใช่ไว้ในชีท Saraburi ครับ

ตามด้านล่างนี้ถือว่าชีท Saraburi คือชีทที่ใช้ในการแสดงผล มีลำดับการกำหนดค่าดังนี้ครับ
  1. เข้าเมนู Developer > Design Mode หากไม่มีเมนู Developer ให้กดแป้น Ctrl+T, O > Cusomize Ribbon > ทำเครื่องหมายที่เมนู Developer > OK
  2. คลิกขวาที่ Combobox > Properties > ตรง ListFillRange คีย์ Saraburi!H1:H3 > คลิกปุ่ม Design Mode เพื่อยกเลิก
  3. ที่ชีท Saraburi เซลล์ H1:H3 กรอกชื่อชีท Saraburi, Bangkok, Lopburi ตามลำดับ
  4. ปรับ Code เป็นด้านล่าง

    Code: Select all

    Private Sub ComboBox1_Change()
        Range("a1:f100").Value = Sheets(ComboBox1.Value).Range("A1:F100").Value
    End Sub