|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 6 ![]() |
J'aimerai pouvoir parcourir le texte et objet des mails dans ma boite de reception pour recupérer certaines reférences et reprendre celles-ci dans un fichier excel.
Les références commencent toujours par le même texte et sont de longueur fixes : ABC0xxxxxx xxxxxx représente la reférence que je veux récupérer. Par contre ces références peuvent être n'importe où dans le texte du mail. Pensez vous déjà que cela soit réalisable par avec une macro ? Et si vous avez des pistes sur comment effectuer la recherche et la récupération du texte notamment. Merci ps : Je n'ai pas d'expérience dans les macro outlook mais j'ai pas mal bricolé les macros sur excel. personne ne peut m'aider ? |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : février 2003 Messages : 90 ![]() |
Bonjour,
A priori cela est possible par macro. Pourrais-tu toutefois préciser les points suivants : . le dossier "Boîte de réception" contient-il des sous-dossiers ? . dans combien de mails environ ces références doivent-elles être recherchées ? wape |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : mars 2006 Messages : 643 ![]() |
SAlut,
Oui c'est faisable mais il faut préciser plusieurs choses : ta version outlook ? a quel moment veux tu faire cela (reception, autre ...) où se trouvent les mails ? l'objet du mail est il le même ? si oui tu peux utiliser restrict voir l'aide Une fois le mail isolé il faut utilser la fonction InStr Renvoie une valeur de type Variant (Long) indiquant la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaîne. Syntaxe : InStr([start, ]string1, string2[, compare]) et mid Renvoie une valeur de type Variant (String) contenant un nombre indiqué de caractères extraits d'une chaîne de caractères. Syntaxe : Mid(string, start[, length])
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 6 ![]() |
Merci pour vos infos, il va falloir que je digère un peu cela.
Pour répondres aux questions : - j'ai outlook 2003 SP2 - la recherche porte sur un volume de 100 à 5-600 mails - l'objet du mail varie, ainsi que la taille, le format, l'expéditeur ... - En général les mail sont dans la boite de réception (sans sous dossier) mais il pourrait être utile de pouvoir tourner la macro dans une archive mail - pour l'execution ce serait plutot sur demande (j'ajouterai un bouton dans les menus) Si je suis l'idée ce serait d'utiliser le coprs du mail (mail.body) comme chaine pour la commande InStr et avec comme chaine de recherche mon "ABC0" ? Il n'y a pas de problème de longueur ? Les éventuelles images, fichiers attachés et autres ne sont pas inclus dans le "body" |
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Inscription : mars 2006 Messages : 643 ![]() |
Salut,
Pour ta digestion désolé mais je suis victime de la "charte " ... ![]() Donc pour ton problème je préconise de chercher dans le dossier en cours. au bout de ce lien un exemple d'ajout dans un fichier excel : http://www.developpez.net/forums/sho...d.php?t=476977 Code :
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 6 ![]() |
Merci beaucoup,
je viens de faire un bon en avant. Deux questions : - avec InStr j'obtient la première occurence de ma recherche, existe-t-il un moyen de chercher les suivantes autre qu'un système récursif du type appliquer InStr le reste de la chaine après la reférence trouvée (que je peux etraire avec Mid) - Il n'y a pas moyen de tout stoquer dans une "liste" avant l'appel a excel. Ainsi cela éviterai les passage excel/outlook, non ? |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 6 ![]() |
voilà ou j'en suis.
Ca marche par trop mal. Mais pour éviter des doublon de références, je voulais faire une recherche dans le fichiern excel et là ça marche plus ... voici mon code : Il bloque sur la ligne ou je fait le find. Code :
|
||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 6 ![]() |
Personne pour trouver mon erreur dans :
Code :
rech = es.sheets("res").Range(es.sheets("res").cells(1, 1), es.sheets("res").cells(ligne, 1)).Find(machaine, LookIn:=xlValues) |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : février 2003 Messages : 90 ![]() |
Bonjour,
Essaye avec : Code :
Set rech = es.sheets("res").Range(es.sheets("res").cells(1, 1), es.sheets("res").cells(ligne, 1)).Find(machaine, LookIn:=xlValues)
|
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 6 ![]() |
Pas mieux avec le set.
J'ai essayé : Code :
Erreur sur la 2nd ligne des idées ? |
||
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : février 2003 Messages : 90 ![]() |
Bonjour,
As-tu coché la référence "Microsoft Excel X.0 Object Library" dans l'éditeur VBA d'Outlook (cf. Outils > Références...") ? wape |
|
|
00
|
|
|
#12 | ||||
|
Membre chevronné
![]() Inscription : mars 2006 Messages : 643 ![]() |
Salut,
quand tu recherches tu plusieurs possibilités selon ce que tu veux obtenir. Code :
donc : Code :
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com