Export facture en PDF
danielc0 Messages postés 2106 Date d'inscription Statut Membre Dernière intervention -
Bonjour, à vous
Je cherche à Exporter mes factures Excel en PDF en créant un dossier en cliquant sur un bouton Exporter pour éviter de faire les manipulations.
Le nom du fichier exporter se concatène avec les cellules E5 et L1 (num facture + client)
Pouvez me faire part, pourquoi le code ci-dessous ne fonctionne pas !! Le fichier se trouve dans un répertoire "Finance" sur onedrive et normalement je devrais retrouver Finance/factures Pdf.
Merci d'avance
Sub EXPORT_PDF()
Dim Dossier
Dim Chemin As String
Dim ws As Worksheet
Set ws = ActiveSheet
If MsgBox(" Voulez vous exporter la facture en PDF ", vbYesNo + vbQuestion, "Confirmation….. ! ") = vbYes Then
On Error Resume Next
Dossier = Application.InputBox("Insérer nom du dossier", "Création du dossier", "Factures PDF ")
Chemin = ThisWorkbook.Path & " / " & Dossier & " : "
If Dossier = True Then
GetAttr (Chemin) And vbDirectory
Else
MkDir (Chemin)
End If
ws.ExportAsFixedFormat xlTypePDF, Chemin & Range("E5").Value & " _ " & Range("L1").Value, xqualitystandard, True, False, 1, 1, False
End If
End Sub
Windows / Edge 142.0.0.0
- Export facture en PDF
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Save as pdf office 2007 - Télécharger - Bureautique
- Facture ryanair - Forum Consommation & Internet
- Pdf watermark remover - Télécharger - PDF
- Comment obtenir une facture detaillee - Forum Réseaux sociaux
45 réponses
Le problème porte sur l’export d’une facture Excel en PDF avec création d’un dossier et nom de fichier calculé à partir des cellules E5 et L1, le tout dans un répertoire Finance sur OneDrive, mais le code actuel échoue. La solution la plus pertinente propose de déclarer Dossier comme chaîne, de construire le chemin avec des backslashes, de tester/créer le dossier via Dir et MkDir, puis d’exporter le PDF en utilisant le chemin complet et le nom fichier provenant de E5 et L1. Cette approche corrige l’erreur où Dossier était traité comme booléen et évite les séparateurs inadaptés dans le chemin. Des éléments évoquent que le stockage sur OneDrive ou Dropbox peut influencer le chemin d’accès et que des vérifications avec ThisWorkbook.Path ou des tests supplémentaires peuvent aider à diagnostiquer le chemin réel.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTeste le code ci-dessous. Il faut modifier la 4e ligne pour indiquer l'adresse du compte expéditeur :
Expediteur = "XXXX@XXXX.com"
Sub Mail()
Dim NS As Object, GaddressList, Expediteur As String, Exp As Object
Dim M As Object, olApp As Object, oAccount As Object
Expediteur = "XXXX@XXXX.com"
Set olApp = CreateObject("Outlook.application")
For Each oAccount In olApp.Session.Accounts
Debug.Print oAccount.smtpaddress
If oAccount.smtpaddress = Expediteur Then
Set M = olApp.CreateItem(olMailItem)
With M
.Subject = "CSD Tennis de Table – Facture"
.Body = "Merci de recevoir votre facture relative à vos engagements. Cordialement"
.Recipients.Add Sheets("Modele Facture ").Range("L10").Value
Set .sendusingaccount = oAccount
.attachments.Add "c:\XXXXXX.pdf"
.Send
End With
Exit For
End If
Next
End Sub
Daniel
Bonjour Daniel,
Désolé de répondre tardivement !!
j'ai un problème de configuration avec Outlook. Donc je ne peux pas dire si c'est OK
le message se produit après la macros d excel.
faut il desinstaller outlook de microsoft 365.
c'est le classic qui va pas
Non, j'ai testé avec Outlook 365 classic sans erreur. Est-ce que tu t'es connecté à ton compte Microsoft comme ils te le disent ?
Daniel
Tu ne vois rien d'anormal concernant ton abonnement à Microsoft 365 ? Sinon, Ouvre le classeur dans Excel. Appuie sur les touches Alt+F11. La fenêtre de l'éditeur VB s'ouvre. Clique dans la macro Mail.Appuie sur F8 pour exécuter la macro ligne par ligne. Recommence jusqu'à arriver à une erreur ou à la fin de la macro. Est-ce qu'il y a une erreur ?
Daniel
Normalement, on doit pouvoir utiliser les deux. Moi, j'ai testé avec Classic. New me sort par les yeux, mais c'est uniquement un différence d'interface utilisateur. Donc aucune différence pour les macros.
Daniel
Exécute aussi cette macro qui doit afficher le numéro et le libellé de l'erreur.
Sub Mail()
Dim NS As Object, GaddressList, Expediteur As String, Exp As Object
Dim M As Object, olApp As Object, oAccount As Object
Expediteur = "XXXX@XXXX.com"
Set olApp = CreateObject("Outlook.application")
On Error Resume Next
For Each oAccount In olApp.Session.Accounts
MsgBox Err.Number & " " & Err.Description
Exit Sub
Debug.Print oAccount.smtpaddress
If oAccount.smtpaddress = Expediteur Then
Set M = olApp.CreateItem(olMailItem)
With M
.Subject = "CSD Tennis de Table – Facture"
.Body = "Merci de recevoir votre facture relative à vos engagements. Cordialement"
.Recipients.Add Sheets("Modele Facture ").Range("L10").Value
Set .sendusingaccount = oAccount
.attachments.Add "c:\XXXXXX.pdf"
.Send
End With
Exit For
End If
Next
End Sub
Daniel






