Page 1 of 1

ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 11:03 am
by wisitsakbenz
เรียนอาจารย์

ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย
ต้องปรับสูตร หรือเขียน Code อย่างไรครับ
ขอบคุณครับ

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 12:58 pm
by puriwutpokin
แสดงข้อมูลที่เลือกความหมายคือ ให้อะไรไปแสดงที่ไหนจากข้อมูลไหนครับ ลองทำตัวอย่างคำตอบและข้อมูลที่ว่ามาดูครับจะได้สะดวกต่อการตอบของเพื่อนๆสมาชิกครับ

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 1:25 pm
by wisitsakbenz
เรียนอาจารย์

ค้นหาชื่อ เช่น A
ทำงานที่จะแสดง > โรงเรียน (โดยใช้สูตร Vlookup)
อยากให้ Optionbutton แสดง โรงเรียน ด้วย

ค้นหาชื่อ เช่น B
ทำงานที่จะแสดง > โรงพยาบาล (โดยใช้สูตร Vlookup)
อยากให้ Optionbutton แสดง โรงพยาบาลด้วย

ขอบคุณครับ

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 2:33 pm
by puriwutpokin
ใช้เป็น Event ดูครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D2") = "A" Then
OptionButton2.Value = True
ElseIf Range("D2") = "B" Then
OptionButton1.Value = True
ElseIf Range("D2") = "C" Then
OptionButton3.Value = True
End If
End Sub

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 3:13 pm
by wisitsakbenz
เรียน อาจารย์

น่าจะเข้าใจผิดครับ
เช่น
ค้นหาชื่อ เช่น A
ทำงานที่ (C4) จะแสดง > โรงเรียน (โดยใช้สูตร Vlookup)

ค้นหาชื่อ เช่น B
ทำงานที่ (C4) จะแสดง > โรงพยาบาล (โดยใช้สูตร Vlookup)

ผมอยากให้ Optionbutton ถูกคลิกตามค่าของ (C4) และสามารถเปลี่ยนค่าได้ ถ้าเลือกที่ทำงานอื่น
ต้องปรับ Code อย่างไรครับ รบกวนด้วยครับ ขอบคุณครับ

Code: Select all

Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then Sheets("Input").Range("C4").Value = "โรงพยาบาล"
End Sub

Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then Sheets("Input").Range("C4").Value = "โรงเรียน"
End Sub

Private Sub OptionButton3_Click()
If OptionButton3.Value = True Then Sheets("Input").Range("C4").Value = "อนามัย"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C4") = "A" Then
OptionButton2.Value = True
ElseIf Range("C4") = "B" Then
OptionButton1.Value = True
ElseIf Range("C4") = "C" Then
OptionButton3.Value = True
End If
End Sub


Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 3:28 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Dim shChn As Boolean

Private Sub OptionButton1_Click()
    Application.EnableEvents = False
    If shChn Then Exit Sub
    If OptionButton1.Value = True Then Sheets("Input").Range("D2").Value = "A"
    Application.EnableEvents = True
End Sub

Private Sub OptionButton2_Click()
    Application.EnableEvents = False
    If shChn Then Exit Sub
    If OptionButton2.Value = True Then Sheets("Input").Range("D2").Value = "B"
    Application.EnableEvents = True
End Sub

Private Sub OptionButton3_Click()
    Application.EnableEvents = False
    If shChn Then Exit Sub
    If OptionButton3.Value = True Then Sheets("Input").Range("D2").Value = "C"
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    shChn = True
    If Target.Address(0, 0) = "D2" Then
        Select Case Me.Range("c4").Value
            Case "โรงพยาบาล"
                Me.OptionButton1.Value = True
            Case "โรงเรียน"
                 Me.OptionButton2.Value = True
            Case "อนามัย"
                 Me.OptionButton3.Value = True
        End Select
    End If
    shChn = False
    Application.EnableEvents = True
End Sub

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 3:58 pm
by wisitsakbenz
เรียน อาจารย์ Snasui

นำ Code ไปแก้ไขแล้ว
ค้นหาชื่อ > A
เลือกเปลี่ยนสถานที่จาก OptionBox พอคลิกเลือกเปลี่ยนสถานที่ ช่องค้นหาจะเปลี่ยนด้วยครับ

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 4:40 pm
by snasui
:D ก็ต้องเป็นเช่นนั้นครับ

ลักษณะคือ
  1. ค่าใน D2 เอาไปแสดงใน C4 ซึ่งเขียนสูตร Vlookup เอาไว้
  2. เอาค่าใน C4 ไปกำหนด Option Button
การเลือก Option ก็ต้องไปเปลี่ยนใน D2 เช่นกัน จะไปเปลี่ยนตรง ๆ ใน C4 ไม่ได้เพราะจะเป็นการทำลายสูตร

ไม่เช่นนั้นต้องออกแบบการทำงานมาใหม่ครับ

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Fri Apr 23, 2021 7:04 pm
by wisitsakbenz
เรียน อาจารย์ snasui

เดี่ยวลองปรับกระบวนการใหม่ดูครับ ไว้เรียนถามใหม่ครับ. ขอบคุณสำหรับคำแนะนำครับ

Re: ค้นหาชื่อ แล้วอยากให้ Optionbutton แสดงข้อมูลที่เลือกด้วย

Posted: Sat Apr 24, 2021 1:06 am
by Bo_ry
แบบนี้มั้ย

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Dim o As OLEObject
    If Target(1).Address = "$D$2" Then
        [C4].Value = Application.VLookup([D2], [Data!A1:B5], 2, 0)
        For Each o In Me.OLEObjects
            o.Object.Value = o.Object.Caption = [C4]
        Next
    End If
End Sub

Private Sub OptionButton1_Click()
    Application.EnableEvents = False
        If OptionButton1.Value Then [C4] = OptionButton1.Caption
    Application.EnableEvents = True
End Sub

Private Sub OptionButton2_Click()
    Application.EnableEvents = False
        If OptionButton2.Value Then [C4] = OptionButton2.Caption
    Application.EnableEvents = True
End Sub

Private Sub OptionButton3_Click()
    Application.EnableEvents = False
        If OptionButton3.Value Then [C4] = OptionButton3.Caption
    Application.EnableEvents = True
End Sub