Impression ou sauvegarde fichier via vb excel

Signaler
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011
-
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
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)
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
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)
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
"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
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
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 ?
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
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 ...
Messages postés
10
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
22 avril 2011

merci pour ces informations je vais essayer de voir.

cordialement