پرینت پریویو هوشمند

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

    • 2013/10/27
    • 61
    • 51.00

    پرینت پریویو هوشمند

    اساتید لطفا کد پایین را بررسی نمایید و نظرتون را درباره اینکه آیا میشود بگونه ای کد پایین را اصلاح کرد که وقتی پرینت پریویو انجام میشود تا ردیفی که در شیت دیتا وجود دارد بصورت اتوماتیک تنظیم شود . ......البته شاید بهتر است بگوییم آیا میشود print area را بصورت هوشمند و تا ردیفی که در شیت دیتا وجود دارد set کرد.
    کد:
    Private Sub CommandButton1_Click()
    Application.Windows.Application.Visible = True
    UserForm15.Hide
    UserForm12.Hide
    UserForm1.Hide
    Sheet13.Range("c3") = TextBox1.Value
    Sheet13.PrintPreview
    Application.Windows.Application.Visible = False
    UserForm15.Show
    UserForm12.Show
    UserForm1.Show
    End Sub
    (( همیشه یادتون باشه که خدا منبع خوبی هاست . اگر حالمون خوب نیست شاید از خدا دور شدیم !؟!؟!؟ ))
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    نوشته اصلی توسط javadsargazi
    اساتید لطفا کد پایین را بررسی نمایید و نظرتون را درباره اینکه آیا میشود بگونه ای کد پایین را اصلاح کرد که وقتی پرینت پریویو انجام میشود تا ردیفی که در شیت دیتا وجود دارد بصورت اتوماتیک تنظیم شود . ......البته شاید بهتر است بگوییم آیا میشود print area را بصورت هوشمند و تا ردیفی که در شیت دیتا وجود دارد set کرد.
    کد:
    Private Sub CommandButton1_Click()
    Application.Windows.Application.Visible = True
    UserForm15.Hide
    UserForm12.Hide
    UserForm1.Hide
    Sheet13.Range("c3") = TextBox1.Value
    Sheet13.PrintPreview
    Application.Windows.Application.Visible = False
    UserForm15.Show
    UserForm12.Show
    UserForm1.Show
    End Sub


    ببخشيد من جاي اساتيد جواب ميدم.

    از اين كد كمك بگيرين

    کد:
    Dim a As String
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.PrintPreview
    اگر بخواين تنظيماتي هم اعمال كنيد از اين كد و مشابه آن استفاده كنيد
    کد:
    Dim a As String
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    With ActiveSheet.PageSetup
        .CenterHorizontally = False
        .CenterVertically = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        End With
    Selection.PrintPreview

    Last edited by Amir Ghasemiyan; 2013/12/05, 09:10. دلیل: تكميل پست

    کامنت

    • javadsar

      • 2013/10/27
      • 61
      • 51.00

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

      کامنت

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

        • 2013/01/17
        • 1198
        • 84.00

        #4
        با درود
        دوست عزیز شما یه ماکرو ضبط کن ابتدا یه محدوده مثلا A1:C10 رو set print area قرار بده.بعدش یه پرینت پردیو بگیر بعد ماکرد رو متوقف کن.
        مرحله دو پویا کردن رنج شماست که کافیه یک متغییر برای پیدا کردن ردیف اخر تعریف کنید . که نمونه فایل هایی که در اون این متغییر استفاده میشه بسیار در سایت یافت میشه. اگر کدی رو من نوشته باشم این متغییر رو با Lastrow تعریف کردم.
        حداقل ازتون انتظار دارم مرحله اول رو خودتون انجام بدین
        در پناه خداوندگار ایران زمین باشید و پیروز

        کامنت

        • علی فاطمی

          • 2014/02/17
          • 523
          • 51.00

          #5
          با سلام
          یه سر به تاپیک زیر بزن شاید کمکت کنه چون من قبلا با این مشکل مواجه شدم و با سعی خطا و کمک دوستان بخصوص جناب اسماعیلی یه جورایی آماتوری حلش کردم که البته برای صفحات با تعداد زیاد یه خورده مشکل خواهد بود.
          محدود کردن page در print یک شیت به صورت اتوماتیک با دستور vb
          [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


          [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
          [/CENTER]

          کامنت

          چند لحظه..