Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 17h54   #1
Nouveau Membre du Club
 
Homme
Chef de projet MOA
Inscription : juillet 2011
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2011
Messages : 22
Points : 32
Points : 32
Par défaut Impression en masse de documents word

Bonjour,

Mon application access me permet d'imprimer en masse une liste de documents dont le chemin complet est contenu dans une table.

J'ai écrit une procédure qui ouvre Word, puis parcours dans une boucle ma table et qui pour chaque enregistrement ouvre le chemin_complet, l'imprime et referme le document.

Le code passe à la compilation, et semble fonctionner.

Pour des documents de petite taille, le spool de l'impression est quasi immédiat, donc pas de problèmes... Pour des documents plus gros, certains documents semblent se fermer avant que le spool vers l'imprimante ne soit terminé...

Résultat, lorsque je récupère mes impressions à l'imprimantes, certains documents sont manquants et d'autres édités seulement partiellement.

Ci dessous le code que j'ai écrit.

Avez vous une solution qui me permette de ma''surer que le spool vers l'imprimante est terminé avant de ferme mon document ?

d'avance merci pour votre aide.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Private Sub BtnImprimer_Click()
Dim RC_Fact As DAO.Recordset
Dim WordApp As Word.Application
Dim bConfirm As Boolean
    Set RC_Fact = CurrentDb.OpenRecordset("Table_Liste_Document", dbOpenDynaset, dbSeeChanges)
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = False
    WordApp.DisplayAlerts = False
    WordApp.Documents.Add
    bConfirm = WordApp.Options.ConfirmConversions
    WordApp.Options.ConfirmConversions = False
    RC_Fact.MoveFirst
    While Not RC_Fact.EOF
        WordApp.Documents.Open RC_Fact.Fields("Chemin_document").Value
        WordApp.ActiveDocument.PrintOut
        WordApp.ActiveDocument.Close savechanges:=False
        RC_Fact.MoveNext
    Wend
    WordApp.Options.ConfirmConversions = bConfirm
    WordApp.DisplayAlerts = True
    WordApp.Quit savechanges:=False
    Set WordApp = Nothing
    Set RC_Fact = Nothing
End Sub
dave92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 20h40   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Peut-être désactiver l'impression en arrière plan.
Code :
WordApp.ActiveDocument.PrintOut background:=false
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 21h11   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
Salut,

Ou encore entre chaque impression un DoEvents qui donne la main au système d'exploitation pour le traitement et reprend la main quand c'est terminé.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/08/2011, 15h24   #4
Nouveau Membre du Club
 
Homme
Chef de projet MOA
Inscription : juillet 2011
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2011
Messages : 22
Points : 32
Points : 32
la solution de carden semble fonctionner : merci !
je n'ai pas tester celle de heureux-oli, mais merci quand même !
dave92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h01.


 
 
 
 
Partenaires

Hébergement Web