Ouvrir un mail outlook depuis un bouton Excel/VBA ??? - VB/VBA/VBS - Programmation
Marsh Posté le 19-04-2004 à 15:04:52
voici un bout de code pour un début....
Dim OLapp As Outlook.Application
Dim OLspace As Outlook.NameSpace
Dim OLinbox As Outlook.MAPIFolder
Dim OLfolder As Outlook.MAPIFolder
Dim OLmail As Outlook.MailItem
Dim OLpj As Outlook.Attachment
' Copie le contenu d'un mail dans un fichier excel
Private Sub chMail()
Set OLapp = CreateObject("Outlook.application" )
Set OLspace = OLapp.GetNamespace("MAPI" )
Set OLinbox = OLspace.GetDefaultFolder(olFolderInbox)
For Each OLmail In OLinbox.Items
If OLmail.SenderName = "NomExpediteur, Prénom" Then
Dim OLbody As String
OLbody = OLmail.Body
Dim xlApp As Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application" )
With xlApp
.Visible = True
Set wbk = .Workbooks.Add
Set sht = wbk.ActiveSheet
With sht
.Range("A1" ) = OLbody
End With
wbk.SaveAs "C:\Chemin\Dossier\Fichier.xls"
wbk.Close
.Quit
End With
Set sht = Nothing
Set wbk = Nothing
Set xlApp = Nothing
End If
Next
End Sub
Marsh Posté le 19-04-2004 à 15:59:53
Mais la tu créé la page Excel ???
Moi je suis deja sur une page et je veut que ca aille chercher les infos sur outlook et les mettent sur cette page quand je clique sur un bouton.... je dois changer qqch ???
Marsh Posté le 19-04-2004 à 16:12:13
Oui, dans ce cas, tu gardes seulement :
Dim OLapp As Outlook.Application
Dim OLspace As Outlook.NameSpace
Dim OLinbox As Outlook.MAPIFolder
Dim OLfolder As Outlook.MAPIFolder
Dim OLmail As Outlook.MailItem
Dim OLpj As Outlook.Attachment
Private Sub chMail()
Set OLapp = CreateObject("Outlook.application" )
Set OLspace = OLapp.GetNamespace("MAPI" )
Set OLinbox = OLspace.GetDefaultFolder(olFolderInbox)
For Each OLmail In OLinbox.Items
If OLmail.SenderName = "NomExpediteur, Prénom" Then
Dim OLbody As String
OLbody = OLmail.Body
Range("A1" ).Select
With selection
.value = OLbody
end with
End If
Next
End Sub
'--------------- fin du code -------------------------------------------
Ce code extrait le corps de texte d'un mail dont l'expéditeur est (à toi de modifier les données "NomExpediteur, Prénom" )
Si d'autres critères doivent entrer en compte (titre du mail, enregistrement de pièces jointes...), faudra faire des modifs
De plus, je te laisse gerer l'enregistrement (ou non) du fichier courant aprés la copie.
Marsh Posté le 19-04-2004 à 16:16:46
j'oubliais : ce code va dans ta boite à mail, regarde tous les mails présents, un à un, et si le mail vient de telle personne, il copie le contenu dans la case A1.
MAIS : le code va poursuivre sa recherche jusqu'à la fin de la liste : s'il trouve un 2e mail du même expéditeur, il va le coller aussi en A1 (écrasant les données du 1er mail).
Ce cas risque-t'il de se produire dans ton utilisation ?
Marsh Posté le 19-04-2004 à 16:34:46
Normalement pas car le gars et censé le faire tout les matins et supprimé le mail
Car il recoit les données d'un routeur qui regarde sur quel site sont aller les utilisateurs....
Mais si il oublie un matin il est possible que ca arrive...
Sinon c'est possible de rajouter une option qui supprimerai le mail directement après que les données aient été copié ???
Marsh Posté le 19-04-2004 à 16:39:06
Et quand je lance j'ai une erreur de compilation sur les variables...
Type défini par l'utilisateur non défini ???
Marsh Posté le 19-04-2004 à 16:55:19
Sorry, j'ai oublié de préciser qu'il fallait ajouter Outlook dans les références.
Pour faire ça, depuis ton module, vas dans Outils, Références, cherche dans la liste "Microsoft Outlook 10.0 Object Library", coches la ligne + OK.
Pour la suppression du mail, il suffit d'inserer la ligne :
OLmail.Delete
juste avant :
End If
Next
End Sub
mais ça ne résoud pas le pbm si il y a + d'un mail.
Marsh Posté le 19-04-2004 à 17:00:57
Deuxième pbm que je viens seulement d'identifier : il colle l'intégralité du mail dans une seule cellule.
pas vraiment pratique ...
je ne connais pas tres bien excel, voici une adresse où tu trouvera surement quelqu'un qui saura te renseigner :
http://www.excel-downloads.com/htm [...] =2&t=83566
Marsh Posté le 19-04-2004 à 14:29:54
Je dois faire une application qui Excel avec un bouton qui importe des données contenu dans un mail sur microsoft outlook....
Mais je sais pas trop comment faire