لطفاً کدهای این فایل بررسی کنید چرا خروجی را سیو نمیکند

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

    • 2012/09/13
    • 193

    لطفاً کدهای این فایل بررسی کنید چرا خروجی را سیو نمیکند

    میخوام این فایل اکسل یه سیو از شیت فعال بگیره و در یه مسیر دلخواه یا ثابت ذخیره کنه البته گه بشه خروجی به صورت پی دی اف باشه خیلی بهتر میشه
    کمکم کنید لطفاً
    فایل های پیوست شده
  • MEYTI

    • 2010/11/11
    • 362

    #2
    از نمونه زیر الگو بگیرید
    فایل های پیوست شده
    مهدی کریمی

    کامنت

    • rezajaberpour

      • 2013/10/07
      • 38
      • 0.00

      #3
      اصلاح کد

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

      کامنت

      • hosseinamerey

        • 2012/09/13
        • 193

        #4
        مرسی ممنونم از جوابهای کامل و نمونه کارهاتون واقعا متشکرم از اساتید بزرگ
        دوستان این کد vba فقط تو آفیس 2010 به بالا که قابلیت pdfداره کار میکنه آیا یه Addin هست که بشه تو 2007 این کار pdf انجام بده ؟
        Last edited by hosseinamerey; 2013/12/19, 17:30.

        کامنت

        • hosseinamerey

          • 2012/09/13
          • 193

          #5
          با سلام دوستان و همکاران عزیز من خودم تونستم سوال خودم را جواب بدم البته با کلی چک و چونه زدن با اعضای مایکروسافت
          برای اینکه بتونیم یه pdf از کار خودمون داشته باشیم
          1 : پرینت از sheet
          2: پرینت از worksheet
          3: پرینت از روی محدوده انتخابی (Selected Range)
          شرکت مایکروسافت یه Addin به من معرفی کرده که براتون میذارم و روش بعدی استفاده از کد های ماکرو و ماژول نویسی ست .
          امیدوارم که خوشتون بیاد اگه لازم شد و نتونستید با کدها کار کنید بگید تا براتون یه فایل نمونه بذارم .
          فایل های پیوست شده

          کامنت

          • hosseinamerey

            • 2012/09/13
            • 193

            #6
            کد PHP:
            Sub RDB_Workbook_To_PDF()
                
            Dim FileName As String
                
            'Call the function with the correct arguments
                FileName = RDB_Create_PDF(ActiveWorkbook, True, True)

                If FileName <> "" Then
                    '
            Okyou find the PDF where you saved it
                    
            'You can call the mail macro here if you want
                Else
                    MsgBox "Not possible to create the PDF, possible reasons:" & vbNewLine & _
                           "Microsoft Add-in is not installed" & vbNewLine & _
                           "You Canceled the GetSaveAsFilename dialog" & vbNewLine & _
                           "You didn'
            t want to overwrite the existing PDF file"
                End If
            End Sub

            Sub RDB_Worksheet_Or_Worksheets_To_PDF()
                Dim FileName As String

                If ActiveWindow.SelectedSheets.Count > 1 Then
                    MsgBox "
            There is more then one sheet selected," & vbNewLine & _
                           "
            be aware that every selected sheet will be published"
                End If

                'Call the function with the correct arguments
                FileName = RDB_Create_PDF(ActiveSheet, True, True)

                If FileName <> "" Then
                    'Ok, you find the PDF where you saved it
                    'You can call the mail macro here if you want
                Else
                    MsgBox "
            Not possible to create the PDFpossible reasons:" & vbNewLine & _
                           "
            Microsoft Add-in is not installed" & vbNewLine & _
                           "
            You Canceled the GetSaveAsFilename dialog" & vbNewLine & _
                           "
            You didn't want to overwrite the existing PDF file"
                End If
            End Sub

            Sub RDB_Selection_Range_To_PDF()
                Dim FileName As String

                If ActiveWindow.SelectedSheets.Count > 1 Then
                    MsgBox "There is more then one sheet selected," & vbNewLine & _
                           "ungroup the sheets and try the macro again"
                Else
                    '
            Call the function with the correct arguments
                    FileName 
            RDB_Create_PDF(SelectionTrueTrue)
                    
            'For a fixed range use this line
                    '
            FileName RDB_Create_PDF(Range("A1:C12"), TrueTrue)

                    If 
            FileName <> "" Then
                        
            'Ok, you find the PDF where you saved it
                        '
            You can call the mail macro here if you want
                    
            Else
                        
            MsgBox "Not possible to create the PDF, possible reasons:" vbNewLine _
                               
            "Microsoft Add-in is not installed" vbNewLine _
                               
            "You Canceled the GetSaveAsFilename dialog" vbNewLine _
                               
            "You didn't want to overwrite the existing PDF file"
                    
            End If
                
            End If
            End Sub

            Function RDB_Create_PDF(Myvar As ObjectOverwriteIfFileExist As Boolean_
                                    OpenPDFAfterPublish 
            As Boolean) As String
                Dim FileFormatstr 
            As String
                Dim Fname 
            As Variant

                
            'Test If the Microsoft Add-in is installed
                If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
                     & Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then

                    '
            Open the GetSaveAsFilename dialog to enter a file name for the pdf
                    FileFormatstr 
            "PDF Files (*.pdf), *.pdf"
                    
            Fname Application.GetSaveAsFilename(""filefilter:=FileFormatstr_
                                                          Title
            :="Create PDF")

                    
            'If you cancel this dialog Exit the function
                    If Fname = False Then Exit Function

                    '
            If OverwriteIfFileExist False we test if the PDF
                    
            'already exist in the folder and Exit the function if that is True
                    If OverwriteIfFileExist = False Then
                        If Dir(Fname) <> "" Then Exit Function
                    End If

                    '
            Now the file name is correct we Publish to PDF
                    On Error Resume Next
                    Myvar
            .ExportAsFixedFormat _
                            Type
            :=xlTypePDF_
                            FileName
            :=Fname_
                            Quality
            :=xlQualityStandard_
                            IncludeDocProperties
            :=True_
                            IgnorePrintAreas
            :=False_
                            OpenAfterPublish
            :=OpenPDFAfterPublish
                    On Error 
            GoTo 0

                    
            'If Publish is Ok the function will return the file name
                    If Dir(Fname) <> "" Then RDB_Create_PDF = Fname
                End If
            End Function 

            کامنت

            • hosseinamerey

              • 2012/09/13
              • 193

              #7
              بچه ها اگر مفید بوده دکمه تشکر به پاس خدمات بفشارید . با تشکر
              آخه لازمش دارم

              کامنت

              • Alireza
                مدير تالار تنظيمات اكسل

                • 2011/03/01
                • 648
                • 80.00

                #8
                نوشته اصلی توسط hosseinamerey
                با سلام دوستان و همکاران عزیز من خودم تونستم سوال خودم را جواب بدم البته با کلی چک و چونه زدن با اعضای مایکروسافت
                برای اینکه بتونیم یه pdf از کار خودمون داشته باشیم
                1 : پرینت از sheet
                2: پرینت از worksheet
                3: پرینت از روی محدوده انتخابی (selected range)
                شرکت مایکروسافت یه addin به من معرفی کرده که براتون میذارم و روش بعدی استفاده از کد های ماکرو و ماژول نویسی ست .
                امیدوارم که خوشتون بیاد اگه لازم شد و نتونستید با کدها کار کنید بگید تا براتون یه فایل نمونه بذارم .
                دوست من ساده ترین راه برای این کار استفاده از درایور مجازی پرینتر pdf است با نصب یک نرم افزار ساده میشه چاپ خروجی از فایل رو تبدیل به pdf کرد.
                تنها راهي که به شکست مي انجامد، تلاش نکردن است

                کامنت

                • hosseinamerey

                  • 2012/09/13
                  • 193

                  #9
                  نوشته اصلی توسط Alireza2011
                  دوست من ساده ترین راه برای این کار استفاده از درایور مجازی پرینتر pdf است با نصب یک نرم افزار ساده میشه چاپ خروجی از فایل رو تبدیل به pdf کرد.

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

                  کامنت

                  • hosseinamerey

                    • 2012/09/13
                    • 193

                    #10
                    لطفا این فایل نمونه رو بررسی کنید من میخوام براساس تاریخ تو کارتکسها که تعداد کارتکسهاش خیلی زیاده سرچ کنم سرچ بیندوتاریخ و در کل شیت ست
                    فایل های پیوست شده

                    کامنت

                    • hosseinamerey

                      • 2012/09/13
                      • 193

                      #11
                      دوستان عالی بود

                      کامنت

                      چند لحظه..