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

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

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

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

#1

Postby kio2002 » Sat Oct 28, 2017 10:23 pm

ที่ 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: 22371
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

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

#2

Postby snasui » Sat Oct 28, 2017 11:05 pm

: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: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#3

Postby kio2002 » Sun Oct 29, 2017 3:00 pm

เรียนอาจารย์ครับ ที่ 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: 22371
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

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

#4

Postby snasui » Sun Oct 29, 2017 3:07 pm

:D Code ที่ผมปรับไปติดปัญหาตรงไหน อย่างไร ช่วยนำไปทดสอบแล้วแจ้งที่เป็นปัญหา จะได้ตอบต่อไปจากนั้นครับ

kio2002
Member
Member
Posts: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#5

Postby kio2002 » Sun Oct 29, 2017 6:49 pm

ขออภัยครับ ผมนำไปใช้แล้ว แต่ลืมแจ้งครับ
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: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#6

Postby kio2002 » Wed Nov 01, 2017 8:26 am

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.

logic
Silver
Silver
Posts: 560
Joined: Thu Mar 18, 2010 1:57 pm

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

#7

Postby logic » Wed Nov 01, 2017 3:42 pm

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

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: 150
Joined: Thu Sep 20, 2012 8:40 am

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

#8

Postby kio2002 » Mon Nov 06, 2017 8:03 pm

แบนี้แหละครับที่ต้องการ ได้ความรู้ใหม่ สามารถใช้ Exit sub ออกจากคำสั่งได้ก่อนจบ procedure ได้ด้วย
ขอบคุณอาจารย์ และสมาชิก logic มากๆครับ
จะเอาไปปรับใช้ หากติดตรงไหน จะมาสอบถามเพิ่มครับ


Return to “Excel”

Who is online

Users browsing this forum: No registered users and 32 guests