جستجو شرطی از یک جدول با چند شرط

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • emami6599

    • 2019/01/02
    • 14

    [حل شده] جستجو شرطی از یک جدول با چند شرط

    سلام. من در یک شیت یک جدول دارم که اسامی داوطلبین در اون هست که به مرور اضافه میشه. حالا قرار هست برای این داوطلبین به مرور تعیین وقت مصاحبه بشه. جلوی نام هر فرد دو ستون هست یکی مربوط به تاریخ و دیگری مربوط به ساعت مصاحبه. در شیت دیگر جدول تاریخ ایام هفته و ساعت هست. میخوام بدونم آیا راه حلی هست که وقتی من در شیت اول تاریخ و ساعت مصاحبه برای شخصی انتخاب میکنم در جدول شیت دیگر که به شکل تقویم است به طوز خودکار در همان روز و همان ساعت اسم آن شخص نوشته بشه؟
    ببخشید من مبتدی هستم و شاید سوالم رو درست بیان نکرده باشم. فایل نمونه رو هم پیوست کردم ممنون میشم علاوه بر توضیح تغییرات رو در فایل بنده ایجاد کنید.
    با تشکر فراوان
    فایل های پیوست شده
  • M_ExceL

    • 2018/04/23
    • 677

    #2
    نوشته اصلی توسط emami6599
    سلام. من در یک شیت یک جدول دارم که اسامی داوطلبین در اون هست که به مرور اضافه میشه. حالا قرار هست برای این داوطلبین به مرور تعیین وقت مصاحبه بشه. جلوی نام هر فرد دو ستون هست یکی مربوط به تاریخ و دیگری مربوط به ساعت مصاحبه. در شیت دیگر جدول تاریخ ایام هفته و ساعت هست. میخوام بدونم آیا راه حلی هست که وقتی من در شیت اول تاریخ و ساعت مصاحبه برای شخصی انتخاب میکنم در جدول شیت دیگر که به شکل تقویم است به طوز خودکار در همان روز و همان ساعت اسم آن شخص نوشته بشه؟
    ببخشید من مبتدی هستم و شاید سوالم رو درست بیان نکرده باشم. فایل نمونه رو هم پیوست کردم ممنون میشم علاوه بر توضیح تغییرات رو در فایل بنده ایجاد کنید.
    با تشکر فراوان
    سلام جناب امامی،
    کد زیر رو تست کنید :
    کد:
    Sub entegal()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
            lrm = Sheets(1).Cells(Rows.Count, 1).End(3).Row
            lrt = Sheets(2).Cells(Rows.Count, 2).End(3).Row
                Sheets(2).Range("c3:k" & lrt).ClearContents
                    For r1 = 3 To lrm
                        For r2 = 3 To lrt
                            For s = 1 To 9
                                If Sheets(1).Cells(r1, 2) = Sheets(2).Cells(r2, 2) Then
                                    If Sheets(1).Cells(r1, 3) = Sheets(2).Cells(2, s + 2) Then
                                        Sheets(2).Cells(r2, s + 2) = Sheets(1).Cells(r1, 1)
                                    End If
                                End If
                            Next s
                        Next r2
                    Next r1
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    End Sub
    بعد از اجرای فایل روی enable content کلیک کنید تا ماکروها فعال شوند سپس روی باتن دریافت اطلاعات کلیک کنید.
    فایل های پیوست شده
    [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
    [/CENTER]

    کامنت

    • emami6599

      • 2019/01/02
      • 14

      #3
      یک دنیا ممنوم. خیلی عالی بود. دقیقا مشکل من رو حل کرد. جسارتا یک سوال دیگه دارم و اون اینکه دوست دارم بدونم این مساله راه حل دیگه ای غیر از ماکرو و کدنویسی نداره (مثلا فرمول نویسی) که ساده تر باشه و برای امثال من قابل فهم باشه تا بتونم خودم در موارد متناظر (که زیاد باهاشون سر و کار دارم) مشکلم رو حل کنم؟ یا اگر خیلی پیچیده نیست معنی کدی رو که نوشتین بفهمم

      کامنت

      • emami6599

        • 2019/01/02
        • 14

        #4
        ببخشید من اینقدر سوال میپرسم. اگر صورت مساله ای که اول عرض کردم بخوام برعکس باشه چجوری میشه؟ یعنی وقتی که در تقویم مصاحبه اسم شخصی رو وارد کردم در شیت اول مقابل اسم اون شخص تاریخ و ساعتی که در شیت دوم اسمش قید شده رو قرار بده.

        کامنت

        • M_ExceL

          • 2018/04/23
          • 677

          #5
          نوشته اصلی توسط emami6599
          ببخشید من اینقدر سوال میپرسم. اگر صورت مساله ای که اول عرض کردم بخوام برعکس باشه چجوری میشه؟ یعنی وقتی که در تقویم مصاحبه اسم شخصی رو وارد کردم در شیت اول مقابل اسم اون شخص تاریخ و ساعتی که در شیت دوم اسمش قید شده رو قرار بده.
          خواهش میکنم،
          چک کنید اگر خواسته و منظورتون به این صورت نبود فایل اصلاح شدتون رو مجددا قرار بدید تا روش کار کنیم.
          کد:
          Sub entegal()
          With Application
              .ScreenUpdating = False
              .EnableEvents = False
                  lrm = Sheets(1).Cells(Rows.Count, 2).End(3).Row
                  lrt = Sheets(2).Cells(Rows.Count, 2).End(3).Row
                      Sheets(1).Range("A3:a" & lrm).ClearContents
                          For r1 = 3 To lrm
                              For r2 = 3 To lrt
                                  For s = 1 To 9
                                      If Sheets(1).Cells(r1, 2) = Sheets(2).Cells(r2, 2) Then
                                          If Sheets(1).Cells(r1, 3) = Sheets(2).Cells(2, s + 2) Then
                                              Sheets(1).Cells(r1, 1) = Sheets(2).Cells(r2, s + 2)
                                          End If
                                      End If
                                  Next s
                              Next r2
                          Next r1
              .ScreenUpdating = True
              .EnableEvents = True
          End With
          End Sub
          فایل های پیوست شده
          Last edited by M_ExceL; 2019/06/12, 18:39.
          [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
          [/CENTER]

          کامنت

          • emami6599

            • 2019/01/02
            • 14

            #6
            خیلی ممنونم از شما که زحمت میکشید. منظورم این بود که وقتی در شیت تقویم اسم کسی رو وارد کینم در جدول تعیین وقت، مقایل اسم این فرد که از قبل نوشته شده تاریخ و ساعت قید بشه. فایل پیوست رو تقدیم میکنم.
            فایل های پیوست شده

            کامنت

            • M_ExceL

              • 2018/04/23
              • 677

              #7
              نوشته اصلی توسط emami6599
              خیلی ممنونم از شما که زحمت میکشید. منظورم این بود که وقتی در شیت تقویم اسم کسی رو وارد کینم در جدول تعیین وقت، مقایل اسم این فرد که از قبل نوشته شده تاریخ و ساعت قید بشه. فایل پیوست رو تقدیم میکنم.
              خواهش میکنم،
              خدمت شما :
              کد:
              Sub entegal()
              With Application
                  .ScreenUpdating = False
                  .EnableEvents = False
                      lrm = Sheets(1).Cells(Rows.Count, 1).End(3).Row
                      lrt = Sheets(2).Cells(Rows.Count, 2).End(3).Row
                          Sheets(1).Range("b3:c" & lrm).ClearContents
                              For r1 = 3 To lrm
                                  For r2 = 3 To lrt
                                      For s = 1 To 9
                                         If Sheets(1).Cells(r1, 1) = Sheets(2).Cells(r2, s + 2) Then
                                              Sheets(1).Cells(r1, 2) = Sheets(2).Cells(r2, 2)
                                              Sheets(1).Cells(r1, 3) = Sheets(2).Cells(2, s + 2)
                                          End If
                                      Next s
                                  Next r2
                              Next r1
                  .ScreenUpdating = True
                  .EnableEvents = True
              End With
              End Sub
              فایل های پیوست شده
              [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
              [/CENTER]

              کامنت

              • emami6599

                • 2019/01/02
                • 14

                #8
                خدا خیرتون بده. خیلی ممنونم دقیقا همین رو میخواستم

                کامنت

                چند لحظه..