ارتباط جدول به فرم

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

    • 2014/07/10
    • 336

    [حل شده] ارتباط جدول به فرم

    با سلام خدمت همه اساتید گرامی.
    ممنون میشم در پاسخ به سوال زیر کمک بفرمایید.
    اگر در شیت یک در فایل اکسل ، اطلاعاتی را وارد نماییم چگونه میشه که در شیت دو ، فرمی را طراحی کرد در با ایجاد یک فرامین، اطلاعات خاصی رو از شیت یک فراخوانی بکنه و سپس بتونیم اون رو پرینت کنیم.

    1)
    با انتخاب موارد شامل واحد، ماه،گروه و سال از شیت DataBase ، بررسی کنه هر کدام False بود، نام ابزارها رو در شیت Gozaresh در ستون O ، بیاورد و بتوان از آن گزارشگیری نمود

    2) اگر تعداد آیتمهای که در بند یک پیدا کرد که از تعداد ردیفهای تعریف شده فرم بیشتر بود بصورت اتومات تعداد ردیفهای فرم در شیت گزارش افزایش یافته تا از کل موارد پیدا شده بتوان گزارش گیری نمود
    فایل های پیوست شده
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

    تا حدودی از خواسته شما در فایل پیوست اجرا گردید.

    موارد توضیحات زیر جدول گزارش را درقسمت footer اضافه کنید که اگر آیتمها بیشتر بودند مشکلی ایجاد نشود

    کد PHP:
    Sub TEST()

    Sheets("Gozaresh").Range("P4:A23").ClearContents

    Set Rng 
    Range("Table2[ãÇå]")

    4

    For Each cell In Rng

    If cell Sheets("Gozaresh").Range("P2") And cell.Offset(, 5) = False Then

    Sheets
    ("Gozaresh").Range("o" k) = cell.Offset(, 4)

    Sheets("Gozaresh").Range("n" k) = Right(cell.Offset(, 1), 2)
    Sheets("Gozaresh").Range("m" k) = Mid(cell.Offset(, 1), 32)
    Sheets("Gozaresh").Range("l" k) = Left(cell.Offset(, 1), 2)

    Sheets("Gozaresh").Range("j" k) = cell.Offset(, 2)
    Sheets("Gozaresh").Range("i" k) = cell.Offset(, 3)
    Sheets("Gozaresh").Range("h" k) = cell.Offset(, 6)

    1

    End 
    If

    Next

    End Sub 
    فایل های پیوست شده
    Last edited by iranweld; 2018/12/02, 11:08.

    کامنت

    • fokker

      • 2014/07/10
      • 336

      #3
      بسیار تشکر از زحماتتان.
      در خصوص توضیح آخر که فرمودید متوجه نشدم دقیقا باید چی کار کنم میشه بیشتر تشریح کنید. ممنون

      ((موارد توضیحات زیر جدول گزارش را درقسمت footer اضافه کنید که اگر آیتمها بیشتر بودند مشکلی ایجاد نشود))

      همچنین :

      الان طبق فرم گزارشی که شما طراحی کردید با تعیین ماه ، فیتلرها صورت می گیره و مواردی که False هستند در فرم گزارش میان . آیا میشه موارد واحد (تیتر ستون D شیت دیتابیس) و گروه (تیتر ستون C شیت دیتابیس) و سال (تیتر ستون G شیت دیتابیس) رو هم به مواردی که باید بعنوان فیلتر قبل از گزارشگیری تعیین نمود اضافه کرد تا بتونیم گزارشی رو که میگیرم تا حد ممکن جزئی کرد . سپاس
      Last edited by fokker; 2018/12/02, 13:13.

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        از تصویر ذیل نحوه ورود اطلاعات لازم در footer را مشاهده کنید تعداد صفحات شما هر چند تا باشد در هر برگ پرینت این موارد چاپ میگردد

        Click image for larger version

Name:	Untitled.png
Views:	1
Size:	191.8 کیلو بایت
ID:	134774

        - - - Updated - - -

        نوشته اصلی توسط fokker
        بسیار تشکر از زحماتتان.
        در خصوص توضیح آخر که فرمودید متوجه نشدم دقیقا باید چی کار کنم میشه بیشتر تشریح کنید. ممنون

        ((موارد توضیحات زیر جدول گزارش را درقسمت footer اضافه کنید که اگر آیتمها بیشتر بودند مشکلی ایجاد نشود))

        همچنین :

        الان طبق فرم گزارشی که شما طراحی کردید با تعیین ماه ، فیتلرها صورت می گیره و مواردی که False هستند در فرم گزارش میان . آیا میشه موارد واحد (تیتر ستون D شیت دیتابیس) و گروه (تیتر ستون C شیت دیتابیس) و سال (تیتر ستون G شیت دیتابیس) رو هم به مواردی که باید بعنوان فیلتر قبل از گزارشگیری تعیین نمود اضافه کرد تا بتونیم گزارشی رو که میگیرم تا حد ممکن جزئی کرد . سپاس

        بله امکان پذیر هستش آیتمهای شرط خود را باید به این سطر از برنامه اضافه کنید

        کد PHP:
        If cell Sheets("Gozaresh").Range("P2") And cell.Offset(, 5) = False Then 
        فایل های پیوست شده

        کامنت

        • fokker

          • 2014/07/10
          • 336

          #5
          متشکرم
          الان باید دقیقا همین کدنویسی رو در تکرار کنم و تنها به جای P2 اسم سلول آیتم مدنظر خودم رو بزارم
          کد:
          [COLOR=#007700][FONT=monospace]If [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]cell [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Sheets[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Gozaresh"[/FONT][/COLOR][COLOR=#007700][FONT=monospace]).[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Range[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"P2"[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) And [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]cell[/FONT][/COLOR][COLOR=#007700][FONT=monospace].[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Offset[/FONT][/COLOR][COLOR=#007700][FONT=monospace](, [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]5[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) = [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]False Then  [/FONT][/COLOR]

          دوم اینکه در فرمول شما
          کد:
          [COLOR=#0000BB][FONT=monospace]Sheets[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Gozaresh"[/FONT][/COLOR][COLOR=#007700][FONT=monospace]).[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Range[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"P4:A23"[/FONT][/COLOR][COLOR=#007700][FONT=monospace]).[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ClearContents[/FONT][/COLOR]
          محدوده از P4 تا A23 می باشد یعنی 20 آیتم در جدول گزارش میتوان قرار داد ، حالا اگر یک ماه مثلا فروردین رو جستجو کردیم و تعداد آیتمهای که پیدا کرد بیش از این محدوده باشه (مثلا 25 آیتم داشت) چه باید کرد و چطور نشون داده میشه
          Last edited by fokker; 2018/12/02, 14:01.

          کامنت

          • iranweld

            • 2015/03/29
            • 3341

            #6
            بجای درگیر شدن با کدنویسی چرا جدول اصلی خود را فیلتر نمیکنید و بعد دیتای حاصل را در فرم گزارش کپی و پیست کنید ؟

            Click image for larger version

Name:	Untitled.png
Views:	1
Size:	47.2 کیلو بایت
ID:	134775

            کامنت

            • fokker

              • 2014/07/10
              • 336

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

              کامنت

              • iranweld

                • 2015/03/29
                • 3341

                #8
                با سلام

                عنوان سال و گروه نیز به جستجو اضافه گردید

                کد PHP:
                Sub TEST()

                Sheets("Gozaresh").Range("q4:A2000").ClearContents

                Sheets
                ("Gozaresh").Range("q5:A2000").Clear

                Set Rng 
                Range("Table2[ãÇå]")

                4

                For Each cell In Rng

                If cell Sheets("Gozaresh").Range("s3") And cell.Offset(, 5) = False _
                      
                And Sheets("Gozaresh").Range("s1") = cell.Offset(, 6_
                      
                And Sheets("Gozaresh").Range("s2") = cell.Offset(, 2Then

                Sheets
                ("Gozaresh").Range("q" k) = 3

                Sheets
                ("Gozaresh").Range("o" k) = cell.Offset(, 4)

                Sheets("Gozaresh").Range("n" k) = Right(cell.Offset(, 1), 2)
                Sheets("Gozaresh").Range("m" k) = Mid(cell.Offset(, 1), 32)
                Sheets("Gozaresh").Range("l" k) = Left(cell.Offset(, 1), 2)

                Sheets("Gozaresh").Range("j" k) = cell.Offset(, 2)
                Sheets("Gozaresh").Range("i" k) = cell.Offset(, 3)
                Sheets("Gozaresh").Range("h" k) = cell.Offset(, 6)

                1

                End 
                If

                Next

                Macro1

                End Sub 
                فایل های پیوست شده

                کامنت

                • fokker

                  • 2014/07/10
                  • 336

                  #9
                  سپاس استاد گرامی

                  کامنت

                  • Amir Ghasemiyan

                    • 2013/09/20
                    • 4598
                    • 100.00

                    #10
                    نوشته اصلی توسط fokker
                    سپاس استاد گرامی
                    دوست عزيز اگر پاسخ سوالتون رو دريافت كرديد لطفا تاپيك رو حل شده كنيد.

                    از شما كربران قديمي بيشتر انتظار داريم به اين مسائل توجه كنيد.

                    کامنت

                    • fokker

                      • 2014/07/10
                      • 336

                      #11
                      مرسی بابت یادآوری.

                      کامنت

                      چند لحظه..