: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

เรียงลำดับในComboBox

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

เรียงลำดับในComboBox

#1

Post by yodpao.b »

อยากถามอาจารย์ว่าเมื่อคลิกเลือก ComboBox จะปรากฏรายการขึ้นมา ถ้าต้องการให้ในรายการนั้นเรียงลำดับจากน้อยไปมากเขียนโค้คอย่าไรดีครับ
โคดเดิมด้านล่าง

Code: Select all

Private Sub UserForm_Initialize()
    Sheets("Data_Seminar").Select
    Range("I4").Select
    Do While Not IsEmpty(ActiveCell.Value)
                    ComboBox111.AddItem ActiveCell.Value
                    ActiveCell.Offset(1, 0).Select
    Loop

End Sub
1.GIF
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เรียงลำดับในComboBox

#2

Post by bank9597 »

:D ปรัีบโค๊ดค่อนข้างยากอยู่ครับ
ลองเรียงข้อมูลใน "Data_Seminar" น่าจะง่ายกว่าน่ะครับ :D

หรือยังไง ลองส่งไฟล์แนบมาดูครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: เรียงลำดับในComboBox

#3

Post by yodpao.b »

ลัษณะที่ว่า ลองเรียงข้อมูลใน "Data_Seminar" ดีกว่าไหม
ผมเคยทำแล้วครับคือ
1.copy คอลัมตรงการนั้นไปวางที่คอลัมอื่นแล้วสั่งให้คอลัมนั้นเรียงลำดับ
2.แล้วจึงสั่งให้ ComboBox ไปมองหา
จบขั้นตอน
แต่ข้อเสียอยู่ที่ ถ้ามีข้อมูล 10000 ข้อมูล ก็เท่ากับว่า ต้องมีข้อมูลอีก1คอลัม=10000record
จะทำให้ไฟล์มีขนาดใหญ่โดยไม่จำเป็น และที่สำคัญผมต้องทำกับหน้าที่มีข้อมูลดิบเกือบทุกหน้า
จะทำให้ไฟล์ใหญครับ
พร้อมกันนี้ได้แนบไฟล์มาด้วยครับ
เรียงลำดับในComboBox.xls
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เรียงลำดับในComboBox

#4

Post by bank9597 »

:D รู้สึกว่าจะยากไปสำหรับผมแล้วครับ คงต้องพึ่งอาจารย์แล้วครับ

แต่แนะนำนิดนึงครับ ในการบันทึกข้อมูลมาจัดเก็บนั้น ผมเข้าใจว่าคุณจะทำการบันทึกผ่านฟอร์มที่สร้างขึ้นมา ทีนี้เมื่อมองรูปแบบการจัดเรียงแล้ว ยังสลับกันอยู่ เข้าใจว่าในขั้นตอนการบันทึกข้อมูลนั้นไม่มีระบบ RUN ตัวเลขให้เป็นไปตามลำดับ ดังนั้นเพื่อให้ทำงานง่ายและเราไม่ต้องเพิ่มเติมโค๊ดบ่อยๆ การจัดเก็บข้อมูลก็น่าจะเป็นสิ่งที่ควรจัดการให้ดีเป็นเบื้อนต้นก่อนครับ :D

ยังไงจะลองๆหาวิธีช่วยอีกแรงครับ :mrgreen:
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เรียงลำดับในComboBox

#5

Post by bank9597 »

:D ผมได้ลองปรับโค๊ดมาให้ครับ
เป็นการแก้ไขด้วยวิธีที่ค่อนข้างจะลักไก่ไปนิด เข้าใจว่าคุณต้องการเรียงลำดับของชื่อ โดยยึดตัวเลขท้ายประโยคเป็นหลัก เวลาเราทำการ Filter จึงทำได้ยาก (สำหรับผม)
ผมเลยเปลี่ยนมาทำ Filter ในช่อง ID แทน สามารถใช้งานได้ ยังไงลองนำไปปรับแต่งเองอีกหน่อย ก็น่าจะใช้ได้แล้วครับ :D

อาจารย์จะเน้นมากครับ หากเราต้องการทำงานกับ VBA เราจึงพยายามบันทึกมาโครครับ :mrgreen:
สำเนาของ เรียงลำดับในComboBox.xls
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: เรียงลำดับในComboBox

#6

Post by yodpao.b »

bank9597 wrote::D รู้สึกว่าจะยากไปสำหรับผมแล้วครับ คงต้องพึ่งอาจารย์แล้วครับ

แต่แนะนำนิดนึงครับ ในการบันทึกข้อมูลมาจัดเก็บนั้น ผมเข้าใจว่าคุณจะทำการบันทึกผ่านฟอร์มที่สร้างขึ้นมา ทีนี้เมื่อมองรูปแบบการจัดเรียงแล้ว ยังสลับกันอยู่ เข้าใจว่าในขั้นตอนการบันทึกข้อมูลนั้นไม่มีระบบ RUN ตัวเลขให้เป็นไปตามลำดับ ดังนั้นเพื่อให้ทำงานง่ายและเราไม่ต้องเพิ่มเติมโค๊ดบ่อยๆ การจัดเก็บข้อมูลก็น่าจะเป็นสิ่งที่ควรจัดการให้ดีเป็นเบื้อนต้นก่อนครับ :D

ยังไงจะลองๆหาวิธีช่วยอีกแรงครับ :mrgreen:
รบกวนขอตัวอย่างการจัดเก็บที่เป็นระบบด้วยครับ ขอบคุณครับ
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: เรียงลำดับในComboBox

#7

Post by yodpao.b »

รบกวนอาจาร์ยช่วยดูกระทู้ที่เมื่อ: 17 พ.ย. 2011 07:51 หน่อยครับ ช่วยแสดงความคิดเห็นด้วยครับ
พอจะทำได้ไหมครับหรือว่าต้องแก้ปํญหาแบบที่คูณbank9597 กล่าวไว้
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เรียงลำดับในComboBox

#8

Post by bank9597 »

:D ตอบยากครับ ผมคิดว่ามันไม่มีรูปแบบตายตัว สำคัญตรงที่จะนำไปใช้อย่างไรและยืดหยุ่นมากน้อยแค่ไหนครับ หากเราเตรียมข้อมูลไว้ดี เวลานำไปใช้ก็จะง่ายไปตามลำดับครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เรียงลำดับในComboBox

#9

Post by snasui »

:D ลองดูตัวอย่างการ Sort ใน ComboBox ของ Tom ที่นี่แล้วปรับใช้ดูครับ http://www.mrexcel.com/forum/showthread.php?t=58261
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: เรียงลำดับในComboBox

#10

Post by yodpao.b »

อาจารย์ช่วยดูหน่อยครับ
ผมได้ลองทำดูแล้วแต่ข้อมูลมันไม่โชว์อะไรเลยครับผม
code
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
With ComboBox1
.Clear
.List = Sheets("Sheet1").Range("D4:D35").Value
Dim unsorted As Boolean, i As Integer, temp As Variant
unsorted = True
Do
unsorted = False
For i = 0 To UBound(.List) - 1
If .List(i) > .List(i + 1) Then
temp = .List(i)
.List(i) = .List(i + 1)
.List(i + 1) = temp
unsorted = True
Exit For
End If
Next i
Loop While unsorted = True
End With
Application.ScreenUpdating = True
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: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: เรียงลำดับในComboBox

#11

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub UserForm_Initialize()
    Dim unsorted As Boolean, i As Integer
    Dim r As Range, temp As Variant
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        Set r = .Range("D4", .Range("D" & Rows.Count) _
            .End(xlUp))
    End With
    With ComboBox1
        .Clear
        .List = r.Value
        unsorted = True
        Do
            unsorted = False
            For i = 0 To UBound(.List) - 1
                If .List(i) > .List(i + 1) Then
                    temp = .List(i)
                    .List(i) = .List(i + 1)
                    .List(i + 1) = temp
                    unsorted = True
                    Exit For
                End If
            Next i
        Loop While unsorted = True
    End With
    Application.ScreenUpdating = True
End Sub
yodpao.b
Gold
Gold
Posts: 1608
Joined: Tue Jul 19, 2011 2:47 pm
Excel Ver: 2013,excel standard

Re: เรียงลำดับในComboBox

#12

Post by yodpao.b »

ขอคุณมากมากครับผมจะเริ่มแก้ไข หมดคำถามแล้วครับจะนำข้อมูลที่ได้จากอาจาร์ยและจากคุณbank9597 ในอาทิตย์นี้ ไปปรับใช้กับโปรแกรมที่เขียนขึ้นใหม่
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: เรียงลำดับในComboBox

#13

Post by bank9597 »

:D สู้ๆครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply