Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
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 05/09/2007, 10h38   #1
Futur Membre du Club
 
Inscription : mars 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 101
Points : 15
Points : 15
Par défaut Imprimer une partie de mail

Voilà, je cherche à imprimer via une macro VBA la première page uniquement du mail sélectionné.
J'avoue que j'ai du mal avec l'absence de l'enregistreur de macro...

Pour le moment j'arrive juste à ouvrir le mail sélectionné, ou l'imprimer en entier.. existe-t-il des paramètres (from:= et to:=) comme pour les printOut de Excel ??

Merci de 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
Sub printMail()
 
Dim n As Long, i As Long
Dim item As Object, fitem As Object
 
Set Inbox = ActiveExplorer.CurrentFolder
If Inbox.Name <> "Boîte de réception" Then
Exit Sub
End If
 
n = ActiveExplorer.Selection.Count
If n = 0 Then Exit Sub
 
For i = 1 To n
  Set item = ActiveExplorer.Selection.item(1)
 
  'pour imprimer
  item.PrintOut
 
  'pour l'afficher
  item.Display
 
Next i
 
End Sub
cladoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 12h12   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Je viens de faire un essai et avec Word comme éditeur de mail par défaut, je ne suis pas parvenu à imprimer que la première page, avec Outlook, la méthode Printout imprime tout le document.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 12h24   #3
Futur Membre du Club
 
Inscription : mars 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 101
Points : 15
Points : 15
Ok d'après ce que j'ai pu lire, les programmeurs de Outlook n'auraient pas intégré d'arguments à printOut ?? (bizzare puisqu'on peut choisir le nombre de page dès lors qu'on fait un display (Ctrl+O)) en revanche si on se contente de sélectionner le mail dans la liste, l'impression ne donne pas le choix à l'utilisateur et imprime tout..

Je viens de faire l'essai en pilotant word depuis outlook et même avec:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
...
   Set wordapp = CreateObject("Word.Application")
   Set wordDoc = wordapp.Documents.Open("S:\Stagiaires\test.doc")
  wordapp.Visible = True
 
 
 With wordapp.Selection
 .TypeParagraph
 .TypeText Text:=item.SenderName
 .TypeParagraph
 .TypeText Text:=item.Body
 .TypeParagraph
 End With
 
Next i
 
wordapp.PrintOut Pages:="1"
ça imprime tout... qqu'un a une idée???

Merci
cladoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 12h30   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Pour Word, ce ne serait plutôt

Code :
ActiveDocument.ActiveWindow.PrintOut Range:=wdPrintFromTo, from:="1", to:="1"
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h04   #5
Futur Membre du Club
 
Inscription : mars 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 101
Points : 15
Points : 15
Oui j'avais essayé comme ça au début (code récupéré par l'enregistreur de macro WORD), mais j'ai une erreur:

----------------------------------------------------
Erreur d'exécution 5148.
Le nombre doit être compris entre -32765 et 32767.
----------------------------------------------------

avec la variable wdPrintFromTo = vide


C'est étonnant.. est-ce que tu crois que le probleme vient du fait que je n'ai pas encore enregistré le Word lors de la demande d'impression?
cladoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h27   #6
Futur Membre du Club
 
Inscription : mars 2007
Messages : 101
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 101
Points : 15
Points : 15
Apparemment ce serait un bug de Windows...

cf.
http://www.codeguru.com/forum/showth...hreadid=255095

d'autres idées?
cladoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h35.


 
 
 
 
Partenaires

Hébergement Web