sort کردن اطلاعات با ورود اطلاعات جدید

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • lalsevda_62

    • 2014/08/31
    • 12
    • 49.00

    sort کردن اطلاعات با ورود اطلاعات جدید

    سلام.
    من می خوام داخل یک شیت اطلاعات افراد رو وارد کنم و کد ملی رو در ستون a قرار بدم.
    می خوام با وارد کردن اطلاعات یک شخص اون سطر براساس کد ملی (اطلاعات ستون a) اتوماتیک سورت بشه و نیازی نباشه که هر وقت اطلاعات جدیدی رو وارد می کنم بخوام دوباره سورت کنم.
  • amir_ts

    • 2015/03/17
    • 1247

    #2
    با سلام
    از این کد در شیت مربوطه استفاده کنید.
    کد:
    [LEFT]
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Sheet1").Sort
            .SetRange Range("A:D")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    
    End If
    
    End Sub
    [/LEFT]
    فایل های پیوست شده
    Last edited by amir_ts; 2016/08/02, 00:10.
    [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

    کامنت

    • lalsevda_62

      • 2014/08/31
      • 12
      • 49.00

      #3
      نوشته اصلی توسط amir_ts
      با سلام
      از این کد در شیت مربوطه استفاده کنید.
      کد:
      [left]
      private sub worksheet_change(byval target as range)
      if target.column = 1 then
          activeworkbook.worksheets("sheet1").sort.sortfields.clear
          activeworkbook.worksheets("sheet1").sort.sortfields.add key:=range("a1"), _
              sorton:=xlsortonvalues, order:=xlascending, dataoption:=xlsortnormal
          with activeworkbook.worksheets("sheet1").sort
              .setrange range("a:d")
              .header = xlno
              .matchcase = false
              .orientation = xltoptobottom
              .sortmethod = xlpinyin
              .apply
          end with
      
      end if
      
      end sub
      [/left]
      ممنون.
      ولی این کد یه مشکلی داره اونم اینکه فقط ستون a رو سورت می کنه ولی مقادیر متناظرش در ستونهای دیگه تغییر نمی کنن

      کامنت

      • mokaram
        مدير تالار اکسل و بانک اطلاعاتی

        • 2011/02/06
        • 1805
        • 74.00

        #4
        نوشته اصلی توسط lalsevda_62
        ممنون.
        ولی این کد یه مشکلی داره اونم اینکه فقط ستون a رو سورت می کنه ولی مقادیر متناظرش در ستونهای دیگه تغییر نمی کنن
        یه راه ساده تر :
        یه ماکرو ضبط کن و خودت دستی کارت سورت را انجام بده ( یعنی فیلتر کن و بعد سورت ) بعد این را تو ایونت مربوطه ( هر جا که تشخیص میدی قرار بده ) فقط حواست به رنج کدماکرو باشه
        [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
        [/CENTER]

        کامنت

        • ali.b

          • 2014/01/12
          • 798

          #5
          نوشته اصلی توسط lalsevda_62
          سلام.
          من می خوام داخل یک شیت اطلاعات افراد رو وارد کنم و کد ملی رو در ستون a قرار بدم.
          می خوام با وارد کردن اطلاعات یک شخص اون سطر براساس کد ملی (اطلاعات ستون a) اتوماتیک سورت بشه و نیازی نباشه که هر وقت اطلاعات جدیدی رو وارد می کنم بخوام دوباره سورت کنم.

          سلام
          این کد رو بر اساس محدوده رنج فایل کدنظرتون تغییر بدین
          کد:
          [COLOR=#333333][FONT=monospace].SetRange Range("A:D")[/FONT][/COLOR]
          [CENTER]
          [/CENTER]

          کامنت

          چند لحظه..