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
 

Fichiers joints

zebanx

XLDnaute Accro
Bonjour Tresor1, le forum

Problème de DLL sur votre fichier, j'ai juste extrait le tableau.

Une macro pour vous donner une idée du type de codage à utiliser.

xlment
zebanx
 

Fichiers joints

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:

Tresor1

XLDnaute Nouveau
je suis vraiment desole pour le derangement je ne m y connait pas trop. ca marche bien mais ca lit le ID dans la colonne D au lieu de C
 

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
 

Fichiers joints

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
 

zebanx

XLDnaute Accro
Bonjour Tresor1, le forum

Cette demande n'a rien à voir avec ce qui est demandé avant.
Il faut surement refaire un fil sur ce sujet et un intitulé adapté.
Je ne saurais personnellement y répondre.

xl-ment
 

Discussions similaires


Haut Bas