Exporter un duplicata de factures
Bonjour à tous,
Comme la plupart des personnes qui consultent sur ce forum, j'ai un problème pour exporter mes factures, si quelqu'un peut m'aider j'ai déjà une ébauche du codage mais avec des erreurs
Ce que je souhaite en finalité c'est obtenir:
1-Un duplicata de ma facture dans le disque C dont le chemin est le suivant : C:\ARCHIVES FICHES HONORAIRES\ => mon codage fonctionne sur cet item puisque qu'il effectue une copie de l'onglet MATRICE vers un nouveau fichier
2-Renommer le fichier avec le numéro de la facture qui figure dans l'onglet MATRICE cellule D11 mais également dans mon nouveau fichier dupliqué cellule D11
3-Rompre les liaisons => alors là j'ai pas réussi malgré pas mal de sujet sur ce forum
4-La cerise sur le gateau serait de vérifier dans le dossier C:\ARCHIVES FICHES HONORAIRES\ si une facture existe déjà avec le même numéro
Voici mon codage:
Sub ARCHIVER()
Dim NomFichier As String
Dim wbSource As Workbook 'Déclarer les variables de base
Dim sDossier As String
Dim Fichier As String
If MsgBox("Etes-vous certain de vouloir sauvegarder ?", vbYesNo + vbQuestion, "Demande de confirmation") = vbYes Then
'Si bouton Oui est cliqué alors on exporte la fiche d'honoraire
Worksheets("MATRICE").Copy 'copie de l'onglet dans un nouveau fichier vierge
'C:\ARCHIVES FICHES HONORAIRES 'doit sauvegarder le double des fiches d'honoraires dans ce dossier
Set wbSource = ActiveWorkbook 'dès l'ouverture la nouvelle copie devient le fichier actif
sDossier = "C:\ARCHIVES FICHES HONORAIRES\"
Fichier = "LE NOM DE TON FICHIER"
wbSource.SaveAs "C:\ARCHIVES FICHES HONORAIRES\FA" & ".xls " 'Sauvergarde du dossier
wbSource.Open Filename:= _
"C:\ARCHIVES FICHES HONORAIRES\"
'Workbooks.Open "C:\ARCHIVES FICHES HONORAIRES"
ActiveWorkbook.Save
ActiveWorkbook.Close
Else
MsgBox ("Traitement abandonné")
End If
End Sub
Voici l'erreur que j'ai => "Erreur d'éxécution 1004"
Merci à tous,
Bonjour,
Quand tu insères une formule ou du code dans un message, utilise la balise entourée ci-dessous, pour les rendre plus lisibles:
Pour le reste, pas tout regardé mais dans la ligne:
wbSource.SaveAs "C:\ARCHIVES FICHES HONORAIRES\FA" & ".xls " 'Sauvergarde du dossieron est d'accord que ce serait plutôt un fichier que tu sauvegarderais ?
Mais où figure le nom dudit fichier ? Il s'appelle juste FA ?
Et ton erreur, tu ne peux pas déterminer à quel moment elle intervient ?
Bonjour U. Milité,
Désolée, voici le code avec </> , je ne savais pas, merci:
Je te joins également mon fichier pour plus de facilité, et pour répondre à ta question en effet c'est bien un fichier (qui correspond à ma copie de mon onglet MATRICE) que je souhaite sauvegarder.
Le nom du fichier doit être normalement le numéro de la facture qui est indiqué dans la cellule D11 dans mon onglet MATRICE, mais j'ai essayé un code avec la mention texte FA mais j'arrive pas à mettre derrière les numéros comme indiqué dans la cellule D11 sous le format suivant => FA + 2020 (année) + 1 (mois) -00024 (numéro automatique).
Merci beaucoup pour votre aide
Sub ARCHIVER()
Dim NomFichier As String
Dim wbSource As Workbook 'Déclarer les variables de base
Dim sDossier As String
Dim Fichier As String
If MsgBox("Etes-vous certain de vouloir sauvegarder ?", vbYesNo + vbQuestion, "Demande de confirmation") = vbYes Then
'Si bouton Oui est cliqué alors on exporte la fiche d'honoraire
Worksheets("MATRICE").Copy 'copie de l'onglet dans un nouveau fichier vierge
'C:\ARCHIVES FICHES HONORAIRES 'doit sauvegarder le double des fiches d'honoraires dans ce dossier
Set wbSource = ActiveWorkbook 'dès l'ouverture la nouvelle copie devient le fichier actif
sDossier = "C:\ARCHIVES FICHES HONORAIRES\"
Fichier = "LE NOM DE TON FICHIER"
wbSource.SaveAs "C:\ARCHIVES FICHES HONORAIRES\FA" & ".xls " 'Sauvergarde du dossier
wbSource.Open Filename:= _
"C:\ARCHIVES FICHES HONORAIRES\"
'Workbooks.Open "C:\ARCHIVES FICHES HONORAIRES"
ActiveWorkbook.Save
ActiveWorkbook.Close
Else
MsgBox ("Traitement abandonné")
End If
End Sub
Re,
Pour ne prendre qu'un problème à la fois, la ligne suivante fonctionne chez moi:
wbSource.SaveAs sDossier & "FA" & [D11] & ".xls " 'Sauvergarde du dossier(ce qui donne un fichier nommé "FAFA20201-00024.xls")
Comme le fichier que tu viens d'enregistrer est toujours ouvert, pourquoi essaies-tu de l'ouvrir à la ligne suivante ? L'instruction
wbSource.Open Filename:= "C:\ARCHIVES FICHES HONORAIRES\"n'est pas valide, de toute manière
Ceci étant, puisqu'il s'agit de factures, pourquoi ne pas les sauvegarder au format ".pdf" ?
Merci pour ton retour, en effet pourquoi pas en pdf mais je ne sais pas comment faire dans ce cas, est-ce que je peux remplacer.xlsx par .pdf dans mon code? Merci
Bonjour,
Hier j'ai testé chez moi ... aujourd'hui, ici. Dans les deux cas, sous des environnements différents, le fichier s'enregistre bien.
Tu as vérifié qu'aucun des trois cas évoqués dans le message d'erreur ne se produit ?
Que vaut la variable sDossier ? Qu'est-ce qui figure précisément en D11 ? D'où sort le E47EC500 qui figure dans le chemin d'accès renseigné dans le message d'erreur ?
Merci pour votre retour, je viens de changer d'ordinateur (plus récent) et cela fonctionne bien.
Je pense que tu as raison si j'exporte en pdf mon fichier je vais moins me compliquer avec les liaisons. Je viens de mettre dans ma formule ce codage mais je pense un peu trop simple pour que cela fonctionne puisque lorsque j'ouvre mon fichier il est vierge avec la mentionne "PDF endommagé". Je vais voir si je trouve un codage pour l'extension pdf dans le forum
wbSource.SaveAs "C:\ARCHIVES FICHES HONORAIRES\" & Range("D11") & ".pdf " Bonjour,
J'imagine que depuis que tu as posé la question, tu as trouvé une réponse ?
Si tu n'es pas certaine de la syntaxe, pourquoi ne pas utiliser l'enregistreur de macro, au moment où tu convertis ton fichier en .pdf ?
Malheureusement, je n'ai toujours pas trouvé une solution....je suis dessus depuis des jours et je n'arrive pas à le convertir en pdf
Je continue mes recherches
Bonjour,
Encore une fois, pourquoi n'utilises-tu pas l'enregistreur de macros ?
Ici, en Excel 2016, le code qui est généré est le suivant:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"E:\EssaiFANNY2028.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=TrueLes options sont évidemment paramétrables.
Pour savoir ce qu'il en est sur ta version 2010, le plus simple et le plus sûr est de faire la manip et de regarder le code qui sera généré automatiquement
ça marche, je te remercie j'ai reussi, voici mon codage, youpiiii, merci à tous
ChDir "C:\ARCHIVES FICHES HONORAIRES"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\ARCHIVES FICHES HONORAIRES\" & Range("D11") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False