Page 1 of 1

Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Tue Jan 14, 2020 9:58 am
by wisitsakbenz
เรียน สอบถามอาจารย์ครับ

วิธีการคือ ไปที่ Sheet "Menu" > คลิกปุ่ม "Menu" ใน UserForm1 : Combobox

ถ้าเลือก Mode of Medevac เป็น Air Ambulance คลิกปุ่ม Preview ข้อมูลในส่วนของ TERM AND CONDITIONS (บรรทัดที่ 60) จะแสดงข้อมูลของ Air Ambulance และ Commercial Flight จะไม่นำมาแสดง
แต่ถ้าเลือก Mode of Medevac เป็น Commercial Flight คลิกปุ่ม Preview ข้อมูลในส่วนของ TERM AND CONDITIONS (บรรทัดที่ 60) จะแสดงข้อมูลของ Commercial Flight และ Air Ambulance จะไม่นำมาแสดง

หมายเหตุ : Code จะอยู่ใน UserForm1 ครับ

ต้องปรับ Code อย่างไรบ้างครับ ขอบคุณครับ

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Tue Jan 14, 2020 8:09 pm
by snasui
:D ตอนนี้คลิกปุ่ม Preview แล้ว Error กรุณาแก้ไขแล้วแนบมาใหม่อีกรอบครับ

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Wed Jan 15, 2020 8:33 am
by wisitsakbenz
แก้ไขไฟล์ให้แล้วครับอาจารย์ ขอบคุณครับ

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Wed Jan 15, 2020 11:24 am
by wisitsakbenz

Code: Select all

Sub GetData()

 Sheets("Forms").Range("A64:J90").ClearContents

            Dim rFind As Range, rDataAll As Range
            Dim r As Range, rTarget As Range
            Dim ws As Worksheet, i As Integer
                Set ws = Worksheets("Forms")
                Set rFind = Sheets("Forms").Range("D11")
                Application.EnableEvents = False
                ws.Range("A64:J90").ClearContents
                
                If Sheets("Forms").Range("D11") = "" Then Exit Sub
                
                With Sheets("List")
                    Set rDataAll = .Range("B38", .Range("B" & Rows.Count).End(xlUp))
                    If .Columns("B:B").Find(rFind, LookIn:=xlValues) Is Nothing Then
                        MsgBox ("ไม่มีรายการนี้")
                        Exit Sub
                    End If
                End With
                i = 64
                For Each r In rDataAll
                    If r = rFind Then
                            ws.Range("B" & i).Resize(1, 3).Value = _
                            r.Offset(0, 1).Resize(1, 3).Value
                        i = i + 1
                    End If
                Next r
                Application.EnableEvents = True
           ' MsgBox "Get data has finished."
            Set ws = Nothing
           Set rFind = Nothing
           Set rDataAll = Nothing
          
End Sub
เรียนอาจารย์ครับ ผมลองเขียน Code ดู

ไปที่ Sheet "Menu" > คลิก Menu > เลือก Mode of Medevac เป็น Commercial Flight คลิกปุ่ม Preview
ไปที่ Sheet "Forms" ข้อมูลจะแสดงใน Line ที่ 64 ปกติ
คลิกปุ่ม "New" > Preview เพื่อ Get ค่าต่าง ๆ ใน Forms ให้เป็นค่าว่าง หลังจากนั้น
เลือก Mode of Medevac เป็น Air Ambulance > Previewข้อมูลจะไม่แสดงใน Line ที่ 64

ต้องปรับ Code อย่างไรบ้างครับ ขอบคุณครับ

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Wed Jan 15, 2020 5:31 pm
by snasui
wisitsakbenz wrote: Wed Jan 15, 2020 11:24 am ไปที่ Sheet "Menu" > คลิก Menu > เลือก Mode of Medevac เป็น Commercial Flight คลิกปุ่ม Preview
ไปที่ Sheet "Forms" ข้อมูลจะแสดงใน Line ที่ 64 ปกติ
:D ค่อย ๆ ถามตอบไปครับ

ผมทดสอบแล้วไม่พบว่าข้อมูลแสดงใน Line 64 ตามที่แจ้งมาครับ

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Thu Jan 16, 2020 8:39 am
by wisitsakbenz
ใน sheet"Form" นะครับอาจารย์ snasui

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Thu Jan 16, 2020 5:20 pm
by snasui
:lol: มันจะแสดงอีกไม่ได้เพราะมีการ Clear ทิ้งไปแล้วที่บรรทัด Range("A64:J90").ClearContents ของ Procedure Private Sub InputNew_Click() ถ้าจะให้คงอยู่ก็ต้องไม่ Clear ทิ้งครับ

Re: Macro : ข้อมูลอิงตาม Combobox ที่เลือก

Posted: Fri Jan 17, 2020 8:22 am
by wisitsakbenz
ได้แล้วครับอาจารย์ snasui ขอบคุณมากครับ