Export PDF qui génère un fichier vide
Bonjour,
J'utilise pour mon entreprise un fichier excel qui récupère des mesures via des instruments connectés pour garder traces des tolérances lors de la production.
J'ai une petite macro de sauvegarde très simpliste pour faire un export en PDF sur le serveur d'archivage.
Mon problème : l'export PDF génère parfois des fichier PDF dont la taille fait 5Ko (ils sont vide et non ouvrable) et d'autres fois des fichiers PDF où aucune données n'est présente uniquement les couleurs des cellules (mise en forme conditionnelle selon les tolérances).
Est-ce un problème lié directement à l'export PDF sous excel ? Y a t'il un moyen ou une commande différente qui me permettrai d'avoir un fichier PDF exploitable à tous les coups ?
Ci-dessous mon code et plus bas une image d'un PDF corrompu ainsi que d'un PDF correct.
Merci d'avance.
Sub Export_PDF()
Dim LaDate$, Titre$, Rep$, Chemin$, Path$, File$
LaDate = ActiveSheet.Range("DA1") 'LaDate = Format(Date, "yyyymmdd")
Titre = "Ligne_" & ActiveSheet.Range("BA22").Value & "_" & ActiveSheet.Range("BA21").Value
Rep = "P:\Feuille assemblage\" 'Dossier d'enregistrement pour l'export PDF
Path = "C:\Users\camera.baumer.e1\Documents\Backup assemblage\" 'Dossier d'enregistrement pour la saauvegarde Xlsm
File = LaDate & "_" & Titre & ".xlsm" 'Nom de la sauvegarde Xlsm
Chemin = Rep & LaDate & "_" & Titre 'Nom de l'export PDF
'-------------------- contrôle des cellules obligatoires -------------
' date
If Range("BA18").Value = "" Then
MsgBox ("Merci de renseigner la date !")
Exit Sub
End If
' régleur
If Range("BA19").Value = "" Then
MsgBox ("Merci de renseigner le nom du régleur !")
Exit Sub
End If
' contrôleur
If Range("BA20").Value = "" Then
MsgBox ("Merci de renseigner le nom du contrôleur !")
Exit Sub
End If
' équipe
If Range("BA21").Value = "" Then
MsgBox ("Merci de renseigner l'équipe !")
Exit Sub
End If
' ligne
If Range("BA22").Value = "" Then
MsgBox ("Merci de renseigner la ligne !")
Exit Sub
End If
'-------------------------- Export PDF ------------------------------
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'-------------------------- Sauvegarde Xlsm -------------------------
ActiveWorkbook.SaveCopyAs Filename:=Path & File
MsgBox ("Sauvegarde réussie")
End Sub
Bonsoir,
Il est souvent difficile de dire précisément d'ou vient un problème quand il est aléatoire.
Dans ce genre de cas, il faut :
- décider d'une méthodologie pour trouver la source du problème, par exemple la recréation du fichier Excel, faire des tests de sauvegarde à partir d'un autre ordinateur sur disque non réseau, faire des essais de génération du pdf en modifiant la qualité (Quality:=xlQualityxxxxxx ou xxxxxx est le niveau de qualité), de chercher les cas qui peuvent générer ce problème. Tu peux aussi contacter ton assitance si tu travaille dans le cadre d'une entreprise...
- trouver un parade provisoire ou définitive, par exemple si le problème est aléatoire, peut-être récupérer la taille du fichier pdf enregistré qui doit faire moins de kilo octets qu'un fichier correct et dans ce cas supprimer le pdf en erreur et tenter une nouvelle sauvegarde, soit en une fois soit dans une boucle de quelques items (5 par exemple), sinon il est fréquent d'avoir un addin du style de Pdf Créator qui permettent d'utiliser le driver d'impression pour générer un fichier pdf... Faire les mises à jour d'office peut aussi résoudre des problèmes...
Benead