Impression ou sauvegarde fichier via vb excel

silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011 - 25 févr. 2010 à 10:17
silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011 - 10 mars 2010 à 11:57
Bonjour a tous

Voila mon probleme...J'ai des fichiers dans un dossier, en .pdf ( 1 ou plusieurs pages ) et j'aimerai avoir chaques feuilles dans un fichier pdf. Si par exemple un fichier pdf contient plusieurs pages j'aimerai qu'il me sauvegarde chaque page dans un fichier pdf.
Ce que j'ai reussi a trouver est ce code qui me permet de lister nimporte quel fichier dans mon dossier et de me l'imprimer.
j'ai "pdfmail" en imprimante, qui me permet d'imprimer dans un fichier mais le probleme c'est que cela ne marche pas pour plusieur feuille pdf.

Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1

Dim NbFichiers As Long
Dim Tableau() As String
Const Dossier As String = "C:\Documents and Settings\difalco\Bureau\document"

Sub Tst()
Dim hwnd As Long
Dim i As Long
Dim DossierOk As String

DossierOk = Dossier
If Right(DossierOk, 1) <> "" Then DossierOk = Dossier & ""
ListeFichiers DossierOk, "*.*"
If NbFichiers > 0 Then
For i = 1 To UBound(Tableau)
ShellExecute hwnd, "Print", DossierOk & Tableau(i), "", "", SW_SHOWNORMAL
Next
End If
End Sub

Private Sub ListeFichiers(ByVal NomDossierSource As String, ByVal Extension As String)
Dim NomFichier As String
NomFichier = Dir(NomDossierSource & "*." & Extension)

Erase Tableau
NbFichiers = 0
Do While Len(NomFichier) > 0
NbFichiers = NbFichiers + 1
ReDim Preserve Tableau(1 To NbFichiers)
Tableau(NbFichiers) = NomFichier
NomFichier = Dir()
Loop
End Sub



Merci de votre aide

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 févr. 2010 à 11:17
Salut
Pas clair :
"J'ai des fichiers dans un dossier, en .pdf
"
"j'aimerai avoir chaques feuilles
dans un fichier pdf
"
Tes fichiers d'origine sont de quel type ? PDF ou XLS

La commande Print est une commande externe et ne sait traiter que la globalité d'un fichier. Impossible donc de lui demander de n'imprimer que la page X.
De plus, elle utilisera l'imprimante par défaut.

Quelle type d'imprimante PDF utilises-tu ?
Si c'est http://www.pdfforge.org/pdfcreator (l'OpenGL et le GhostScript), regarde dans les options dans le "Moniteur d'impression" : Coche la case "une page par fichier" dans l'onglet "Document".

PS : Ta Sub "ListeFichiers" ne doit pas bien marcher :
Tu donnes "*.*" pour Extension et tu l'utilises avec cette syntaxe : "*." & Extension
Le résultat donnera donc "*.*.*" : Tant mieux si Dir l'accepte, mais pas propre.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011
25 févr. 2010 à 11:23
en faite les fichier pdf peuvent contenir plusieur feuille. Moi ce que j'aimerai c'est que la macro me crée un fichier pdf par feuille.
Par contre je ne peux rien installer sur mon poste ( entreprise ).
J'ai comme imprimante "pdfmail" qui me permet d'imprimer dans un fichier 1 feuille par pdf.

br
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 févr. 2010 à 12:04
Toujours pas clair
"les fichier pdf peuvent contenir plusieur feuille" : Oui, mais s'agit-il de tes fichiers originaux ou d'une constation après avoir exécuté ton programme ?
- Feuille = Excel
- Page = format de papier
--> " les fichier pdf peuvent contenir plusieur PAGES " ?
Tu essayes d'imprimer des Feuilles Excel vers PDF, c'est bien ça ?

Vois avec les paramètres de pdfmail.

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011
25 févr. 2010 à 12:31
escuse moi.
Je vais etre plus precis. J'ai des fichier pdf qui contiennent plusieur page.
Ce que j'aimerai avec une macro c'est de faire un fichier pdf par page?

C'est plus claire ^^

br
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 févr. 2010 à 12:53
"J'ai des fichier pdf qui contiennent plusieur page"
Oui, j'avais fini par comprendre
Mais ce que je cherche à savoir c'est si ces fichiers PDF sont tes fichiers de travail = les fichiers que tu veux imprimer ou bien s'il s'agit du résultat de ta programmation actuelle.

De toute façon, PDF n'est pas un format natif de Excel, donc la solution ne viendra pas de la programmation de Excel --> Voir le paramétrage de ton pdfmail
0
silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011
25 févr. 2010 à 14:16
mon parametrage pdfmail est correcte il me fait ce que je veut mais le but et d'automatiser cela.

les fichier pdf sont des pdf que je recupere de scan to mail et non a partir de ma macro
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 févr. 2010 à 15:30
Questions simples :
Ton programme a t-il pour but de fabriquer un fichier PDF (*) ?
Oui ou Non ?
(*) par le principe d'imprimer sur un port géré par un traducteur de PS / générateur de Pdf

Si non, ton programme a t-il pour seul but d'imprimer un PDF existant ?
Oui ou Non ?
0
silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011
25 févr. 2010 à 16:18
Mon programme a pour but de fabriquer un pdf qui ne contient qu'une page.

Dans mon dossier ou j'ai tout mes pdf il peut y arriver que dans un pdf il y est 2,3,4...pages. Moi ce que j'aimerai c'est de fabriquer qu'une page par pdf.

Je ne veux pas imprimer les fichiers pdf
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 févr. 2010 à 16:19
Le format PDF est supporté au travers d'un logiciel commercial de Adobe.
Une fois générés, ces documents sont verrouillés.
Si tu dois imprimer, ce sera au travers de leur logiciel (du moins le 'Reader' gratuit mis à la disposition du public).
Donc, difficile à gérer par de la programmation.
Il faudrait que tu recherches du côté des forums dédiés au format PDF de Adobe.
Bon courage.

Le plus simple serait quand même de demander à ton logiciel 'pdfmail' de générer autant de fichier que de page ...
0
silverdark1984 Messages postés 10 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 22 avril 2011
10 mars 2010 à 11:57
merci pour ces informations je vais essayer de voir.

cordialement
0
Rejoignez-nous