Fermeture d'un fichier ouvert avec ActiveWorkbook.SaveAs Filename

jlp035

XLDnaute Occasionnel
Bonjour,
mon morceau de programme copie la feuille active dans un nouveau fichier et le convertit en pdf.
Mais à partir la ligne "ActiveWorkbook.Close " le programme ne semble plus repondre..
Je suis donc à la recherche d'une astuce ou solution.

Merci par avance.

Code:
Sub CopieFeuilleDocumentsPdf()
   ' déclarations des variables
   Dim Std As String  ' Liste de nom fichier Document
   Dim Crd As String
   Dim Soc As String
   Dim The As String
   Dim Fic As String
   Dim Nfd As String
   Dim Che As String
   Dim pdfjob As PDFCreator.clsPDFCreator
      ' 
   Crd = Range("AA5")  ' Chemin du repertoire Documents
   Soc = Range("O11")  ' Nom Sociètè
   The = Range("B21")  ' Thème
   Fic = Range("AA1")   ' Fichier logiciel
   Che = Range("AA2")  ' Chemin logiciel

   ' Test pour verifier que le chemin existe
 If Dir$(Crd) = "" Then
   ' Chemin du fichier copier
   Std = Crd & "\" & Soc & "  " & Format(Date, "yyyy_mm_dd") & "  " & Format(Time, "hh_mm") & "  " & The & ".pdf"
   Nfd = Soc & "  " & Format(Date, "yyyy_mm_dd") & "  " & Format(Time, "hh_mm") & "  " & The & ".pdf"
        
   ActiveWorkbook.SaveAs Filename:=Nfd
   
   If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
   Set pdfjob = New PDFCreator.clsPDFCreator
   With pdfjob
    ' Demarre Pdf creator
   If .cStart("/NoProcessingAtStartup") = False Then
   MsgBox "Can't initialize PDFCreator.", vbCritical + _
   vbOKOnly, "PrtPDFCreator"
   'Application.Wait (Now + TimeValue("0:00:05"))
   Exit Sub
  End If
    ' Parametres Pdf creator
 .cOption("UseAutosave") = 1
 .cOption("UseAutosaveDirectory") = 1
 .cOption("AutosaveDirectory") = Crd 'Chemin du fichier
 .cOption("AutosaveFilename") = Nfd 'Nom du fichier
 .cOption("AutosaveFormat") = 0 ' 0 = PDF
 .cClearCache
 End With
 'Imprime le document en PDF
 ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
 'Attend que le document soit entré dans la file d'impression
 Do Until pdfjob.cCountOfPrintjobs = 1
 DoEvents
 Loop
pdfjob.cPrinterStop = False
 'Attend que l'impression du document soit terminée
 Do Until pdfjob.cCountOfPrintjobs = 0
 DoEvents
 Loop
  pdfjob.cClose
  Set pdfjob = Nothing

   MsgBox "la feuille en Pdf à ètè copièe dans " & vbCrLf & " le fichier documents destinataires:" & vbCrLf & Std
   
   ActiveWorkbook.Close ' à partir de cette ligne le programme semble ne plus fonctionner   
  
     Else
   MsgBox " Le fichier" & Crd & " est introuvable ?" & vbCrLf & " Vérifier le chemin du fichier  :" & vbCrLf & "documents du destinataire."
     End If
      
   Windows(Che & "\" & Fic).Activate
   
   MsgBox "Selection de la page document "
   Sheets("Documents").Select
   ActiveWindow.SmallScroll Down:=-35
  End Sub
 

francedemo

XLDnaute Occasionnel
Re : Fermeture d'un fichier ouvert avec ActiveWorkbook.SaveAs Filename

bonjour
essaye de remplacer "ActiveWorkbook.Close" par "ThisWorkbook.Close" pour lui dire de fermer le fichier d'origine de la macro et pas celui qui est actif à ce moment là
à+
 

jlp035

XLDnaute Occasionnel
Re : Fermeture d'un fichier ouvert avec ActiveWorkbook.SaveAs Filename

Bonjour, ci joint le fichier.

Meri de votre interet.
 

Pièces jointes

  • 2012_02_05 documents(pdf).zip
    22.6 KB · Affichages: 46
  • 2012_02_05 documents(pdf).zip
    22.6 KB · Affichages: 45
  • 2012_02_05 documents(pdf).zip
    22.6 KB · Affichages: 43

Yaloo

XLDnaute Barbatruc
Re : Fermeture d'un fichier ouvert avec ActiveWorkbook.SaveAs Filename

Re,

Juste une petite question : tu as quelle version d'Excel ?

Car à partir d'Excel 2007, tu peux enregistrer directement en PDF, tu n'es pas obliger d'utiliser un autre logiciel.

Sinon voir ici ou

Je n'utilise pas PDFCréator, donc je ne peux d'aider davantage.

Bonne nuit

Yaloo
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 962
Membres
103 066
dernier inscrit
bobfils