Page 1 of 1

การเรียงลำดับอัตโนมัติ

Posted: Fri Sep 21, 2012 10:30 am
by jakkrit8015
เรียน อาจารย์และสมาชิกทุกท่าน
เวลาคีย์ข้อมูลเยอะๆ วันที่ต่างกัน คีย์ย้อนหลังบ้าง
อยากจะได้สูตรที่พอเราคีย์เสร็จแล้วมันจะเรียงวันที่ให้อัตโนมัติจากน้อยไปหามาก โดยที่เราไม่ต้องไปคลุมแล้วจัดเรียงข้อมูลทุกครั้ง
ขอบคุณครับ

Re: การเรียงลำดับอัตโนมัติ

Posted: Fri Sep 21, 2012 10:46 am
by bank9597
jakkrit8015 wrote:เรียน อาจารย์และสมาชิกทุกท่าน
เวลาคีย์ข้อมูลเยอะๆ วันที่ต่างกัน คีย์ย้อนหลังบ้าง
อยากจะได้สูตรที่พอเราคีย์เสร็จแล้วมันจะเรียงวันที่ให้อัตโนมัติจากน้อยไปหามาก โดยที่เราไม่ต้องไปคลุมแล้วจัดเรียงข้อมูลทุกครั้ง
ขอบคุณครับ
:lol: เท่าที่เคยใช้เอ็กเซลล์มา ผมยังไม่เห็นการทำเช่นนั้นครับ ลองให้ท่านอื่นมาแนะนำอีกครั้งน่ะครับ

สำหรับแล้วจะแนะนำอย่างนี้ กรณีที่เราจะคีย์ข้อมูลงไปในเซลล์ใดเซลล์หนึ่ง แล้วให้มันจัดเรียงให้นั้น ไม่สามารถทำได้ หากจะทำ ต้องใช้ VBA เข้ามาช่วยในการกำหนด Event บน Worksheet ซึ่งมันไม่ง่ายนัก

วิธีมาตรฐานทั่วไปคือ ข้อมูลที่นำไปเก็บเป็นฐานข้อมูลนั้น จะก่อนหรือหลัง ก็ไม่สำคัญ จัดเก็บข้อมูลเป็นลำดับลงมา ซึ่งเราสามารถใช้สูตร หรือ VBA ดึงข้อมูลจากฐานข้อมูลไปแสดงในรูปแบบที่เราต้องการอีกที เช่น ลำดับก่อนหรือหลัง มากไปหาน้อย เป็นต้น เราสามารถทำได้

แต่การคีย์ข้อมูลลงในตารางแล้วจัดเรียงข้อมูลให้เลยนั้น ไม่น่าจะเป็นไปได้ครับ

Re: การเรียงลำดับอัตโนมัติ

Posted: Fri Sep 21, 2012 10:54 am
by jakkrit8015
bank9597 wrote:
jakkrit8015 wrote:เรียน อาจารย์และสมาชิกทุกท่าน
เวลาคีย์ข้อมูลเยอะๆ วันที่ต่างกัน คีย์ย้อนหลังบ้าง
อยากจะได้สูตรที่พอเราคีย์เสร็จแล้วมันจะเรียงวันที่ให้อัตโนมัติจากน้อยไปหามาก โดยที่เราไม่ต้องไปคลุมแล้วจัดเรียงข้อมูลทุกครั้ง
ขอบคุณครับ
:lol: เท่าที่เคยใช้เอ็กเซลล์มา ผมยังไม่เห็นการทำเช่นนั้นครับ ลองให้ท่านอื่นมาแนะนำอีกครั้งน่ะครับ

สำหรับแล้วจะแนะนำอย่างนี้ กรณีที่เราจะคีย์ข้อมูลงไปในเซลล์ใดเซลล์หนึ่ง แล้วให้มันจัดเรียงให้นั้น ไม่สามารถทำได้ หากจะทำ ต้องใช้ VBA เข้ามาช่วยในการกำหนด Event บน Worksheet ซึ่งมันไม่ง่ายนัก

วิธีมาตรฐานทั่วไปคือ ข้อมูลที่นำไปเก็บเป็นฐานข้อมูลนั้น จะก่อนหรือหลัง ก็ไม่สำคัญ จัดเก็บข้อมูลเป็นลำดับลงมา ซึ่งเราสามารถใช้สูตร หรือ VBA ดึงข้อมูลจากฐานข้อมูลไปแสดงในรูปแบบที่เราต้องการอีกที เช่น ลำดับก่อนหรือหลัง มากไปหาน้อย เป็นต้น เราสามารถทำได้

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

Re: การเรียงลำดับอัตโนมัติ

Posted: Fri Sep 21, 2012 12:05 pm
by niwat2811
ลองแบบนี้ได้ไหมครับ คลิ๊กขวาที่ Sheet1 แล้วเลือก View Code Copy Code ด้านล่างวางครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target(1, 1), Range("A:D")) Is Nothing Then
        Range("A:D").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End If
End Sub

Re: การเรียงลำดับอัตโนมัติ

Posted: Fri Sep 21, 2012 1:14 pm
by snasui
niwat2811 wrote:ลองแบบนี้ได้ไหมครับ คลิ๊กขวาที่ Sheet1 แล้วเลือก View Code Copy Code ด้านล่างวางครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target(1, 1), Range("A:D")) Is Nothing Then
        Range("A:D").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End If
End Sub
:| ขอบคุณที่กรุณาครับ ช่วยอ่านกฎข้อ 5 ด้านบนด้วยเพื่อความเท่าเทียมกันของเพื่อนสมาชิกครับ

Re: การเรียงลำดับอัตโนมัติ

Posted: Fri Sep 21, 2012 1:17 pm
by niwat2811
ครับ ต้องขอโทษท่านอาจารย์ด้วย ลืมกฎไปเสียสนิทเลยครับ