جست و جو بر اساس نام و انتخاب کد در لیست کشویی

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

    • 2021/01/11
    • 43

    پرسش جست و جو بر اساس نام و انتخاب کد در لیست کشویی

    درود دوستان
    یک مشکل خیلی بزرگ دارم که خیلی وقتها هم لازم میشه الان هم کارم رو معطل کرده
    یک لیست کشویی داریم که کد کالا - نام کالا و نام کالا به لاتین رو نشون میده
    میخوام با سرچ کردن بیاد و وقتی انتخاب میکنم فقط کد کالا ثبت بشه
    چون اصل لیست بیش از 4000 کالا هست نمیتونم کد کالا ها رو برگردم و دستی پیدا کنم و دوباره بنیسم و اینکه هر روز حدودا 40-50 ردیف پر میکنم به دیتابیسم

    Click image for larger version

Name:	2020.png
Views:	1
Size:	103.2 کیلو بایت
ID:	149521
    فایل های پیوست شده
  • ali_nmt

    • 2021/01/11
    • 43

    #2
    کسی هست کمکی بکنه؟

    کامنت

    • generalsamad
      مدير تالار توابع

      • 2014/06/22
      • 1496

      #3
      با سلام
      شاید با vba به خواستتون برسید من چند کد نوشتم و تست کردم ولی چون خواستم نتیجه در همان سلول نمایش داده شود با خطا مواجه شدم هنوز راهی برایش پیدا نکردم
      من دو روش را قرار میدم که نتیجه در یک ستون دیگر قرار میگیرد
      روش اول استفاده از توابع هست
      مثلا از این فرمولها
      کد PHP:
      =IF([@[کد کالا]]<>"",INDEX(Table1[کد کالا],MATCH([@[کد کالا]],Table1[کمکی],0),),""
      کد PHP:
      =IF(Table2[@[کد کالا]]<>"",OFFSET(B$1,MATCH(Table2[@[کد کالا]],Table1[کمکی],0),),""
      کد PHP:
      =IF(Table2[@[کد کالا]]<>"",INDIRECT("B" &(MATCH(Table2[@[کد کالا]],Table1[کمکی],0)+1)),""
      روش دوم استفاده از vba
      در رویدادهای ورک شیت از این کد استفاده کنید
      کد PHP:
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim MatchRActiveR As Integer
      ActiveR 
      ActiveCell.Row
         
      If Target.Column And Target.Row >= 16 Then
            MatchR 
      Application.WorksheetFunction.Match(Range("B" ActiveR).ValueRange("E2:E7"))
            
      Range("F" ActiveR).Formula Range("B" MatchR).Value
         End 
      If
      End Sub 
      امیدوارم مفید باشه
      Last edited by generalsamad; 2021/12/16, 23:20.
      [CENTER]
      [SIGPIC][/SIGPIC]
      [/CENTER]

      کامنت

      • دکتر علیزاده

        • 2021/11/27
        • 61

        #4
        عالی بود دستت درد نکنه
        [SIZE=4] [COLOR=#800000]امير المؤمنين علي (ع) : [/COLOR][/SIZE][SIZE=4][SIZE=5][FONT=times new roman][COLOR=#000080]دنيا دو روز است يك روز با توست و روز ديگر عليه تو روزي كه باتوست مغرور مَشو و روزي كه عليه توست نا اميد مشو زيرا هردو پايان پذيرند[/COLOR][/FONT][/SIZE]
        [/SIZE]

        کامنت

        • ali_nmt

          • 2021/01/11
          • 43

          #5
          ممنونم
          شرمنده به خاطر دیر جواب دادن چند وقتیه سرم به شدت شلوغه
          میخوام که تو همون ستون خودش اینکار انجام بشه و قابلیت جست و جو هم باشه چون تعداد کالا ها خیلی زیاده (حدود 4 هزار تا) و اینکه باز هم کالا های دیگه ای اضافه خواهد شد برای همین هم محدوده انتخاب نشه و تیبل انتخاب بشه
          تو ستون دیگه ای با تابع لفت خالی هم امکان پذیر هست

          نوشته اصلی توسط generalsamad
          با سلام
          شاید با vba به خواستتون برسید من چند کد نوشتم و تست کردم ولی چون خواستم نتیجه در همان سلول نمایش داده شود با خطا مواجه شدم هنوز راهی برایش پیدا نکردم
          من دو روش را قرار میدم که نتیجه در یک ستون دیگر قرار میگیرد
          روش اول استفاده از توابع هست
          مثلا از این فرمولها
          کد PHP:
          =IF([@[کد کالا]]<>"",INDEX(Table1[کد کالا],MATCH([@[کد کالا]],Table1[کمکی],0),),""
          کد PHP:
          =IF(Table2[@[کد کالا]]<>"",OFFSET(B$1,MATCH(Table2[@[کد کالا]],Table1[کمکی],0),),""
          کد PHP:
          =IF(Table2[@[کد کالا]]<>"",INDIRECT("B" &(MATCH(Table2[@[کد کالا]],Table1[کمکی],0)+1)),""
          روش دوم استفاده از vba
          در رویدادهای ورک شیت از این کد استفاده کنید
          کد PHP:
          Private Sub Worksheet_Change(ByVal Target As Range)
          Dim MatchRActiveR As Integer
          ActiveR 
          ActiveCell.Row
             
          If Target.Column And Target.Row >= 16 Then
                MatchR 
          Application.WorksheetFunction.Match(Range("B" ActiveR).ValueRange("E2:E7"))
                
          Range("F" ActiveR).Formula Range("B" MatchR).Value
             End 
          If
          End Sub 
          امیدوارم مفید باشه
          فایل های پیوست شده

          کامنت

          • saed.rasa

            • 2014/11/02
            • 1054

            #6
            سلام
            تست کنید لطفا!
            فایل های پیوست شده
            [FONT=arial][SIZE=3]اگر کسی به شما کمک کرد، سمت راست پایین هر موضوع تیک [COLOR=#0000cd][B]«3پاس»[/B][/COLOR] یادتان نرود لطفا
            اگر مشکل تان حل شد، حتما تیک سبز رنگ [B][COLOR=#00cc00]«حل شد»[/COLOR][/B] در پست اول را بزنید
            [/SIZE][/FONT][SIZE=3][CENTER][FONT=arial]
            [/FONT][/CENTER]
            [/SIZE][FONT=arial][SIZE=3] اگر میخواهید بهتر و دقیق تر و سریع تر به شما کمک شود، یک [COLOR=#ee82ee][B]«فایل نمونه»[/B][/COLOR] قرار دهید
            فایل نمونه: حداکثر [U][COLOR=#ff0000]50 [/COLOR][/U]کیلوبایت - کوتاه، تقریبا [U][COLOR=#ff0000]10 [/COLOR][/U]سطری - به همراه جواب یا خروجی یا نتیجه مورد انتظار[/SIZE][/FONT][CENTER][FONT=arial][COLOR=#0000ff][SIZE=3][SIZE=3][SIZE=3][SIZE=3]مسیر ارسال فایل : پایین سمت چپ - تنظیمات اضافی - فایل پیوست[/SIZE][/SIZE][/SIZE] [/SIZE][/COLOR]
            [/FONT][/CENTER]

            کامنت

            • ali_nmt

              • 2021/01/11
              • 43

              #7
              ممنون
              عالی شد
              فقط اگه امکانش هست قابلیت جست و جو هم داشته باشه

              کامنت

              چند لحظه..