Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 13h10   #1
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
Par défaut Changer de sujet automatiquement

Bonjour,
J'aimerai faire en sorte que lorsque je reçois un e-mail d'un certain destinataire (ex : info@keybon.com), le sujet de l'e-mail devienne le numéro de téléphone contenu dans cet e-mail...
Pourriez-vous m'aider? Merci

Bonjour, j'aimerai faire en sorte que lorsque je reçois un e-mail d'un certain destinataire, alors le numéro de téléphone se trouvant dans le mail devient le sujet du mail, et j'aimerai que ca se fasse automatiquement pour tous les nouveaux mails reçus...
J'ai donc pensé faire une règle qui s'appliquent sur tous les nouveaux mails reçus, avec comme destinataire info@keybon.com, et ce qu'il se passe sur ces mails est un macro que j'allais écrire... pourriez-vous m'aider à récupérer le numéro de téléphone se trouvant dans le contenu du mail, ainsi que de remplacer le sujet du mail par ce numéro de téléphone?
Merci....
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 18h17   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
une solution en VBA , code à placer dans ThisSession :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
 Dim tbItems
 Dim oItem As MailItem
 Dim i As Integer
 tbItems = Split(EntryIDCollection, ",")
 For i = 0 To UBound(tbItems)
   Set oItem = Session.GetItemFromID(tbItems(i))
    If oItem.SenderEmailAddress = "info@keybon.com" Then
        oItem.Subject = oItem.Subject & " [MODIFI] " & Left(oItem.Body, 10)
    End If
    oItem.Save
 Next
End Sub
pour le numéro de téléphone vu que tu nous as rien dit j'ai considéré qu'il était compris dans les 10 premiers caractères de ton mail ..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h02   #3
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
Merci beaucoup, mais en fait, le numéro de téléphone se trouve à la toute fin du mail, et peut comprendre entre 10 et 12 chiffres (si il comprend le +32, ou non), et il faut aussi que le contenu du mail contienne le mot "Received"... je sais que je complique un peu la chose mais merci encore!!!!
Et en fait, comme je l'ai déjà dit, j'ai créé une règle qui s'applique à chaque fois qu'un mail provient de info@keybon, donc est-ce nécessaire de le placer dans le code?



En fait je réexplique (pcq j'ai l'impression de mal m'exprimer ) :
Il s'agit de mails que je recois de info@keybon lorsque j'envoie des fax, ou que je créé des scans.
1. il faut que le mail provienne de info@keybon (mais ca je pense qu'il suffit de le mettre dans la règle, et non dans le macro, mais je me trompe peut-etre...)
2. il faut donc que le titre du mail contienne le mot "FAX" (également dans la règle et non dans le macro?)
3. il faut que le mail contienne le mot "Received"
4. il faut que le mail contienne un numéro de téléphone en fin de mail (de 10 à 12 chiffres)
5. il faut que le sujet du mail soit changé par ce numéro de téléphone (s'il contient ce numéro)
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h18   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par keybon Voir le message
...
Et en fait, comme je l'ai déjà dit, j'ai créé une règle qui s'applique à chaque fois qu'un mail provient de info@keybon, ...
et elle fait quoi ta règle ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h26   #5
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
Justement, en fait quand je créé une règle sur outlook, je peux choisir ce qui déclenche la règle, et ce qu'il se produit.
Ce qui déclenche : le fait de recevoir un mail de info@keybon, et le fait que le titre soit : FAX.
Ce qu'il se produit : un macro que j'aimerai créer comprenant les 3 derniers points que j'ai énumeré... mais vu que je ne m'y connais pas du tout, j'ai besoin de votre aide
mais si vous pensez que c'est mieux de créer un macro avec toutes les instructions, vous avez probablement raison !
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h45   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Voici un exemple de script modifiant le sujet :

Code :
1
2
3
4
Sub GestionMailsKeybon(Item As Outlook.MailItem)
   Item.Subject = Item.Subject & Right(Item.Body, 20)
   Item.Save
End Sub
par contre pour ton point 4 .. comment ce présent ton numéro de téléphone .. qu'est-ce qui peu nous dire que celui ci est présent ..? as tu un exemple à nous montrer des derniers caractères de ton mail ..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h50   #7
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
Exemple de mail :

Please open the attached document. It contains a copy of a Transmitted/Received Fax. For more information on DELL products and solutions, please visit http://www.dell.com.
Fax Job : Receive
Unknown

(s'il ne contient pas de numéro de téléphone)


Please open the attached document. It contains a copy of a Transmitted/Received Fax. For more information on DELL products and solutions, please visit http://www.dell.com.
Fax Job : Send
0031736127191

(s'il contient un numéro de téléphone, d'ailleurs ici il y a 13 chiffres)
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 14h04   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
tiens par exemple , je récupère la dernière ligne et teste si celle-ci est numérique et supérieure à 8 caractères :

Code :
1
2
3
4
5
6
7
8
9
10
Sub GestionMailsKeybon(Item As Outlook.MailItem)
   Dim tb
   Dim stDer As String 'Derniere ligne
   tb = Split(Item.Body, vbCrLf) '
   stDer = tb(UBound(tb))
   If Len(stDer) > 8 And IsNumeric(stDer) Then 'Si longueur dernière ligne supérieure à 8et valeur numérique
    Item.Subject = Item.Subject & " [" & stDer & "]"
    Item.Save
   End If
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 16h36   #9
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
J'ai essayé le tout, mais ca ne fonctionne pas... il ne faut pas écrire Set avant de changer le sujet?
Merci bcp en tous cas!!!

bonjour, cela ne fonctionne toujours pas
pourriez-vous m'aider?
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 21h42   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par keybon
C'est super! et est-ce que ca change le sujet?
Et vous sauriez aussi pour l'avant dernière ligne, si y a Receive ?

Merci beaucoup pour votre aide en tous cas!!!
et puis vous éditez le message pour dire "ça ne fonctionne pas" ... mais c'est quoi qui fonctionne pas ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 09h05   #11
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
oui mais parce que je n'avais pas encore testé le code
j'ai donc édité cette règle dans mon outlook, et testé en m'envoyant des messages (comportant le mot Fax dans le sujet, etc etc) mais le sujet ne se change pas automatiquement, il ne se change pas du tout...
peut-etre qu'il faut mettre 'Set' avant de changer le sujet dans le code?
peut-etre pourriez-vous tester cela en créant aussi une règle sur votre outlook et puis vous envoyer des mails avec Fax dans l'objet et qui contiennent un numéro de téléphone en dernière ligne?

Appliquer cette règle après l'arrivée du message
avec ... dans l'adresse de l'expéditeur
et contenant Fax dans l'objet
exécuter Projet1.GestionFax
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 09h20   #12
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par keybon Voir le message
...
peut-etre pourriez-vous tester cela en créant aussi une règle sur votre outlook et puis vous envoyer des mails avec Fax dans l'objet et qui contiennent un numéro de téléphone en dernière ligne?
...eu non .., mon code fonctionne je l'ai testé ..



Citation:
Envoyé par keybon Voir le message
...
exécuter Projet1.GestionFax
vérifie le fonctionnement de ta règle en réduisant la macro à l'affichage du sujet
Code :
1
2
3
4
 
Sub GestionMailsKeybon(Item As Outlook.MailItem)
     MsgBox Item.Subject
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 09h28   #13
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
cela ne fonctionne pas non plus, mais peut-etre que je m'y prends mal pour créer une règle?
pourriez-vous me dire comment vous avez testé que ca fonctionnait?
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 09h32   #14
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
le code à exécuter à bien été sélectionné dans une liste ?
ce code est bien dans ThisOutlookSession ?
il n'y as bien que le message box ?
pas de problèmes de sécurité ? tes autres macros fonctionnent ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 09h41   #15
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
Citation:
Envoyé par bbil Voir le message
le code à exécuter à bien été sélectionné dans une liste ?
ce code est bien dans ThisOutlookSession ?
il n'y as bien que le message box ?
pas de problèmes de sécurité ? tes autres macros fonctionnent ?
oui je l'ai selectionné dans une liste
ca veut dire quoi dans ThisOutlookSession?
il n'y a rien qui se passe quand j'envoie un mail
c'est la première fois que j'utilise un macro, c'est pour ca que je m'en sors pas trop...
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 09h46   #16
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
vérifie la sécurités des macros .. dans outlook menu outils/Macros/Sécurité/
tu sélectionne à gauche sécurité des macros et à droite "Avertissement pour toutes les macros.."

tu relance outlook et au démarrage tu dois avoir un message te demandant d'autoriser l'exécution de macros...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 10h02   #17
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
voilà l'affichage de la boite de dialogue avec le sujet fonctionne, donc j'ai essayé d'executer le 1e code pour que le sujet change automatiquement mais ca ne fonctionne pas alors que j'ai exactement copié-collé votre code
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 10h07   #18
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
La copie seule du code ne suffit pas il faut aussi que le message respecte les contraintes définies dans le code (voir commentaires) ..

rajoute l'affichage de la dernière ligne :
Code :
1
2
 (...) stDer = tb(UBound(tb))
msgBox stDer (...)
voir si elle contient bien un "numéro" de 8 chiffre au mini
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 10h27   #19
Invité de passage
 
Inscription : août 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 18
Points : 0
Points : 0
oui je suis d'accord, mais les tests que je fais respectent justement toutes les restrictions, et cela ne modifie pas le sujet pour autant...
quand je teste, une boite de dialogue vide apparait alors que la dernière ligne contient un nombre d'au moins 8 chiffres
keybon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 10h31   #20
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
tu peu faire un copier/coller d'un de tes message ici ?

il y as peu-être une ligne vide à la fin de ton message? tu peu afficher le nombre de ligne pour contrôler : MsgBox UBound(tb)
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h55.


 
 
 
 
Partenaires

Hébergement Web