Erreur sur macro d'enregistrement feuille

bonjour à toutes et tous,

Nouveau venu sur le forum, je n'ai pas trouvé de section de présentation (peu être n'existe t'elle pas) je vous prie donc de bien vouloir m'en excuser.

Voici ma question.

Je suis actuellement en train de réaliser un classeur excel afin faciliter l édition d'une facture de location à une personne qui ne connait pratiquement rien a l'informatique.

Dans mon classeur j'ai mis (au plus simple)une feuille:

Accueil (comportant l'ajout d'un client, et un menu pour naviguer a l’intérieur du classeur)

Facture, pour l'edition de la facture (avec incrémentation du numéro de facture lorsque l'on clique sur nouvelle facture) impression automatique, enregistrer (enregistrement de la facture en pdf)

Clients(petite base de données des clients)

Prestations prestations diverses

Sur ma feuille Facture la Macro dediée au bouton enregistrer me pose problème.

je veux que ma facture soit enregistrer sous la forme:

1 "Facture_N°_Nom du client.pdf".Le numéro et le nom du client sont recueillies par les valeurs des cellules C10 et E2.

2 dans un dossier spécifique (le nom du dossier est demandée par une boite de dialogue) visiblement celà fonctionne de ce coté là.

Le problème que j'ai c'est cela ne s'effectue pas . je parle de l'enregistrement.

j’obtiens une erreur d"execution 1004: erreur definie par l'application ou par objet.

Et là je cale.

je precise que je suis sous excel2013 et windows 8.1

Pourriez vous SVP me donner un petit coup de main concernant cette macro.

D'avance je vous en remercie

Pourriez vous SVP me donner un petit coup de main sur cette macro

56classeurtest.xlsm (46.28 Ko)

Bonjour

essaye cela si ça te convient ( a adapter).

71classeurtest.xlsm (48.49 Ko)

bonjour et merci reinruof77 pour ton aide

voici la macro après modifs qui me convient :

Sub enregistrer()
'
' enregistrer Macro
'

' boite dialogue dossier enregistrement
'

nomdossier = Application.InputBox(prompt:="DOSSIER D'ENREGISTREMENT", Type:=2)

dossier = "C:\Locations\" & nomdossier & "\"

'exportation en pdf sous forme facture_n°_client.pdf

Dim finput As FileDialog
Dim fichier As String
On Error GoTo 1

    Sheets("Factures").Select
    Range("A1:H44").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$H$44"

With finput

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        dossier & "Facture_" & Range("C10").Value & "_" & Range("E2").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

      Sheets("Factures").Select
    Range("A1:C1").Select

1:
    End With

End Sub

elle effectue bien l'enregistrement dans le dossier appelé par boite de dialogue avec comme nom de fichier "Facture_n°_nom client.pdf"

cela implique bien entendu d'avoir créer un dossier auparavant dans le répertoire "C:\Locations\" & nomdossier & "\" car s'il n'est pas l'enregistrement ne se fait pas

je sais pas trop si le code corrigé est correct on doit peut etre pourvoir supprimer d'autres lignes

Encore merci pour ton aide

re

Ravie d'avoir pu t'aider .

bonne continuation.

Merci reinruof77 à toi également

je me suis penché plus en detail sur les lignes à suplémentaires à supprimer et voici ce que cela donne:

Sub enregistrer()
'
' enregistrer Macro
'

' boite dialogue dossier enregistrement
'

nomdossier = Application.InputBox(prompt:="DOSSIER D'ENREGISTREMENT", Type:=2)

dossier = "C:\Locations\" & nomdossier & "\"

' selection feuille facture selection des cellules de la feuille à imprimer

    Sheets("Factures").Select
    Range("A1:H44").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$H$44"

'exportation en pdf sous forme facture_n°_client.pdf

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        dossier & "Facture_" & Range("C10").Value & "_" & Range("E2").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
' retour sur feuille facture et cellules

      Sheets("Factures").Select
    Range("A1:C1").Select

End Sub
Rechercher des sujets similaires à "erreur macro enregistrement feuille"