کدی برای پرینت پریویو گرفتن از یک شیت خاص

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

    • 2013/10/27
    • 61
    • 51.00

    کدی برای پرینت پریویو گرفتن از یک شیت خاص

    با سلام خدمت دوستان و اساتید عزیز . 2سوال داشتم اول: آیا میشه کدی نوشت که از یک شیت خاص پرینت پریویو بگیره؟ دوم :آیا میشه کدی نوشت که فایل اکسل رو save کنه ؟ ممنون میشوم که بنده را راهنمایی کنید.
    (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))
  • Amir Ghasemiyan

    • 2013/09/20
    • 4592
    • 100.00

    #2
    نوشته اصلی توسط javadsargazi
    با سلام خدمت دوستان و اساتید عزیز . 2سوال داشتم اول: آیا میشه کدی نوشت که از یک شیت خاص پرینت پریویو بگیره؟ دوم :آیا میشه کدی نوشت که فایل اکسل رو save کنه ؟ ممنون میشوم که بنده را راهنمایی کنید.

    سلام دوست عزيز

    بفرماييد خدمت شما
    کد:
    ActiveSheet.PrintPreview
    ActiveWorkbook.Save

    کامنت

    • javadsar

      • 2013/10/27
      • 61
      • 51.00

      #3
      ممنون از لطف شما
      (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))

      کامنت

      • javadsar

        • 2013/10/27
        • 61
        • 51.00

        #4
        چطور میشه 1 شیت خاص رو پرینت پریویو گرفت بصورتی که فرم اصلی بسته شود....این کد درست است
        Private Sub CommandButton8_Click()


        Application.Windows.Application.Visible = False

        ActiveWorkbook.Sheets("Sheet1").PrintPreview




        End Sub
        Last edited by javadsar; 2013/11/29, 10:18.
        (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4592
          • 100.00

          #5
          نوشته اصلی توسط javadsargazi
          چطور میشه 1 شیت خاص رو پرینت پریویو گرفت بصورتی که فرم اصلی بسته شود....این کد درست است
          Private Sub CommandButton8_Click()


          Application.Windows.Application.Visible = False

          ActiveWorkbook.Sheets("Sheet1").PrintPreview




          End Sub
          بله اين كد شما درسته. فقط بايد جاي فرمان ها رو عوض كنيد. اول پريويو بگيرين بعد ببنديد.

          درضمن اگه لطف كنيد كدهاتون رو داخل تگ كد كه با # مشخص هست قرار بدين ممنون ميشم

          کد:
          Private Sub CommandButton8_Click()
          
          Application.Windows.Application.Visible = False
          
          ActiveWorkbook.Sheets("Sheet1").PrintPreview
          
          End Sub

          کامنت

          • javadsar

            • 2013/10/27
            • 61
            • 51.00

            #6
            پرینت پریویو میگیره ولی فرمی که در ویژوال بیسک درست کردیم مینی مایز نمیشه و روی پرینت پریویوباقی میمانه
            (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))

            کامنت

            • Amir Ghasemiyan

              • 2013/09/20
              • 4592
              • 100.00

              #7
              نوشته اصلی توسط javadsargazi
              پرینت پریویو میگیره ولی فرمی که در ویژوال بیسک درست کردیم مینی مایز نمیشه و روی پرینت پریویوباقی میمانه
              در قسمت properties فرم ، گزينه print object رو false كنيد

              کامنت

              • javadsar

                • 2013/10/27
                • 61
                • 51.00

                #8
                با عرض پوزش..........هر کار کردم نشد......لطفا فایل ضمیمه را ببینید و بفرمایید کجای کار اشکال دارم
                (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))

                کامنت

                • امين اسماعيلي
                  مدير تالار ويژوال بيسيك

                  • 2013/01/17
                  • 1198
                  • 84.00

                  #9
                  با درود
                  سوال شما یکم گنگه خوب
                  1- با userform داری کار میکنی یا نه.؟
                  اگر userform رو میخوای hide کنی که کد زیر حله :
                  کد:
                  UserForm1.Hide
                  ActiveWorkbook.Sheets("sheet1").PrintPreview
                  UserForm1.Show
                  این نحوه یکم دردسر داره چرا چون اگر نام شیت تغییر کنه یعنی بزارین اسم شیت علی تو کد هاتون هم باید علی بنویسین
                  خوب اینجا میتونین اینجوری عمل کنین
                  کد:
                  UserForm1.Hide
                  Sheet1.PrintPreview
                  UserForm1.Show
                  سوالا اینکه چرا یوزر فرم در بعضی مواقع رو صفحه باقی میمونه:
                  نمیدونم تا حالا با این مشکل برخوردین یا نه توی یه یوزر فرم دکمه ای داریم که با اون یوزر فرم دیگه ای رو باز میکنیم . و یوزر فرم اولمون را hide میکنیم. اما با کمال تعجب هنوز هستش و hide نمیشه
                  این مشکل را اینجور برطرف مکیم که در پنجره properties یوزرفرم هامون گزینه ای به نام showmodal هستش که این گزینه رو از true به false تغییر بدیم این مشکل برطرف میشه.

                  در آخر برای اینکه یه شیت خاص print preview بشه خوب باید یه جا براش مشخص کنیم چه شیتی . textbox ای ، سلی. inputbox ای. خاصیت پرینت پریویو روش دومی هم اینه که کاری به نام شیت نداره و نام کد نویسی شیت رو درنظر میگیره.
                  در پناه خداوندگار ایران زمین باشید و پیروز

                  کامنت

                  • javadsar

                    • 2013/10/27
                    • 61
                    • 51.00

                    #10
                    جناب اسماعیلی : کدهای که شما لطف کردین ...دادم ولی اکسل هنگ میکنه میشه فایل رو بررسی کنید...ممنون
                    (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))

                    کامنت

                    • امين اسماعيلي
                      مدير تالار ويژوال بيسيك

                      • 2013/01/17
                      • 1198
                      • 84.00

                      #11
                      با درود
                      ببین حل شد. دوست عزیز من شما که اکسل اصلی رو مخفی کردی نباید واسه پرینت گرفت یه بار ظاهرش کنی و بعد از پرینت پریوی دوباره مخفی اش کنی؟ در کل فک کنم مشکلت حل شد . اون توضیح بالا در مورد موندن userform رو هم تصحیح کردم
                      فایل های پیوست شده
                      در پناه خداوندگار ایران زمین باشید و پیروز

                      کامنت

                      • امين اسماعيلي
                        مدير تالار ويژوال بيسيك

                        • 2013/01/17
                        • 1198
                        • 84.00

                        #12
                        با درود
                        یه کد دیگه هم مینویسم که قبلش یه inputbox میاد و شما فقط 1 یا 2 یا ...... وارد میکنین و بر طبق ان عدد شیت مربوطه پریویو میشه . البته من برای همون یوزر فرم شما نوشتم. خوبی این کد همون مورد است که اگر نام شیت تغییر کنه نیازی به تغییر کد نیست
                        کد:
                        On Error Resume Next
                        Dim x As Integer
                        x = InputBox("enter just the number of sheet like 1 or 2 or........")
                        Worksheets(x).PrintPreview
                        اگر هم که workbook شما هم hide هستش مثل فایلی که تصحیح شد کد ها رو براش قرار بدین
                        Last edited by امين اسماعيلي; 2013/11/29, 15:41.
                        در پناه خداوندگار ایران زمین باشید و پیروز

                        کامنت

                        • javadsar

                          • 2013/10/27
                          • 61
                          • 51.00

                          #13
                          خیلی ممنون.......
                          (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))

                          کامنت

                          چند لحظه..