خواندن شرطی سطرهای یک جدول و کپی در شیت دیگر

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mostafa_rz
    • 2020/11/22
    • 4

    [حل شده] خواندن شرطی سطرهای یک جدول و کپی در شیت دیگر

    سلام دوستان
    راستش من تازه ماکرو نویسی رو در اکسل شروع کردم و برای نوشتن کد یک مسئله ای که دارم احتیاج به کمک دارم ، دوستان لطفا به من کمک میکنید
    میخوام جدول 1 در شیت 1 را سطر به سطر بخوانم و با شرط مقدار غیر صفر در شیت دوم جدول را به شکل جدول 2 وارد کنم .
    دوستان میتونید کمکم کنید .
    ممنون


    Click image for larger version

Name:	exel.JPG
Views:	1
Size:	96.5 کیلو بایت
ID:	149083
  • saed.rasa

    • 2014/11/02
    • 1054

    #2
    سلام
    به انجمن محبوب اکسل ایران، خوش آمدید!
    از پایین سمت چپ - تنظیمات اضافی - فایل پیوست - یک فایل نمونه اکسل با نتیجه مورد انتظار تقریبا مثل عکس بالا قرار دهید لطفا
    تا دوستان محترم در اولین فرصت جواب مطلوب را ارائه و ارسال نمایند
    مرسی
    [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]

    کامنت

    • mostafa_rz
      • 2020/11/22
      • 4

      #3
      نوشته اصلی توسط saed.rasa
      سلام
      به انجمن محبوب اکسل ایران، خوش آمدید!
      از پایین سمت چپ - تنظیمات اضافی - فایل پیوست - یک فایل نمونه اکسل با نتیجه مورد انتظار تقریبا مثل عکس بالا قرار دهید لطفا
      تا دوستان محترم در اولین فرصت جواب مطلوب را ارائه و ارسال نمایند
      مرسی
      سلام
      سپاس از شما و توجه تون
      فایل رو پیوست کردم
      در واقع برنامه ده روزه یک سری کالا که در شیت 1 بصورت جدولی ارائه شده می بایست در شیت دوم بصورت شرح کالا ،تعداد و تاریخ نیاز زیر هم درج بشه
      ممنون میشم اگر راهنماییم کنید
      سپاس

      فایل نمونه.xlsx

      کامنت

      • M_ExceL

        • 2018/04/23
        • 677

        #4
        نوشته اصلی توسط mostafa_rz
        سلام دوستان
        راستش من تازه ماکرو نویسی رو در اکسل شروع کردم و برای نوشتن کد یک مسئله ای که دارم احتیاج به کمک دارم ، دوستان لطفا به من کمک میکنید
        میخوام جدول 1 در شیت 1 را سطر به سطر بخوانم و با شرط مقدار غیر صفر در شیت دوم جدول را به شکل جدول 2 وارد کنم .
        دوستان میتونید کمکم کنید .
        ممنون


        [ATTACH=CONFIG]21974[/ATTACH]
        با سلام،
        کد:
        Sub M_ExceL()
        
            Dim Last_Row_A     As Long
            Dim Last_Row_B     As Long
            Dim RNG_A          As Range
            Dim ITM            As Variant
            Dim Col_Itm        As Integer
            
                Last_Row_A = Sheets(1).Cells(Rows.Count, "A").End(3).Row
                
                Last_Row_B = Sheets(2).Cells(Rows.Count, "A").End(3).Row
                
                Set RNG_A = Sheets(1).Range("A3:A" & Last_Row_A)
                    
                Application.ScreenUpdating = False
                    
                For Each ITM In RNG_A
                
                    For Col_Itm = 2 To 11
                        
                        If Not IsEmpty(Sheets(1).Cells(ITM.Row, Col_Itm)) Then
                        
                            Last_Row_B = Last_Row_B + 1
                            
                            Sheets(2).Cells(Last_Row_B, 1) = ITM
                            
                            Sheets(2).Cells(Last_Row_B, 2) = Sheets(1).Cells(ITM.Row, Col_Itm)
                            
                            Sheets(2).Cells(Last_Row_B, 3) = Sheets(1).Cells(2, Col_Itm)
                        
                        End If
                        
                    Next
                
                Next
                
                Application.ScreenUpdating = True
            
        
        End Sub
        فایل های پیوست شده
        [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
        [/CENTER]

        کامنت

        • mostafa_rz
          • 2020/11/22
          • 4

          #5
          نوشته اصلی توسط M_ExceL
          با سلام،
          کد:
          Sub M_ExceL()
          
              Dim Last_Row_A     As Long
              Dim Last_Row_B     As Long
              Dim RNG_A          As Range
              Dim ITM            As Variant
              Dim Col_Itm        As Integer
              
                  Last_Row_A = Sheets(1).Cells(Rows.Count, "A").End(3).Row
                  
                  Last_Row_B = Sheets(2).Cells(Rows.Count, "A").End(3).Row
                  
                  Set RNG_A = Sheets(1).Range("A3:A" & Last_Row_A)
                      
                  Application.ScreenUpdating = False
                      
                  For Each ITM In RNG_A
                  
                      For Col_Itm = 2 To 11
                          
                          If Not IsEmpty(Sheets(1).Cells(ITM.Row, Col_Itm)) Then
                          
                              Last_Row_B = Last_Row_B + 1
                              
                              Sheets(2).Cells(Last_Row_B, 1) = ITM
                              
                              Sheets(2).Cells(Last_Row_B, 2) = Sheets(1).Cells(ITM.Row, Col_Itm)
                              
                              Sheets(2).Cells(Last_Row_B, 3) = Sheets(1).Cells(2, Col_Itm)
                          
                          End If
                          
                      Next
                  
                  Next
                  
                  Application.ScreenUpdating = True
              
          
          End Sub
          سلام
          خیلی ممنونم از راهنمایی کامل و توجه شما
          فقط در کد بالا هر زمان که جدول شیت 1 آپدیت میشه بعد از زدن از کلید button 1 مطاب در پایین جدول شیت 2 به مطالب قبل اضافه میشه ، امکانش هست جدول شیت 2 مجدد به روز رسانی بشه ، در واقع اطلاعات duplicate نشه
          ممنون

          کامنت

          • saed.rasa

            • 2014/11/02
            • 1054

            #6
            سلام
            تست کنید لطفا!
            A10=
            کد:
            =INDEX(Jens,AGGREGATE(15,6,ROW(Data)-1/(Data<>""),ROW(A1)))
            B10=
            کد:
            =INDEX(Data,MATCH(A10,Jens,),MATCH(C10,Tarikh,))
            C10=
            کد:
            =INDEX(Tarikh,MOD(AGGREGATE(15,6,ROW(Data)*1000+COLUMN(Data)/(Data<>""),ROW(A1))-1,1000))
            فایل های پیوست شده
            [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]

            کامنت

            • mostafa_rz
              • 2020/11/22
              • 4

              #7
              نوشته اصلی توسط saed.rasa
              سلام
              تست کنید لطفا!
              A10=
              کد:
              =INDEX(Jens,AGGREGATE(15,6,ROW(Data)-1/(Data<>""),ROW(A1)))
              B10=
              کد:
              =INDEX(Data,MATCH(A10,Jens,),MATCH(C10,Tarikh,))
              C10=
              کد:
              =INDEX(Tarikh,MOD(AGGREGATE(15,6,ROW(Data)*1000+COLUMN(Data)/(Data<>""),ROW(A1))-1,1000))
              سلام
              خیلی ممنون از راهنمایی تون
              بسیار عالی بود و دقیقا همونی بود که میخواستم
              سپاس از لطف شما

              کامنت

              چند لحظه..