XL 2013 Extraction Balises dans Body Mails d'un sous-dossier Outlook

dhaudhau

XLDnaute Nouveau
Bonjour à vous,

Je suis sous Office 2013.

J'ai un sous-dossier "THALIA" dans ma boite de réception où je met mes mails de données.
Le contenu a toujours le même contenu à savoir:
DA : 12105695
Client : TOTO
PV : 300 €
PA : 400 €
JI : 4565546;5656655;6677677 (Il peut y avoir plusieurs séparé par un ";")

Je souhaiterais extraire ces 5 Balises dans un fichier excel (La dernière balise peut avoir plusieurs valeurs et donc idéalement avoir plusieurs colonnes en fonction du nombre si possible).

J'utilise des macros pour extraire le BODY automatiquement mais je ne sais pas comment on extrait les données des balises. Pourriez-vous m'apporter votre support svp ?

Je vous remercie par avance.
 

Staple1600

XLDnaute Barbatruc
Bonjour

Merci pour le fichier exemple
(qui m'a été utile)
Donc si je pars du principe que le BODY de chaque mail est exporté dans une cellule par mail
Voir la syntaxe utilisée dans ce petit test qui devrait pouvoir t'aider
VB:
Sub test()
strTest = "DA : 12105695 Client : TOTO PV : 300 € PA : 400 € JI : 4565546;5656655;6677677"
[A1] = strTest
vArr = Split([A1].Value2, ":")
x = vArr(UBound(vArr))
MsgBox x
vArr2 = Split(VBA.Trim(x), ";")
For i = LBound(vArr2) To UBound(vArr2)
tmp = tmp & vArr2(i) & vbCr
Next
MsgBox tmp
End Sub
 

dhaudhau

XLDnaute Nouveau
Je crois que je n'ai pas été assez précis dans ma recherche de solution. En fait, le contenu du mail contient toujours ces balises : DA, Client, PV, PA, JI.
Les données qui sont derrière ces balises varient selon les mails. Je voudrais mettre dans la première colonne la valeur de la première balise, dans la seconde colonne la valeur de la seconde balise etc...
Aujourd'hui, avec la macro que j'utilise, il extrait tout le body dans une cellule.

Merci à vous par avance.
 

Staple1600

XLDnaute Barbatruc
Re

Non, ce n'est qu'un test illustratif pour t'indiquer quel type de syntaxe tu peux utiliser pour l'extraction que tu veux faire.

On est bien d'accord que le résultat de ta macro (celle de ta PJ), c'est (entre autre chose) d'avoir le contenu du mail dans la colonne A?
Si tel est le cas, alors il suffit de reprendre ma proposition et de faire une boucle.

Peux-tu joindre un fichier exemple (anonymisé) avec une dizaine de lignes pour voir le résultat obtenu par ta macro d'export ?
(notamment pour voir où et comment sont exportés le BODY de mails)
 

Staple1600

XLDnaute Barbatruc
Re

Exemple sur la base de ce que j'ai écris précédemment
VB:
Sub test_2()
Dim DerL&, X$, i&, vArr
DerL = Cells(Rows.Count, 1).End(3).Row
For i = 1 To DerL
X = Split(Cells(i, "A").Value2, ":")(UBound(Split(Cells(i, "A").Value2, ":")))
vArr = Split(X, ";")
Cells(i, "B").Resize(, UBound(vArr) + 1) = vArr
Next
End Sub
 

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami