Et oui, encore moi avec mes macros.
Pour ma future activité, je crée une facture sous Excel. J'ai créé une macro qui permet d'enregistrer la facture dans un dossier portant le nom du client, le fichier étant automatiquement nommé avec la date et le numéro de facture. Voilà le code.
Code :
Sub Enregistrement()
Dim Chemin1$, Chemin2$, Client$, Fichier$, Numfact$, Jour$
Maintenant, je cherche à ce que ma feuille soit automatiquement générée en PDF avec le même nom et, si possible, qu'un mail soit automatiquement ouvert avec le fichier au format PDF en pièce jointe.
Si quelqu'un peut m'aider......
En passant, la ligne 4, tu peux l'écrire comme ça :
Jour = Format(Now(), "ddmmyyyy" )
PDF n'est pas géré par Office2003. Il te faut une application externe. Une astuce consiste à installer une "imprimante PDF". Va voir ce que la catégorie "Le monde de Windows" ( http://www.presence-pc.com/forum/p [...] ujet-1.htm ) te propose.
Oui, mais j'ai Acrobat qui installe une imprimante PDF !
Sinon, merci pour la ligne 4, ça simplifie pas mal en effet.
Sinon, comme macro pour le PDF, j'ai déjà ça comme début :
Application.ActivePrinter = "Adobe PDF sur Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF sur Ne03:", Collate:=True
A rajouter à la suite de me première macro.
Mais je veux que le fichier soit automatiquement enregistré dans le bon dossier (Then MkDir Chemin1 & Client) et avec le bon nom (Jour & "_" & Numfact), sans que j'ai la moindre action à faire....et c'est là que je coince.
Donc, ça m'enregistre bien mon fichier XLS avec le bon nom et dans le bon dossier (nom et prénom du client qui fait référence à la cellule H7), ça me lance ensuite "l'impression" PDF via l'imprimante Acrobat, avec là aussi le bon nom. Mais je dois sélectionner le dossier de destination, et même en sélectionnant le bon dossier de destination, il l'enregistre dans C:\Mes Documents (qui fait référence au port de l'imprimante PDF). Vous me direz bien que le plus simple serait de modifier le port de l'imprimante, mais vu que chaque PDF est enregistré dans un dossier différent, ça ne me convient pas.
Je rappelle que j'utilise Acrobat 7.
Merci à l'âme charitable qui pourrait venir me donner un coup de main.
J'ai déjà fait ce genre de chose, pour créer le pdf on a un logiciel appelé PDFCreator qui simule une imprimante, par contre il faut régler le logiciel pour qu'il créé automatiquement la sauvegarde dans un répertoire paramétré.
Ensuite tu fais boucler le programme jusqu'à que la création soit fini et la tu le copie dans le répertoire voulu.
Voilà ce que ca donne dans mon programme.
Code :
Private Function GenererPDF() As Boolean
On Error GoTo sortie_erreur
GenererPDF = False
Application.ActivePrinter = "PDFCreator sur Ne00:"
MsgBox "Impossible de trouver le répertoire de destination.", vbCritical
End If
sortie:
CopyMira = sname
Exit Function
sortie_erreur:
MsgBox Err.Description
Resume sortie
End Function
Les constantes sont
K_REP_PDF : répertoire de création automatique du PDF
K_REP_MIRA : répertoire de destination finale du fichier
K_SHEET_TEMP : nom de l'onglet et donc du fichier créé.
Bon courage
---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème