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
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