XL 2016 lire automatiquement un E-Mail du Outlook dans Excel

Tresor1

XLDnaute Nouveau
Bonjour a tous ,

je ne m y connait trop en VBA je suis debutante et la j ai recu un Excercice de mon Patron. Il recoit plusieurs Email de son Outlook et voudrais avoir certain information(ID, Sujet et Date d entree) Automatiquement dans excel. Voici le code que j ai ecrit mais il ne s excecute pas j aimerai savoir a quel niveau est ce qu il ya erreur. on me dit que "Dim OutlookNamespace As Namesapce" n est pas defini. Merci


Sub getdatafromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namesapce
Dim Folder As MAPIFolder
Dim outlookMail As Variant
Dim i As Integer
Dim ID As Integer

Set OutlookApp = New Outlook.Application

Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")

Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("Impmail")

i = 1

For Each outlookMail In Folder.Items

If outlookMail.ReceivedTime >= Range("Eingangsdatum").Value Then
Range("ID").Offset(i, 0) = outlookMail.objekt
Range("ID").Offset(i, 0).Columns.AutoFit
Range("ID").Offset(i, 0).VerticalAlignement.xlTop
Range("Betreff").Offset(i, 0).Value = outlookMail.Betreff
Range("Betreff").Offset(i, 0).Columns.AutoFit
Range("Betreff").Offset(i, 0).VerticalAlignement.xlTop
Range("Eingangsdatum").Offset(i, 0).Value = outlookMail.ReceivedTime
Range("Eingangsdatum").Offset(i, 0).Columns.AutoFit
Range("Eingangsdatum").Offset(i, 0).VerticalAlignement.xlTop

i = i + 1
End If

Next outlookMail

Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing

End Sub
 

zebanx

XLDnaute Accro
Bonjour Tresor1, le forum

Ce fil pourrait correspondre à vos besoins d'extractions dans l'onglet reçu (qui ? adresse mail ? date ? objet ?)

A modifier le folder de récupération des informations dans le code VBA concerné (module 1) au vu de votre code.
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("Impmail")

xl-mlent
zebanx
 

Tresor1

XLDnaute Nouveau
Merci. je ne l ai pas modifier mais c etait un probleme de Hierarchie dans mon Outlook et il marche . Maintenant j aimerais Extraire uniquement un Numero ID dans le Body de mon E-Mail qui est un texte .j aimerai savoir comment m y prendre en code VBA. Merci encore
 

Tresor1

XLDnaute Nouveau
Bonjour a tous,

mon code fonctionne parfaitement maintenant je cherche comment couper un texte car il ya plusieurs informations unitile dans le Body de mes E-Mail je vous envoie le Document Excel pour que ca doit plus clair. Dans la colonne ID j ai juste besoin du numero ID qui y est contenu pas de tout le texte, et dans Betreff supprimer le (WG: EhP expired) .j ai besoin d un code en VBA. Merci bien
 

Pièces jointes

  • DatafromOutlook.xlsm
    19 KB · Affichages: 14

zebanx

XLDnaute Accro
Bonjour Tresor 1, le forum,

Elle est pourtant dans un module -)
VB:
Sub replaceid()
Dim i%, derligne%
On Error Resume Next
derligne = Cells(Rows.Count, 2).End(3).Row
'--suppression de WG EXPIRED
For i = 2 To derligne
Cells(i, 2) = Replace(Cells(i, 2), "WG: Expired ", "")
Next i
'--extraction de la valeur après le premier ID
For i = 2 To derligne
Cells(i, 4) = ""
x2 = Split(Cells(i, 3), "ID: ")
x3 = Left(x2(1), 4)
Cells(i, 4) = x3
Next i

End Sub
 

zebanx

XLDnaute Accro
Re-

En modifiant peut-être
Dim i%, derligne%, x2, x3

Le problème d'élimination d'informations ou d'extraction d'informations (ID) n'étant plus le meme que le sujet initial, il serait peut-être préféréable de lancer un nouveau fil à partir du #4.

xl-ment
zebanx
 
Dernière édition:

zebanx

XLDnaute Accro
Re

Le code modifié.
Bouton Go en haut pour lancer cette macro.

Xl-ment

VB:
Sub replaceiID2()
Dim i%, derligne%, x2, x3, ta
On Error Resume Next
derligne = Cells(Rows.Count, 2).End(3).Row
ReDim ta(1 To 1000, 1 To 1)
'--suppression de WG EXPIRED
For i = 2 To derligne
Cells(i, 2) = Replace(Cells(i, 2), "WG: Expired ", "")
Next i
'--extraction de la valeur après le premier ID
For i = 2 To derligne
Cells(i, 4) = "": x3 = ""
x2 = Split(Cells(i, 3), "ID: ")
x3 = Left(x2(1), 4)
ta(i - 1, 1) = x3
Next i
Cells(2, 3).Resize(UBound(ta, 1), 1) = ta
'--mise en forme du tableau (à ajuster)
Columns("A:C").EntireColumn.AutoFit
Rows("2:" & derligne).EntireRow.AutoFit
Range("B5").Select
End Sub
 

Pièces jointes

  • replace.xlsm
    25.4 KB · Affichages: 14

Tresor1

XLDnaute Nouveau
Maintenant je veux deplacer les E-maisl du ImpMail dans un autre fichier du outlook ("erledigte Mails").voici ce que j ai ecrit mais comme d habitude j ai pas eu un resultat. ca n affiche aucune erreur mais ca ne lit pas


Dim subFolder As outlook.MAPIFolder
Dim Items As outlook.Items

If Items.Class = olMail Then
Set subFolder = ImpMail.Folders("erledigte Mails")
Item.UnRead = False
Item.Move subFolder
End If

Set ImpMaill = Nothing
Set subFolder = Nothing
Set Item = Nothing
 

Discussions similaires

Réponses
7
Affichages
538
Réponses
2
Affichages
586

Statistiques des forums

Discussions
314 628
Messages
2 111 343
Membres
111 107
dernier inscrit
cdel