اجرای ماکرو قبل عملیات چاپ

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

    • 2010/11/15
    • 29

    اجرای ماکرو قبل عملیات چاپ

    با سلام
    واحترام
    دوستان من میخوام یه ماکرویی رو ضبط کردم
    چطور میتونم تنظیمش کنم که زمانی که کاربر دکمه پرینت رو زد قبلش این ماکرو اجرابشه؟
    باتشکر
  • Nima

    • 2011/07/22
    • 385

    #2
    دوست عزیز میشه بیشتر راجع به کاری که ماکرو انجام میده توضیح بدید.
    شاید لازم نباشه حتما قبل از پرینت گرفتن اجرا بشه

    ولی میتونید به شکل زیر عمل کنید


    کد PHP:

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Call Macro
    End Sub 
    Last edited by Nima; 2013/12/22, 14:53.
    [CENTER][COLOR=#ff0000]************************************[/COLOR]
    No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
    [COLOR=#ff0000]************************************[/COLOR]

    [/CENTER]

    کامنت

    • homai

      • 2010/11/15
      • 29

      #3
      سلام
      ممنون از پاسخ شما
      من در فایل یه جدول دارم که برخی از ردیفهاش پر میشه این ماکرو ردیفهای پر رو فیلتر میکنه وبرای چاپ آماده میکنه که درزمان پرینت فقط ردیفهای پر جدول وجود داشته باشه وجدول دارای ردیفهای خالی نباشه
      باتشکر

      کامنت

      • Nima

        • 2011/07/22
        • 385

        #4
        تکه کد پست دوم رو در قسمت ٌThisworkbook وارد کنید البته به جای Macro نام ماکرو مورد نظر رو بنویسید.
        [CENTER][COLOR=#ff0000]************************************[/COLOR]
        No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
        [COLOR=#ff0000]************************************[/COLOR]

        [/CENTER]

        کامنت

        • homai

          • 2010/11/15
          • 29

          #5
          من متاسفانه متوجه منظورتون نشدم اگه امکانش هست بیشتر راهنمایی بفرمایید
          ماکرویی که ضبط شده اینه:
          کد PHP:
          Sub print_sorathesab()
          '
          print_sorathesab Macro
          '

          '
              
          ActiveWindow.SmallScroll ToRight:=-11
              ActiveSheet
          .Range("$A$1:$T$210").AutoFilter Field:=18Criteria1:="1"
              
          ActiveWindow.SmallScroll Down:=-9
              ActiveWindow
          .SelectedSheets.PrintOut Copies:=1
              ActiveSheet
          .Range("$A$1:$T$210").AutoFilter Field:=18
              ActiveWindow
          .SmallScroll Down:=60
              ActiveSheet
          .Outline.ShowLevels RowLevels:=1
              Range
          ("B1").Select
          End Sub 
          حالا زمانی که کاربر دکمه پرینت خود اکسل رو میزنه اول این ماکروی من اجرا بشه
          وبعدعملیات پرینت گرفته بشه
          (البته خطی که برای پرینت هست باید حذف بشه)

          باتشکر

          کامنت

          • Nima

            • 2011/07/22
            • 385

            #6
            دوست عزیز کد زیر رو درقسمت کد مربوط به Thisworkbook از ویژوال ادیتور وارد کن:


            []
            Private Sub Workbook_BeforePrint(Cancel As Boolean)
            Call
            print_sorathesab
            End Sub




            [/PHP]
            [CENTER][COLOR=#ff0000]************************************[/COLOR]
            No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
            [COLOR=#ff0000]************************************[/COLOR]

            [/CENTER]

            کامنت

            • homai

              • 2010/11/15
              • 29

              #7
              این کار رو من انجام دادم ولی درست نشد

              بعداز اعمال تغییرات بدین شکل شد
              کد PHP:
              Private Sub Workbook_BeforePrint(Cancel As Boolean)
              Call print_sorathesab
              End Sub
              Sub print_sorathesab
              ()
              '
              print_sorathesab Macro
              '

              '
                  
              ActiveWindow.SmallScroll ToRight:=-11
                  ActiveSheet
              .Range("$A$1:$T$210").AutoFilter Field:=18Criteria1:="1"
                  
              ActiveWindow.SmallScroll Down:=-9
                  ActiveSheet
              .Range("$A$1:$T$210").AutoFilter Field:=18
                  ActiveWindow
              .SmallScroll Down:=60
                  ActiveSheet
              .Outline.ShowLevels RowLevels:=1
                  Range
              ("B1").Select
              End Sub 
              ممکنه بفرمایید اشکال من کجاست؟

              کامنت

              • Nima

                • 2011/07/22
                • 385

                #8
                نوشته اصلی توسط homai
                این کار رو من انجام دادم ولی درست نشد

                بعداز اعمال تغییرات بدین شکل شد
                کد PHP:
                Private Sub Workbook_BeforePrint(Cancel As Boolean)
                Call print_sorathesab
                End Sub
                Sub print_sorathesab
                ()
                '
                print_sorathesab Macro
                '

                '
                    
                ActiveWindow.SmallScroll ToRight:=-11
                    ActiveSheet
                .Range("$A$1:$T$210").AutoFilter Field:=18Criteria1:="1"
                    
                ActiveWindow.SmallScroll Down:=-9
                    ActiveSheet
                .Range("$A$1:$T$210").AutoFilter Field:=18
                    ActiveWindow
                .SmallScroll Down:=60
                    ActiveSheet
                .Outline.ShowLevels RowLevels:=1
                    Range
                ("B1").Select
                End Sub 
                ممکنه بفرمایید اشکال من کجاست؟

                اشکال کار اینجاست که شما باید کد:

                کد:
                [COLOR=#007700][FONT=monospace]Private [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Sub Workbook_BeforePrint[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Cancel [/FONT][/COLOR][COLOR=#007700][FONT=monospace]As [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Boolean[/FONT][/COLOR][COLOR=#007700][FONT=monospace])
                [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Call print_sorathesab
                End Sub[/FONT][/COLOR]
                رو در قسمت مربوط به کد this workbook بنویسید.برای اینکار از پنجره project Explorer و از منوی درختی روی ThisWorkbook راست کلیک کنید و view code رو انتخاب کنید و کد گفته شده رو اینجا کپی کنید.
                [CENTER][COLOR=#ff0000]************************************[/COLOR]
                No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
                [COLOR=#ff0000]************************************[/COLOR]

                [/CENTER]

                کامنت

                چند لحظه..