سلام 5 محصول دارم باشرایط خاص مثلا با تخفیف، با برگشت کالا، اقساطی و ..... در فرمی اطلاعات وارد میشود که بعد ازورود اطلاعات وصدور فاکتور (sheet3) ، اطلاعات در شیت 11 ذخیره میشود
برای اینکه امکان جستجو بعدا محدود شود.اطلاعات هرکدام از محصولات در ستونهای مختلف ذخیره میشود مثلا محصول شماره 1 در ردیفهایa:k و محصول2 در ردیفهای m:y و... اما فرمول نوشته شده طولانی شده وپیام خطا میدهد ایا راه ساده تر و کوتاه تری هست؟ قسمتی از فرمول در زیر امده (برای محصول1) واین روند برای سایر محصولها ادامه دارد.ممنون
Sheets("sheet11").Activate
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("c6") = "محصول1" Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("A4").Text
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("b14").Text
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("b13").Text
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("C5").Text
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet3.Range("C4").Text
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("C6").Text
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> "" And Sheet2.Range("i1") = True Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("b12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> 0 And Sheet2.Range("i1") = True And Sheet2.Range("c12") <> 0 Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("c12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> "" And Sheet2.Range("i1") = True And Sheet2.Range("d12") <> 0 Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("d12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> "" And Sheet2.Range("e12") <> 0 And Sheet2.Range("i1") = True Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("e12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
برای اینکه امکان جستجو بعدا محدود شود.اطلاعات هرکدام از محصولات در ستونهای مختلف ذخیره میشود مثلا محصول شماره 1 در ردیفهایa:k و محصول2 در ردیفهای m:y و... اما فرمول نوشته شده طولانی شده وپیام خطا میدهد ایا راه ساده تر و کوتاه تری هست؟ قسمتی از فرمول در زیر امده (برای محصول1) واین روند برای سایر محصولها ادامه دارد.ممنون
Sheets("sheet11").Activate
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("c6") = "محصول1" Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("A4").Text
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("b14").Text
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("b13").Text
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("C5").Text
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet3.Range("C4").Text
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("C6").Text
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> "" And Sheet2.Range("i1") = True Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("b12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> 0 And Sheet2.Range("i1") = True And Sheet2.Range("c12") <> 0 Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("c12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> "" And Sheet2.Range("i1") = True And Sheet2.Range("d12") <> 0 Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("d12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
num = Application.WorksheetFunction.CountA(Range("A:A")) + 1
If Sheet3.Range("C15").Text <> "" And Sheet2.Range("e12") <> 0 And Sheet2.Range("i1") = True Then
Sheet11.Range("a3:k3").Cells(num, 1) = Sheet3.Range("a4")
Sheet11.Range("a3:k3").Cells(num, 2) = Sheet3.Range("d15")
Sheet11.Range("a3:k3").Cells(num, 3) = Sheet3.Range("c15")
Sheet11.Range("a3:k3").Cells(num, 5) = Sheet2.Range("e12")
Sheet11.Range("a3:k3").Cells(num, 6) = Sheet3.Range("c6")
Sheet11.Range("a3:k3").Cells(num, 4) = Sheet3.Range("c5")
End If
کامنت