Ouvrir un mail outlook depuis un bouton Excel/VBA ???

Ouvrir un mail outlook depuis un bouton Excel/VBA ??? - VB/VBA/VBS - Programmation

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 :??:

Reply

Marsh Posté le 19-04-2004 à 14:29:54   

Reply

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

Reply

Marsh Posté le 19-04-2004 à 15:40:47    

Merci beaucoup Pumpkin ;)

Reply

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 ??? ;)

Reply

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.

Reply

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 ?

Reply

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é ???

Reply

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 ???

Reply

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.

Reply

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

Reply

Marsh Posté le 19-04-2004 à 17:00:57   

Reply

Marsh Posté le 19-04-2004 à 18:28:54    

Ok merci beaucoup ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed