Automatisation de l'enregistrement d'un excel en pdf [Résolu/Fermé]

Signaler
Messages postés
48
Date d'inscription
mercredi 12 mars 2014
Statut
Membre
Dernière intervention
29 août 2014
-
 AF -
Bonjour,

J'ai réalisé un modèle de devis et je souhaiterai y incorporer une automatisation.
Je précise que je suis sous excel 2010.

Mon but est, lorsque j'enregistre mon fichier excel en pdf, que le nom d'enregistrement me soit proposé automatiquement.
Je ne sais pas si cela est réalisable mais dans le meilleur des cas, je souhaiterai que le fichier se nomme : "Devis n°" & "Contenu de la cellule B12" & "Contenu de la cellule B13". Ainsi à chaque devis réalisé, cela évite de se tromper de numéro de devis.

Voilà donc mon problème. Est-ce réalisable et si oui savez-vous comment faire ?

En vous remerciant d'avance,

Bien cordialement,

PG

6 réponses

Messages postés
15391
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
1 383
Bonjour,

Choix du repertoire avec nom fichier defini:

Sub Export_PDF()
Dim fichier As String
'adaptez le nom de la feuille
With Worksheets("Feuil1")
fichier = "Devis n°" & .Range("B12") & .Range("B13") & ".pdf"
rep = SelDossier(fichier)

'pensez a ecrire le chemin
Chemin = rep & "\" & fichier
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
End Sub

Function SelDossier(Defaut As String)
'd'après "Nicolas", mpfe
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
.InitialFileName = Defaut
If .Show = -1 Then
SelDossier = fd.SelectedItems(1)
End If
End With
Set fd = Nothing
End Function

cela se fasse lors d'un enregistrement. si vous pensez a la disquette ou fichier enregistrer, desole mais ca ne marche pas comme ca.

Il faut un bouton ou le click sur une cellule definie pour lancer le code.
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Merci beaucoup ! En 2018 c'est encore très utile ! Encore merci.
Messages postés
15391
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
1 383
Bonjour,

un exemple:

Sub Export_PDF()
Dim fichier As Variant
'adaptez le nom de la feuille
With Worksheets("Feuil1")
fichier = "Devis n°" & .Range("B12") & .Range("B13") & ".pdf"
'pensez a ecrire le chemin
Chemin = "d:\_atest\" & fichier
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
End Sub
Messages postés
48
Date d'inscription
mercredi 12 mars 2014
Statut
Membre
Dernière intervention
29 août 2014

Bonjour,

Merci de votre réponse.

J'ai essayé le code que vous m'avez proposé mais hélas cela ne fonctionne pas. Lorsque je veux enregistrer mon fichier depuis mon modèle excel, rien de différent m'est proposé pour l'enregistrement.
Le chemin que j'ai mis est celui d'un serveur est-ce pour ça ?
Voici le nom du chemin inscrit :Chemin = "\\SERVEUR\Partage\Qualité - Réglementaire - Biblio\ISO 9001\Nouvelle organisation\Vente"

De plus j'ai une question : Quand le fichier est automatisé, il suffira de cliquer sur "enregistrer" ou "enregistrer sous" pour avoir le pdf dans le dossier souhaité?

En vous remerciant d'avance,

Bien cordialement,

PG
Messages postés
15391
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
1 383
Bonjour,

Chemin = "\\SERVEUR\Partage\Qualité - Réglementaire - Biblio\ISO 9001\Nouvelle organisation\Vente"

manque un "\"

Chemin = "\\SERVEUR\Partage\Qualité - Réglementaire - Biblio\ISO 9001\Nouvelle organisation\Vente\"

rien de différent m'est proposé pour l'enregistrement. Ben, vous vouliez une automatisation
Messages postés
48
Date d'inscription
mercredi 12 mars 2014
Statut
Membre
Dernière intervention
29 août 2014

Bon je renonce à ce code :D mais merci pour les conseils.

Disons plutôt : J'ai un fichier modèle excel macro. Lorsque j'enregistre un nouveau devis j'aimerais juste que le nom du fichier soit affiché directement en pdf : "Devis" & "B11" & "B12" &."pdf" puis je choisi moi même mon dossier où je l'enregistre. Comment procéder ?

J'ai trouver une ligne de code qui fonctionne bien sur un autre sujet mais le problème c'est que le nom du fichier change seulement lorsqu'on quitte le fichier et moi je voudrais que cela se fasse lors d'un enregistrement.

voilà le code :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("B11").Value)

End Sub


J'ai tenté de changer le Cancel As par Save As mais rien ne fait. De plus je voulais ajouter : CStr(ThisWorkbook.ActiveSheet."Devis".Range("B11").Value & Range("B12") &".pdf")
Hélas cela ne fonctionne pas.

Auriez vous une solution ? merci d'avance !
Messages postés
48
Date d'inscription
mercredi 12 mars 2014
Statut
Membre
Dernière intervention
29 août 2014

AAAAAAAAhhhh ok je pensais que c'était possible en cliquant sur la disquette. Du coup c'est impeccable votre code marche à merveille en définissant une cellule pour lancer la macro :)

Je vous remercie pour toutes vos réponses très pertinentes, je commence à progresser avec excel ;)

Bien cordialement,

PG