Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 22/04/2008, 15h30   #1 (permalink)
Invité de passage
 
Date d'inscription: décembre 2007
Messages: 8
Par défaut Imprimer pièce jointe en réception

Bonjour à tous,
Pour économiser un peu de papier, j'aimerais modifier une règle (certainement en VBA) qui m'imprime automatiquement les mails d'un destinataire à la réception.
Cette règle m'imprime le texte du mail et la pièce jointe, or seule la pièce jointe m'intéresse.

Est-ce que quelqu'un a une idée?
guirou59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 11h09   #2 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

Salut,
Difficile à dire comme cela ca peut être un programme complémentaire ou une macro.

Si c'est une macro tape ALT+F11 tu arriveras dans les macros et tu dois cliquer sur ThisOutlookSession dans le cadred e gauche fait un copié collé du code ici
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 12h13   #3 (permalink)
Invité de passage
 
Date d'inscription: décembre 2007
Messages: 8
Par défaut

Merci Oliv pour ta réponse, j'essaye en effet de créer un script ou une macro. Mais ce sont mes premiers pas sur le VBA Outlook, j'ai un peu de mal.
J'ai essayé cela
Code :
Sub script(MyMail As MailItem)
Dim myAttachments As Object
     Set myAttachments = MyMail.Attachments    
If myAttachments.Count > 0 Then
       myAttachements.PrintOut
Mais je n'ai aucun résultat....
Merci de ton aide

Dernière modification par Dolphy35 ; 23/04/2008 à 16h11 Motif: Balises Code
guirou59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 12h39   #4 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

Ok j'avais pas compris que tu parlais à la base d'une "règle" .

donc tu peux effectivement executer un script sur cette "règle".

Mais les PJ doivent d'abord êtres enregistrées dans un dossier de ton disque dur puis imprimées:

Code :
 
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
 
Sub ShellImprime(fichier as String)
        ShellExecute 0, "print", fichier, "", "", 0
End Sub
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 15h52   #5 (permalink)
Invité de passage
 
Date d'inscription: décembre 2007
Messages: 8
Par défaut

Re-bjr,
J'ai testé mais j'ai une "erreur de compilation".
"Des constantes, chaines de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membres Public de modules d'objet."

Pour parer cette erreur, j'ai mis "Private" devant "Declare" mais les scripts ne sont plus visibles lors de la création de la "Règle"
guirou59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 16h04   #6 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

La partie DECLARE ...doit être mis etout en haut du module.
avant tout sub.

Et donc tu dois faire une boucle sur tous les PJ de ton mail
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 17h05   #7 (permalink)
Invité de passage
 
Date d'inscription: décembre 2007
Messages: 8
Par défaut

J'ai n'ai pas besoin de faire de boucle car dans tous les cas, je n'aurais qu'une pièce jointe.
Voici ce que j'ai fait:

Code :
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
 
Sub ShellImprime(fichier As String)
        ShellExecute 0, "print", fichier, "", "C:\UniScan\", 0
        
                
End Sub
 
Sub script(MyMail As MailItem)
Set fichier = MyMail.Attachments
ShellImprime (fichier)
End Sub
guirou59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 17h07   #8 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

et ca marche ?
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 17h09   #9 (permalink)
Invité de passage
 
Date d'inscription: décembre 2007
Messages: 8
Par défaut

non!! A vrai dire je suis dans la semoule!!

Au fait dès que je tente d'autres macros, il me sort tjrs le message "Erreur de compilation". Par contre il ne réagit pas si je n'ai que mon code cité précédemment activé
guirou59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 17h16   #10 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

je me disais bien

et avec cela c'est mieux ?

Code :
Sub script(MyMail As MailItem)
Set fichier = MyMail.Attachments
Repertoire ="C:\UniScan\"
fichier (1).SaveAsFile Repertoire & fichier (1).FileName
ShellImprime (fichier (1).FileName)
End Sub
pour tester à partir d'un mail existant et ouvert
Code :
Sub test_script()
Dim Oitem As Outlook.MailItem
Set Oitem = ActiveInspector.CurrentItem
script Oitem
End Sub
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 17h31   #11 (permalink)
Invité de passage
 
Date d'inscription: décembre 2007
Messages: 8
Par défaut

Merci Oliv,
Tout marche parfaitement
Pour les autres voici mon code définitif:
Code :
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
 
Sub ShellImprime(fichier As String)
        ShellExecute 0, "print", fichier, "", "C:\UniScan\", 0
End Sub
 
Sub script(MyMail As MailItem)
Set fichier = MyMail.Attachments
Repertoire = "C:\UniScan\"
fichier(1).SaveAsFile Repertoire & fichier(1).FileName
ShellImprime (fichier(1).FileName)
End Sub
guirou59 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide