Option Explicit
Sub export()
Dim sChemin As String, sNomPDF As String
Dim FSO As Object
sChemin = ThisWorkbook.Path
sNomPDF = "Liste.pdf"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(sChemin & "\" & sNomPDF) Then
If IsFileOpen(sChemin & "\" & sNomPDF) Then
KillAcrobat
End If
Set FSO = Nothing
End If
With ActiveSheet
.PageSetup.PrintArea = "$A$1:$I$50"
.PageSetup.FitToPagesWide = 1
.PageSetup.FitToPagesTall = False
.PageSetup.RightFooter = "&P de &N"
.ExportAsFixedFormat Type:=xlTypePDF, _
filename:=sChemin & "\" & sNomPDF, _
Quality:=xlQualityStandard, _
OpenAfterPublish:=True
End With
End Sub
Private Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
' Turn error checking Off.
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
' Save the error number that occurred.
errnum = Err
' Turn error checking back On.
On Error GoTo 0
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred, file is being queried.
Case Else
Error errnum
End Select
End Function
Private Sub KillAcroRd32()
Dim RetVal As Long
RetVal = Shell("Taskkill /im AcroRd32.exe /t /f", 0)
End Sub
Private Sub KillAcrobat()
Dim RetVal As Long
RetVal = Shell("Taskkill /im Acrobat.exe /f", 0)
End Sub