Problème de compilation VBA

Bonjour.

Je suis complètement novice en programmation VBA, mais j'avais besoin pour mon restaurant de "moderniser" mes factures et d'automatiser un peu le processus de facturation client. J'ai trouvé sur le net un cours en vidéo, expliquant le processus de codage pas à pas et qui me convenait parfaitement. Il s'agissait pour moi de programmer en un seul bouton, le processus de sauvegarde de ma facture au format excel puis de la transformer en fichier PDF et de la renommer en même temps sous la forme [Nom de la société-Mois de facturation-Numéro de facture-Extension de fichier]. J'ai suivi la démarche à la virgule près, mais quand je clique sur le bouton pour lancer l'exportation du fichier, une boîte de dialogue s'ouvre m'indiquant :

"Erreur d'exécution '1004': erreur définie par l'application ou par l'objet".

J'ai revérifié 10 fois, essayé de contacter l'auteur des vidéos (sans succès), mais rien n'y fait.

J'ai vraiment besoin d'aide car, vous l'aurez compris, c'est relativement important pour la bonne continuation de notre activité.

Je vous joins une copie du code de mon facturier, au format Word, afin que vous puissiez essayer de trouver la solution (ou les solutions !!) à mon problème.

Petite précision, la vidéo date de 2014 et quant à moi, je possède une version d'Excel 2010.

A tout hasard, je vous mets également le lien de la vidéo, si ça peut vous éclairer quant à la version utilisée par l'auteur.

https://www.youtube.com/watch?v=cWRSKZRFwa4

Voilà, j'espère avoir été aussi clair que possible et je me tiens à votre disposition si vous avez besoin d'éclaircissements.

Merci par avance pour l'intérêt et le temps que vous accorderez à ma requête. A très bientôt.

Avec la pièce jointe c'est mieux

Bonjour,

il serait plus intéressant de mettre le code ici entre les < /> que tu vois en haut et aussi d'annexer une copie ayant la structure identique à ton fichier XL.

P.

Bonjour Patrick, et merci d'avoir pris le temps d'étudier mon problème. Je vais essayer de répondre à ta demande le plus précisément possible, en espérant ne pas me tromper

Concernant le code :

Private Sub CommandButton1_Click()
'formulaire saisie clients
Feuil3.ShowDataForm
End Sub

Private Sub CommandButton2_Click()
'compteur incrémenter facture
Sheets("Données").Range("B2") = Sheets("Données").Range("B2") + 1
End Sub

Private Sub CommandButton3_Click()
'Export facture format PDF
info1 = Sheets("Facture").Range("G2")
info2 = Sheets("Facture").Range("I8")
info3 = Sheets("Données").Range("B2")
Nom = info1 & "-" & info2 & "-" & info3 & "-" & ".xls"
ThisWorkbook.Save
ThisWorkbook.SaveAs (Nom)
ThisWorkbook.Activate
If MsgBox("Avez vous pensé à valider votre facture afin de générer le numéro automatique ?", vbYesNo, "Attention, message important !!!") = vbYes Then
ChDir "d:\Users\perso\Documents\Auberge des pêcheurs\Factures clients\Nouvelle facturation"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, quality:= _
xlQualityStandard, incluseDocProperties:=True, ignorePrintareas:=False, _
from:=1, to:=1, openAfterpublish:=True
End If
End Sub

J'ai joint le fichier Excel sur lequel je fais mes essais de programmation, en espérant que cela répondra à tes attentes.

Encore une fois, merci de m'aider à solutionner ce problème.

A très bientôt j'espère !!

Christophe.

re

regarde à ta ligne de création PDF .. et essaie ceci:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nom & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

P.

Re Patrick et merci d'avoir pris le temps de jeter un œil à tout ça

J'ai suivi ton conseil, j' ai essayé avec les lignes de code que tu m'as donné, mais malgré tout ça ne fonctionne pas

Voici ce que j'ai fait :

Private Sub CommandButton3_Click()
'Export facture format PDF
info1 = Sheets("Facture").Range("G2")
info2 = Sheets("Facture").Range("I8")
info3 = Sheets("Données").Range("B2")
Nom = info1 & "-" & info2 & "-" & info3 & "-" & ".xls"
ThisWorkbook.Save
ThisWorkbook.SaveAs (Nom)
ThisWorkbook.Activate
If MsgBox("Avez vous pensé à valider votre facture afin de générer le numéro automatique ?", vbYesNo, "Attention, message important !!!") = vbYes Then
ChDir "d:\Users\perso\Documents\Auberge des pêcheurs\Factures clients\Nouvelle facturation"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
Filename:=Nom & ".pdf", IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
End Sub

Ce que je ne comprends pas, c'est que sans toucher à la ligne de code qui concerne la MessageBox, celle - ci ne s'ouvre plus et la sauvegarde du fichier Excel ne fonctionne plus non plus Je t'avoue bien humblement que je suis quelque peu perdu lol.

Merci encore et à tout bientôt

Christophe.

Mon cher Patrick.

Problème résolu, et je t' en remercie infiniment. J'ai lu et relu les lignes de commande pour m'apercevoir que j'avais oublié une virgule ....

Je cours de ce pas me flageller en place publique lol.

Du coup, ne tiens pas compte de mon précédent post et je te remercie pour ton aide si précieuse !!!

Bonne continuation et peut -être à une prochaine fois

Bien cordialement.

Christophe.

re,

you are welcome

P.

Bonjour,

Sinon en indiquant le chemin directement dans FileName et en remplaçant -.xls par .pdf:

Private Sub CommandButton3_Click()

    Dim Fe As Worksheet
    Dim Chemin As String

    Set Fe = Worksheets("Facture")

    'Export facture format PDF
    info1 = Fe.Range("G2").Value
    info2 = Fe.Range("I8").Value
    info3 = Fe.Range("B2").Value

    Chemin = "D:\Users\perso\Documents\Auberge des pêcheurs\Factures clients\Nouvelle facturation\"
    nom = info1 & "-" & info2 & "-" & info3 & "-" & ".xls"

    ThisWorkbook.Save
    ThisWorkbook.SaveAs (nom)
    ThisWorkbook.Activate

    If MsgBox("Avez vous pensé à valider votre facture afin de générer le numéro automatique ?", _
              vbQuestion + vbYesNo, _
              "Attention, message important !!!") = vbYes Then

        ActiveSheet.ExportAsFixedFormat xlTypePDF, Chemin & Replace(nom, "-.xls", ".pdf"), xlQualityStandard, True, False, 1, 1, True

    End If

End Sub

Bonjour Theze

Je n'ai pas essayé ta solution pour la simple raison que je n'ai pas vu ton post avant et que l'un des participants du forum a résolu mon problème dans l'intervalle de temps.

Malgré tout, je vais tester cela dès que possible et voir laquelle des 2 solutions fonctionne le mieux !!

En attendant, merci d'avoir consacré du temps à mon problème et je t'en remercie.

Cordialement.

Christophe.

Bonjour Theze

J'ai essayé ta solution et ça fonctionne aussi parfaitement. Donc, problème résolu et je tenais à te remercier pour ton aide.

A très bientôt peut - être ... ou sûrement même !!! lol

Bonne continuation et encore merci.

Cordialement.

Christophe.

Rechercher des sujets similaires à "probleme compilation vba"