Export facture en PDF
xavier62000 Messages postés 93 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
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Facture ryanair - Forum Réseaux sociaux
- Notices gratuites pdf - Guide
26 réponses
Bonjour
A tester
Sub EXPORT_PDF()
Dim Dossier As String
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")
' Assurez-vous que le chemin est correct
Chemin = ThisWorkbook.Path & "\" & Dossier & "\"
' Vérifiez si le dossier existe, sinon créez-le
If Dir(Chemin, vbDirectory) = "" Then
MkDir Chemin
End If
' Exporter en PDF
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & Range("E5").Value & " _ " & Range("L1").Value & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End If
End Sub
Crdlt
Bonjour,
"ne fonctionne pas"
Il ne donne pas le résultat escompté, ou il provoque une erreur ? Dans ce dernier cas, laquelle et sur quelle ligne ?
Daniel
Le code passe sans erreur pour moi. Peut-être :
Chemin = ThisWorkbook.Path & " \ " & Dossier & " : \"
Bonjour Daniel
Le code de JCB40 fonctionne, La facture se créer en PDF dans un répertoire dejà créer. Mais perso, je préfère créer le répertoire avec l'Input box. Du moins c'est ce que je croyais !!
Sub EXPORT1_PDF()
Dim Dossier As String
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 Dir(Chemin, vbDirectory) = "" Then
MkDir Chemin
End If
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & Range("E5").Value & " _ " & Range("L1").Value & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTeste comme ça :
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 & " : \"
Var = ""
Var = Dir(Chemin, vbDirectory)
If Err.Number <> 0 Then
Err.Clear
MkDir Dossier
End If
ws.ExportAsFixedFormat xlTypePDF, Chemin & Range("E5").Value & " _ " & Range("L1").Value, _
xqualitystandard, True, False, 1, 1, False
End If
End Sub
Daniel
Après que le fichier PDF est généré, je cherche à envoyer par mail la facture avec le code ci-dessous.
Je n'arrive pas à attacher ma facture qui vient d'être généré
sub mail
Dim mail as CDO.Message
Set Mail = New CDO.Message
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpusessl »)=True
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpauthenticate »)=1
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpserver »)= »smtp.gmail.com »
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpserverport »)=25
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/sendusing »)=2
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/senusername »)= « ***@*** »
Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/sendpassword »)= « XXXXXXXXXX@ »
Mail.Configuration.fields.Update
With Mail
.Subject = « CSD Tennis de Table – Facture »
.From = « ***@*** »
.To = Sheets (« Modele Facture »).Range (« L10 »).Value
‘.CC = « ***@*** »
. TextBody = « Merci de recevoir votre facture relative à vos engagements. Cordialement »
.AddAttachement dossier «
End With
One error resume Next
Mail Send
Set mail = Nothing
End sub
Dans la fenêtre de l'éditeur VB, clique sur "Affichage" et "Fenêtre d'exécution"
Dans cette fenêtre d'exécution, entre :
?ThisWorkbook.Path
Appuie sur Entrée et copie ce qui s'affiche dans ta réponse.
Daniel
Le fichier se trouve dans Dropbox :
C:\Users\user\Dropbox\CSD Finance
Il sera partagé avec une autre personne pour une utilisation partagée.
Xavier
Le fichier se trouve dans Dropbox :
Dans l'éditeur il répond :
C:\Users\user\Dropbox\CSD Finance
Xavier
Le caracctère ":" n'est pas autorisé dans les noms de fichier ou de dossier. Je mets "
Factures PDF" provisoirement.
Daniel
J'ai dû ôter les espaces au début et à la fin des noms de dossier qui ne sont pas autorisés non plus. Essaie :
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 & "\"
Var = Dir(Chemin, vbDirectory)
If Var = "" Then
On Error GoTo 0
ChDir ThisWorkbook.Path
MkDir ThisWorkbook.Path & "\" & Dossier
End If
ws.ExportAsFixedFormat xlTypePDF, Chemin & Range("E5").Value & " _ " & Range("L1").Value, _
xqualitystandard, True, False, 1, 1, False
End If
End Sub
Daniel
Avant que je m'attaque à ton problème de courrier, confirme que tu souhaites envoyer le fichier par mail sans passer par OutLook.
Daniel
Trouvé plusieurs erreurs dans ce code. Proposition :
Option Explicit
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, xlQualityStandard, True, False, 1, 1, False
End If
End Sub
Bonjour Daniel,
Impeccable, sa fonctionne très bien.
Alors Oui, je souhaite envoyer :mes factures sans Outloock et dans le cas présent se sera avec Gmail. Je regarderai plus tard si je trouve les éléments de paramétrage avec SFR.
Juste pour savoir, j'ai a peu près 100 factures à faire par mois et à envoyer. Serait-il possible de faire une boucle des factures 1 à la dernière et les envoyer ensuite par mail.
Faut-il t'envoyer le code que j'ai préparé, je n'arrive pas à attacher la facture dans le mail. ??
A contrario, se sera 1 par 1 pas de soucis
Merci Cordialement
Voilà ce que j'ai commencé pour envoyer le mail lié à la facture.
Hic, je n'arrive pas à attacher la facture au mail
Dim mail as CDO.Message Set Mail = New CDO.Message Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpusessl »)=True Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpauthenticate »)=1 Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpserver »)= »smtp.gmail.com » Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/smtpserverport »)=25 Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/sendusing »)=2 Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/senusername »)= « ***@*** » Mail.configuration.fields.Item(« http://schemas.microsoft.com/cdo/configuration/sendpassword »)= « XXXXXXXXXXx » Mail.Configuration.fields.Update With Mail .Subject = « CSD Tennis de Table – Facture » .From = « ***@*** » .To = Sheets (« Modele Facture »).Range (« L10 »).Value ‘.CC = « ***@*** » . TextBody = « Merci de recevoir votre facture relative à vos engagements. Cordialement » .AddAttachement dossier & »facture End With One error resume Next Mail Send Set mail = Nothing End sub
