Cerrar un archivo PDF

Resuelto
Usuario anónimo -  
 Usuario anónimo -
Hola,

Tengo un problema para cerrar un PDF, he encontrado ejemplos en la red pero ninguno de los ejemplos que he encontrado funciona en mi equipo... en pocas palabras lo que quiero hacer es cerrar un archivo PDF porque voy a crear uno encima de este PDF que tiene el mismo nombre, por lo que no puedo crear si ese PDF ya está abierto.
Aquí está la función que tengo por ahora:
 Sub Tst_2007(Nom)
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("C:\Users\Documents\TestNode2\code2\" & Nom & ".pdf")) Then
Kill ("C:\Users\Documents\TestNode2\code2\" & Nom & ".pdf")
'Set objFSO = CreateObject("Scripting.FileSystemObject")
'objFSO.DeleteFile ("C:\Users\Documents\TestNode2\code2\" & Nom & ".pdf")
'Call Fermer_Un_Programme("AcroRd32.exe")
'AppActivate MonApp, True
'SendKeys ("%{F4}") 'envoi altF4"
End If
Dim sNomFichierPDF As String
sNomFichierPDF = ThisWorkbook.Path & "\" & Nom
Application.ScreenUpdating = False
Sheets.Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNomFichierPDF _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub


He probado kill pero eso tampoco funciona...
Si alguien tuviera una solución sería genial, gracias de antemano.

Configuración: Windows 7 / Firefox 35.0

3 respuestas

  1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Hola,

    Mi contribución, utilizando la api user32 :

     Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" _ Alias "PostMessageA" _ (ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Declare Function GetWindowText Lib "user32" _ Alias "GetWindowTextA" _ (ByVal hwnd As Long, _ ByVal lpString As String, _ ByVal cch As Long) As Long Declare Function GetWindow Lib "user32" _ (ByVal hwnd As Long, _ ByVal wCmd As Long) As Long Sub Boucle_Sur_Fenetres() Dim pointeur As Long Dim titre As String pointeur = FindWindow(vbNullString, "") Do While pointeur <> 0 titre = String(100, Chr$(0)) GetWindowText pointeur, titre, 100 titre = Left$(titre, InStr(titre, Chr$(0)) - 1) If titre Like "*" & Nom & ".pdf" & "*" Then FermerFenetre pointeur: Exit Sub pointeur = GetWindow(pointeur, 2) Loop End Sub Sub FermerFenetre(handWindow As Long) PostMessage handWindow, 16, 0, 0 End Sub 


    --
    ???? Cordialement,
    Franck ????
    2
    1. Usuario anónimo
       
      Hola, gracias por tu respuesta pero tengo un error... me dice que faltan end sub, y cuando los añado sigo teniendo el error...
      0
    2. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773 > Usuario anónimo
       
      ¿Puedes copiarnos y pegar tu código íntegro?
      0