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:

balisescode

Pour le reste, pas tout regardé mais dans la ligne:

wbSource.SaveAs "C:\ARCHIVES FICHES HONORAIRES\FA" & ".xls " 'Sauvergarde du dossier

on 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

est-ce que je peux remplacer.xlsx par .pdf dans mon code?

À mon sens c'est un peu trop simple mais tu devrais trouver plusieurs exemples à adapter, en cherchant sur le forum.

À demain, en ce qui me concerne

Bizarre, pour ma part j'ai toujours l'erreur d'exécution =>

[color=#FFFF00]wbSource.SaveAs sDossier & [D11] & ".xls " 'Sauvergarde du dossier[/color]

Ci joint mon message d'erreur en pièce jointe

Je vérifie déjà si mon code fonctionne en xls et je modifierai en pdf ultérieurement

message erreur vba

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:=True

Les 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
Rechercher des sujets similaires à "exporter duplicata factures"