کمکم کنید لطفاً
لطفاً کدهای این فایل بررسی کنید چرا خروجی را سیو نمیکند
Collapse
X
-
-
از نمونه زیر الگو بگیریدفایل های پیوست شده[B][COLOR=#000080]مهدی کریمی[/COLOR][/B] -
اصلاح کد
با اجازه آقای کریمی
کدهاتون مشکلی نداشت فقط مسیر را هنگام ذخیره اعلام نکرده بودید با احترام به آقای کریمی کد ایشون را هم اضافه نمودمفایل های پیوست شدهکامنت
-
مرسی ممنونم از جوابهای کامل و نمونه کارهاتون واقعا متشکرم از اساتید بزرگ
دوستان این کد vba فقط تو آفیس 2010 به بالا که قابلیت pdfداره کار میکنه آیا یه Addin هست که بشه تو 2007 این کار pdf انجام بده ؟Last edited by hosseinamerey; 2013/12/19, 18:30.کامنت
-
با سلام دوستان و همکاران عزیز من خودم تونستم سوال خودم را جواب بدم البته با کلی چک و چونه زدن با اعضای مایکروسافت
برای اینکه بتونیم یه pdf از کار خودمون داشته باشیم
1 : پرینت از sheet
2: پرینت از worksheet
3: پرینت از روی محدوده انتخابی (Selected Range)
شرکت مایکروسافت یه Addin به من معرفی کرده که براتون میذارم و روش بعدی استفاده از کد های ماکرو و ماژول نویسی ست .
امیدوارم که خوشتون بیاد اگه لازم شد و نتونستید با کدها کار کنید بگید تا براتون یه فایل نمونه بذارم .
فایل های پیوست شدهکامنت
-
کد 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
'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 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 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_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(Selection, True, True)
'For a fixed range use this line
'FileName = RDB_Create_PDF(Range("A1:C12"), 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 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 Object, OverwriteIfFileExist 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
کامنت
-
-
دوست من ساده ترین راه برای این کار استفاده از درایور مجازی پرینتر pdf است با نصب یک نرم افزار ساده میشه چاپ خروجی از فایل رو تبدیل به pdf کرد.با سلام دوستان و همکاران عزیز من خودم تونستم سوال خودم را جواب بدم البته با کلی چک و چونه زدن با اعضای مایکروسافت
برای اینکه بتونیم یه pdf از کار خودمون داشته باشیم
1 : پرینت از sheet
2: پرینت از worksheet
3: پرینت از روی محدوده انتخابی (selected range)
شرکت مایکروسافت یه addin به من معرفی کرده که براتون میذارم و روش بعدی استفاده از کد های ماکرو و ماژول نویسی ست .
امیدوارم که خوشتون بیاد اگه لازم شد و نتونستید با کدها کار کنید بگید تا براتون یه فایل نمونه بذارم .
[CENTER][COLOR=#ffd700][/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
[IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
[/CENTER]کامنت
-
دوست عزیز شما درست میگید درصورتی که تو برنامه خودتون ریبونها و کلیک کردن و کلا سطح دسترسی رو محدود کرده باشید اونوقت دیگه نمیتونید از این پرینتر مجازی استفاده کنید چون من خودم یه برنامه انبار طراحی کردم که واسه امنیت بیشتر گزینه هاش غیرفعال کردم و استفاده از کدها و خروجی پی دی اف بهترین گزینه بوده
بازم از جوابها و نمونه فایلهاتون تشکر میکنمکامنت
-
لطفا این فایل نمونه رو بررسی کنید من میخوام براساس تاریخ تو کارتکسها که تعداد کارتکسهاش خیلی زیاده سرچ کنم سرچ بیندوتاریخ و در کل شیت ستفایل های پیوست شدهکامنت
-




کامنت