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

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

เท่าที่เคยใช้เอ็กเซลล์มา ผมยังไม่เห็นการทำเช่นนั้นครับ ลองให้ท่านอื่นมาแนะนำอีกครั้งน่ะครับ
สำหรับแล้วจะแนะนำอย่างนี้ กรณีที่เราจะคีย์ข้อมูลงไปในเซลล์ใดเซลล์หนึ่ง แล้วให้มันจัดเรียงให้นั้น ไม่สามารถทำได้ หากจะทำ ต้องใช้ 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
ครับ ต้องขอโทษท่านอาจารย์ด้วย ลืมกฎไปเสียสนิทเลยครับ