Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 SOS enregistrement en PDF ne fonctionne plus

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

superbog

XLDnaute Occasionnel
Bonsoir,

Je ne sais plus que faire, j'ai une macro qui fonctionne depuis des lustres pour enregistrer une feuille en PDF. Je l'ai recopié dans un nouveau fichier, en changeant juste le chemin. A la première utilisation elle a parfaitement fonctionné et là elle ne veut plus.

Lorsque je lance la macro, j'ai une fenêtre erreur d’exécution


j'ai vérifié le pdf n'existe pas et n'est donc pas ouvert.

voici la partie de la macro qui semble ne pas fonctionner (fichier joint)
VB:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=_"C:\Users\BAB\DX\GESTION MAMAN\QUITTANCES\" & nomNewClasseur, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, from:=1, To:=1, OpenAfterPublish:=True

merci d'avance de votre aide
 

Pièces jointes

Dernière édition:
Salut,

Il est difficile de vérifier sans fichier (sans donnees conficdentielles)...
En faisant un enregistrement de macro, il y a un bout, qui ne ressort pas:
VB:
nomNewClasseur = Range("A12") & "quittance -" & Range("C4") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\BAB\DX\GESTION MAMAN\QUITTANCES\" & nomNewClasseur, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False,  OpenAfterPublish:=False

Rien à voir, mais plutot que de créer une étiquette "300" pour la condition vide, pourquoi ne pas avoir fait :
VB:
If  IsEmpty(sh2.Cells(i, 7)) Then
...
End If

++
 
Salut,

Trouvé :

Le nom du pdf ne doit pas contenir de "/" ; voilà le problème:
Voici une idée :
VB:
chemin = ThisWorkbook.Path & "\"
nomNewClasseur = Range("A12") & "quittance -" & Format(Range("C4"), "ddmmyyyy") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & nomNewClasseur, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Du coup, la question subsidiaire est : comment la macro tournait avant ??
 

Non la macro fonctionne très bien d'origine avec \ d'ailleurs c'est ainsi que l'enregistreur de macro le note
VB:
 ChDir "C:\Users\BB\DX\GESTION MAMAN\QUITTANCES\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\BB\DX\GESTION MAMAN\QUITTANCES\Immeubles.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

donc le problème est ailleurs car
1°) j'ai essayé avec votre solution cela ne fonctionne pas
2°) cela marchait avant
3°) encore plus bizarre, la macro d'origine (seul le chemin est différent) fonctionne toujours
4°) j'ai essayé de changer le classeur de place dans mon disque dur, cela ne change rien

HELP 😡😵
 
Dernière édition:
Bonjour
Votre dernier code semble suggérer que le sous dossier dans lequel doit être enregistré le fichier ne porte pas de nom…
Est-ce possible ?
Après un ChDir le dossier spécifié devient le chemin courant pour son lecteur.
En ajoutant une instruction ChDrive "C" par sécurité, vous n'auriez plus besoin de le préciser au ExportAsFixedFormat, juste le nom du fichier.
 

pardon non le dernier code que vous voyez est juste un enregistrement macro test, le sous dossier s'appelle quittances tout simplement, le double \\ était une erreur de frappe que j'ai corrigé.
Par contre je ne comprend pas bien votre proposition concernant le ChDrive, pourriez vous me donner un exemple?
 
Voila par exemple :
VB:
Option Explicit

Sub Main()
ProduirePdf ThisWorkbook.Path, "Toto"
End Sub

Sub ProduirePdf(ByVal Doss As String, ByVal NomFic As String)
On Error Resume Next
ChDrive Doss: ChDir Doss
If Err Then MsgBox "Impossible d'accéder au dossier """ & Doss & """." _
  & vbLf & Err.Description, vbCritical, "ProduirePdf": Exit Sub
If LCase$(Right$(NomFic, 4)) <> ".pdf" Then NomFic = NomFic & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomFic, _
  Quality:=xlQualityStandard, IncludeDocProperties:=True, _
  IgnorePrintAreas:=False, OpenAfterPublish:=True
If Err Then MsgBox "Impossible de créer """ & NomFic & """ sur :" & vbLf & CurDir _
  & vbLf & Err.Description, vbCritical, "ProduirePdf"
End Sub
Au lieu de "Toto" vous pouvez bien sûr mettre une expression String telle que la concaténation par des "&" d'éléments fixes et variables, dont des Value d'expressions Range.
 
Dernière édition:

j'ai mis en oeuvre mais il y a l'erreur suivante
"impossible de créer "toto.pdf" sur : C:\Users\BB\DX\GESTION MAMAN\QUITTANCES
document non enregistré. Le document est peut-être ouvert ou une erreur s'est produite lors de l'enregistrement
.

or le document n'est pas ouvert et quand je fais l'enregistrement manuellement cela fonctionne...

arg....
 
Bonsoir à tous

Suggestion en passant
Ta session Windows est ouverte sous quel nom utilisateur ? BB?
Ou autre chose?

Ce dossier existe bien ?
C:\Users\BB\DX\GESTION MAMAN\QUITTANCES

Tu as les droits d'écriture sur le lecteur C?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
246
  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
317
Réponses
3
Affichages
932
Réponses
10
Affichages
654
Réponses
3
Affichages
800
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…