Trois Pierres
Nouveau membre
Bonjour à tous,
à force de fouiner sur différents forums, je pensais avoir trouvé la solution magique à mon problème, qui me semble récurrent :
Au moyen d'une macro VBA, créer un fichier pdf à partir d'une feuille Excel, et l'enregistrer dans un répertoire et sous un nom créés dans la macro, sans intervention de l'utilisateur (au niveau de la boîte de dialogue "Enregistrer sous..").
Voici le code que j'ai écrit (en me basant sur celui que j'ai trouvé ici et là) :
[cpp]Sub PrintPDF()
Dim Path As String, File As String, Chaine As String
' Ceci à titre d'exemple. Le nom et le chemin sont normalement créés par la macro
Path = "C:\Facture\"
File = "toto.pdf"
Chaine = Path & File
DoEvents
Application.SendKeys Keys:=Chaine + "~", Wait:=True
ActiveSheet.PrintOut ActivePrinter:="Adobe PDF", Copies:=1, Collate:=True
End Sub
[/cpp]
La pseudo "impression" sur Adobe PDF fonctionne sans problème, mais l'envoi des données par Sendkeys ne donne aucun résultat.
- si je supprime l'ordre d'impression, la "chaine" est bien envoyée dans la cellule active de ma feuille.
- si j'écris une macro sembable pour créer un fichier texte, pas de problème.
Mais rien à faire avec le "dialogue" d'impression ! A se demander où partent les caractères envoyés...
J'ai eu beau placer des "DoEvents" ou ajouter des "{ENTER}", rien ne marche.
Je pense n'être pas le seul à avoir le problème, et j'espère que ceratins l'ont résolu.
Merci d'avance pour votre aide,
Trois Pierres
(Environnement WinXP Fam, Office 2003)
Message modifié le 08/02/08 pour respecter les règles...
à force de fouiner sur différents forums, je pensais avoir trouvé la solution magique à mon problème, qui me semble récurrent :
Au moyen d'une macro VBA, créer un fichier pdf à partir d'une feuille Excel, et l'enregistrer dans un répertoire et sous un nom créés dans la macro, sans intervention de l'utilisateur (au niveau de la boîte de dialogue "Enregistrer sous..").
Voici le code que j'ai écrit (en me basant sur celui que j'ai trouvé ici et là) :
[cpp]Sub PrintPDF()
Dim Path As String, File As String, Chaine As String
' Ceci à titre d'exemple. Le nom et le chemin sont normalement créés par la macro
Path = "C:\Facture\"
File = "toto.pdf"
Chaine = Path & File
DoEvents
Application.SendKeys Keys:=Chaine + "~", Wait:=True
ActiveSheet.PrintOut ActivePrinter:="Adobe PDF", Copies:=1, Collate:=True
End Sub
[/cpp]
La pseudo "impression" sur Adobe PDF fonctionne sans problème, mais l'envoi des données par Sendkeys ne donne aucun résultat.
- si je supprime l'ordre d'impression, la "chaine" est bien envoyée dans la cellule active de ma feuille.
- si j'écris une macro sembable pour créer un fichier texte, pas de problème.
Mais rien à faire avec le "dialogue" d'impression ! A se demander où partent les caractères envoyés...
J'ai eu beau placer des "DoEvents" ou ajouter des "{ENTER}", rien ne marche.
Je pense n'être pas le seul à avoir le problème, et j'espère que ceratins l'ont résolu.
Merci d'avance pour votre aide,
Trois Pierres
(Environnement WinXP Fam, Office 2003)
Message modifié le 08/02/08 pour respecter les règles...