:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#1

Post by kio2002 »

ที่ procedure Private Sub TextBox1_Change()
ผมต้องการค้นหารายการสินค้าที่ textbox1 รายการสินค้าที่ต้องการให้เริ่มค้นหาอยู่ที่เซลล์ M15 ลงมา
แล้วนำรายการสินค้ามาแสดงที่ listbox1
สมมุติ พิมพ์คำว่า "ส้ม" ก็ให้นำรายการสินค้าที่มีคำว่า ส้ม มาแสดงที่ listbox1
ตอนนี้ติดปัญหาที่ พิมพ์ชื่อรายการสินค้าไปแล้ว listbox1 ไม่แสดงผล
ขอบคุณครับ

Code: Select all

Private Sub TextBox1_Change()
Dim i As Long
TextBox1.Text = StrConv(TextBox1.Text, vbProperCase)
ListBox1.Clear
For i = 15 To Application.WorksheetFunction.CountA(Sheet1.Range("M:M"))
M = Len(TextBox1.Text)
If Left(Sheet1.Cells(i, 13).Value, M) = Left(TextBox1.Text, M) Then
ListBox1.AddItem Sheet1.Cells(i, 13).Value
ListBox1.List(ListBox1.ListCount - 1, 13) = Sheet1.Cells(i, 13).Value
End If
Next i
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#2

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim r As Long
    With Sheets("sheet1")
        For r = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(r) Then
                .Range("C" & .Rows.Count).End(xlUp).Offset(1, 0).Value = ListBox1.List(r)
            End If
        Next r
    End With
End Sub

Private Sub TextBox1_Change()
    Dim r As Range, rAll As Range
    If TextBox1.Text <> "" Then
        ListBox1.Clear
        With Sheets("Sheet1")
            Set rAll = .Range("m15", .Range("m" & .Rows.Count).End(xlUp))
        End With
        For Each r In rAll
            M = Len(TextBox1.Text)
            If Left(r.Value, M) = Left(TextBox1.Text, M) Then
                ListBox1.AddItem r.Value
            End If
        Next r
    End If
End Sub
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#3

Post by kio2002 »

เรียนอาจารย์ครับ ที่ procedure Private Sub TextBox1_Change() ได้ตามที่ต้องการแล้วครับ

แต่ยังติดตรง precedure Private Sub CommandButton1_Click()
ผมต้องการให้ส่งรายการสินค้าที่เลือกจาก listbox1 เริ่มส่งไปยังเซลล์ C15 และลงมาเรื่อยๆ
แต่ตอนนี้มันส่งรายการสินค้าไปแค่ที่เซลล์ C15 และ C16 เท่านั้น เซลล์C17 ลงมา มันไม่ยอมส่ง

Code: Select all

Private Sub CommandButton1_Click()
    Dim r As Long
    With Sheets("sheet1")
        For r = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(r) Then
                .Range("C15").Offset(Application.CountA(.Range("C15:c" & .Rows.Count).End(xlUp).Offset(1, 0))).Value = ListBox1.List(r)
            End If
        Next r
    End With
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#4

Post by snasui »

:D Code ที่ผมปรับไปติดปัญหาตรงไหน อย่างไร ช่วยนำไปทดสอบแล้วแจ้งที่เป็นปัญหา จะได้ตอบต่อไปจากนั้นครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#5

Post by kio2002 »

ขออภัยครับ ผมนำไปใช้แล้ว แต่ลืมแจ้งครับ
codeของอาจารย์ กดปุ่มบันทึกแล้ว เริ่มส่งรายการสินค้าไปยังเซลล์ C48 ลงมาเรื่อยๆ
ผมอยากให้เริ่มส่งรายการสินค้าไปยังเซลล์ C15 เป็นอันดับแรก และลงมาเรื่อยๆจนถึงเซลล์ที่กำหนด คือเซลล์ C25 ครับ
แต่หากบันทึกรายการสินค้าถึงเซลล์ C26 อยากให้แสดง MsgBox และจบคำสั่งครับ
ที่ต้องการประมาณนี้ครับ
You do not have the required permissions to view the files attached to this post.
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#6

Post by kio2002 »

snasui wrote::D Code ที่ผมปรับไปติดปัญหาตรงไหน อย่างไร ช่วยนำไปทดสอบแล้วแจ้งที่เป็นปัญหา จะได้ตอบต่อไปจากนั้นครับ
ขออภัยครับ ผมนำไปใช้แล้ว แต่ลืมแจ้งครับ
codeของอาจารย์ กดปุ่มบันทึกแล้ว เริ่มส่งรายการสินค้าไปยังเซลล์ C48 ลงมาเรื่อยๆ
ผมอยากให้เริ่มส่งรายการสินค้าไปยังเซลล์ C15 เป็นอันดับแรก และลงมาเรื่อยๆจนถึงเซลล์ที่กำหนด คือเซลล์ C25 ครับ
แต่หากบันทึกรายการสินค้าถึงเซลล์ C26 อยากให้แสดง MsgBox และจบคำสั่งครับ
ที่ต้องการประมาณนี้ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
logic
Gold
Gold
Posts: 1506
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#7

Post by logic »

ลองดูว่าใช้ได้ไหมครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim r As Long
    With Sheets("sheet1")
        If .Range("c25").Value <> "" Then
            MsgBox "Not record"
            Exit Sub
        End If
        For r = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(r) Then
                .Range("C26").End(xlUp).Offset(1, 0).Value = ListBox1.List(r)
            End If
        Next r
    End With
End Sub
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#8

Post by kio2002 »

แบนี้แหละครับที่ต้องการ ได้ความรู้ใหม่ สามารถใช้ Exit sub ออกจากคำสั่งได้ก่อนจบ procedure ได้ด้วย
ขอบคุณอาจารย์ และสมาชิก logic มากๆครับ
จะเอาไปปรับใช้ หากติดตรงไหน จะมาสอบถามเพิ่มครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#9

Post by kio2002 »

สอบถามสมาชิกทุกท่านครับ
Listbox กรณีที่มีสินค้าเยอะๆ มันจะขึ้น scroll bar มาให้ มีวิธีที่ทำให้ใช้ลูกกลิ้งเม้าท์เลื่อนขึ้น เลื่อนลงได้ไหมครับ
ตามรูปแนบครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ค้นหารายการสินค้าจากTextBoxแล้วนำรายการสินค้ามาแสดงที่ListBox

#10

Post by snasui »

:D คงต้องพึ่ง Windows API ลองดู LInk ย่อยใน Link ด้านล่างนี้เป็นตัวอย่างครับ

https://www.google.co.th/search?rlz=1C1 ... MnutQVLkDo
Post Reply