Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1726 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°702794
will1841
Posté le 19-04-2004 à 14:29:54  profilanswer
 

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

mood
Publicité
Posté le 19-04-2004 à 14:29:54  profilanswer
 

n°702829
pumpkin031​2
Posté le 19-04-2004 à 15:04:52  profilanswer
 

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

n°702923
will1841
Posté le 19-04-2004 à 15:40:47  profilanswer
 

Merci beaucoup Pumpkin ;)

n°702945
will1841
Posté le 19-04-2004 à 15:59:53  profilanswer
 

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

n°702969
pumpkin031​2
Posté le 19-04-2004 à 16:12:13  profilanswer
 

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.

n°702982
pumpkin031​2
Posté le 19-04-2004 à 16:16:46  profilanswer
 

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 ?

n°703001
will1841
Posté le 19-04-2004 à 16:34:46  profilanswer
 

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

n°703009
will1841
Posté le 19-04-2004 à 16:39:06  profilanswer
 

Et quand je lance j'ai une erreur de compilation sur les variables...
 
Type défini par l'utilisateur non défini ???

n°703029
pumpkin031​2
Posté le 19-04-2004 à 16:55:19  profilanswer
 

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.

n°703042
pumpkin031​2
Posté le 19-04-2004 à 17:00:57  profilanswer
 

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

mood
Publicité
Posté le 19-04-2004 à 17:00:57  profilanswer
 

n°703127
will1841
Posté le 19-04-2004 à 18:28:54  profilanswer
 

Ok merci beaucoup ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
[java] Stockage de mail en mboxMFC Changer le bouton par défaut
[JAVASCRIPT] - Comment ouvrir 1 fenetre sur la meme page ?Comment ouvrir une page sans ouvrir une autre fenetre ?
[VBA/Word] Recup texte -> variable[VBA] PB avec fonctions Acess
[vba excel] affichage de resultat d'excel sous word ?vb integrer plusieurs tableau excel ds un !!!
somme conditionnelle avec Excel 
Plus de sujets relatifs à : Ouvrir un mail outlook depuis un bouton Excel/VBA ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR