با سلام و کسب اجازه از اساتيد، موضوعي اکابري را مطرح ميکنم که شايد براي دوستان کم تجربه اي مانند من بدرد بخورد و با راهنمايي هاي شما تکميل شود.
گاهي در اکسل ميخواهيم يک ستون بطور خودکار سورت شود. مثلا دو ستون A و B داريم که در B نام و A نام خانوادگي قرار دارد و ميخواهيم با اضافه شدن هر نام جديد، بلافاصله بر اساس نام خانوادگي سورت شود.
براي اين کار بايد يک ماکرو بسازيم. براي دوستان تازه کار مثل خودم ساخت ماکرو را از اول توضيح ميدهم:
1- Alt+F11
2- روي نام شيت مورد نظر در سمت چپ دوبار کليک ميکنيم.
3- در پنجره کد که باز ميشود، در ليست باز شو سمت چپ که نوشته General انتخاب را به worksheet تغيير ميدهيم.
4- در ليست باز شو سمت راست change را انتخاب ميکنيم.
5- اديتور بطور خودکار يک sub اضافه ميکند که بايد بين private sub و end sub اين خطوط را اضافه نماييد:
''''''''''DO NOTHING IF COLUMN B HASN'T BEEN CHANGED
If Target.Column <> 2 Then
Exit Sub
End If
''''''''''OTHERWISE, SORT BY COLUMN A
Columns("A:B").Select
Selection.Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Range("A1").Select
6- اديتور VBA را ميبنديم و اگر فايلمان XLSM نيست، آنرا بصورت macro-enabled ذخيره مينماييم.