Bonjour
Je fait communiquer ma base Access avec la messagerie d'Outlook.
J'aimerais en fait "automatiser" mon code pour que dés réception d'un
Email dans ma boite de réception et/ou dès que j'ai éffectivement envoyé
j'enclenche une action envers ma base Access.
Que est le code VB qui me permet de détecter l'envoie ou la reception de
mes messages ?
merci pour votre aide
@+
Alain
Bonjour
Je fait communiquer ma base Access avec la messagerie d'Outlook.
J'aimerais en fait "automatiser" mon code pour que dés réception d'un
Email dans ma boite de réception et/ou dès que j'ai éffectivement envoyé
j'enclenche une action envers ma base Access.
Que est le code VB qui me permet de détecter l'envoie ou la reception de
mes messages ?
merci pour votre aide
@+
Alain
Bonjour
Je fait communiquer ma base Access avec la messagerie d'Outlook.
J'aimerais en fait "automatiser" mon code pour que dés réception d'un
Email dans ma boite de réception et/ou dès que j'ai éffectivement envoyé
j'enclenche une action envers ma base Access.
Que est le code VB qui me permet de détecter l'envoie ou la reception de
mes messages ?
merci pour votre aide
@+
Alain
Regarder du coté du vba de Outlook.
Les evenements NewMail et ItemSend de l'objet Application devraient faire
ton affaire.
Clive
"Xantia" a écrit dans le message
news:
> Bonjour
>
> Je fait communiquer ma base Access avec la messagerie d'Outlook.
> J'aimerais en fait "automatiser" mon code pour que dés réception d'un
nouvel
> Email dans ma boite de réception et/ou dès que j'ai éffectivement
un
> j'enclenche une action envers ma base Access.
>
> Que est le code VB qui me permet de détecter l'envoie ou la reception
> mes messages ?
>
>
>
> merci pour votre aide
>
> @+
> Alain
>
>
Regarder du coté du vba de Outlook.
Les evenements NewMail et ItemSend de l'objet Application devraient faire
ton affaire.
Clive
"Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> Bonjour
>
> Je fait communiquer ma base Access avec la messagerie d'Outlook.
> J'aimerais en fait "automatiser" mon code pour que dés réception d'un
nouvel
> Email dans ma boite de réception et/ou dès que j'ai éffectivement
un
> j'enclenche une action envers ma base Access.
>
> Que est le code VB qui me permet de détecter l'envoie ou la reception
> mes messages ?
>
>
>
> merci pour votre aide
>
> @+
> Alain
>
>
Regarder du coté du vba de Outlook.
Les evenements NewMail et ItemSend de l'objet Application devraient faire
ton affaire.
Clive
"Xantia" a écrit dans le message
news:
> Bonjour
>
> Je fait communiquer ma base Access avec la messagerie d'Outlook.
> J'aimerais en fait "automatiser" mon code pour que dés réception d'un
nouvel
> Email dans ma boite de réception et/ou dès que j'ai éffectivement
un
> j'enclenche une action envers ma base Access.
>
> Que est le code VB qui me permet de détecter l'envoie ou la reception
> mes messages ?
>
>
>
> merci pour votre aide
>
> @+
> Alain
>
>
Bonjour Climb
Merci pour l'info
J'ai commencé à regarder ça mais ça suscite des questions nouvelles
En fait je cherche à copier "automatiquemet" dans une table access les
dont l'adresse
d'expediteur (ou de destinataire) existent déja dans une autre de mes
est ce que je peux récupérer directement ces infos d'Outlook (un espece de
Me. )
ou bien dois je déclarer des variables comme ci dessous pour acceder à
les champs
du mail ?
Dim OL_App As New Outlook.Application
Dim OL_Space As Outlook.NameSpace
Dim OL_Folder As Outlook.MAPIFolder
Dim OL_Folderx As Outlook.MAPIFolde
Set OL_Space = OL_App.GetNamespace("MAPI")
Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
Set OL_Folder = OL_Folderx
dans ce cas comment faire pour adresser uniquement les nouveaux mail (reçu
puis envoyés ?)
merci pour ton aide
@+
Alain
"Clive Lumb" a écrit dans le
de news:
> Regarder du coté du vba de Outlook.
> Les evenements NewMail et ItemSend de l'objet Application devraient
> ton affaire.
>
> Clive
>
> "Xantia" a écrit dans le message
de
> news:
> > Bonjour
> >
> > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > J'aimerais en fait "automatiser" mon code pour que dés réception d'un
> nouvel
> > Email dans ma boite de réception et/ou dès que j'ai éffectivement
envoyé
> un
> > j'enclenche une action envers ma base Access.
> >
> > Que est le code VB qui me permet de détecter l'envoie ou la reception
de
> > mes messages ?
> >
> >
> >
> > merci pour votre aide
> >
> > @+
> > Alain
> >
> >
>
>
Bonjour Climb
Merci pour l'info
J'ai commencé à regarder ça mais ça suscite des questions nouvelles
En fait je cherche à copier "automatiquemet" dans une table access les
dont l'adresse
d'expediteur (ou de destinataire) existent déja dans une autre de mes
est ce que je peux récupérer directement ces infos d'Outlook (un espece de
Me. )
ou bien dois je déclarer des variables comme ci dessous pour acceder à
les champs
du mail ?
Dim OL_App As New Outlook.Application
Dim OL_Space As Outlook.NameSpace
Dim OL_Folder As Outlook.MAPIFolder
Dim OL_Folderx As Outlook.MAPIFolde
Set OL_Space = OL_App.GetNamespace("MAPI")
Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
Set OL_Folder = OL_Folderx
dans ce cas comment faire pour adresser uniquement les nouveaux mail (reçu
puis envoyés ?)
merci pour ton aide
@+
Alain
"Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> Regarder du coté du vba de Outlook.
> Les evenements NewMail et ItemSend de l'objet Application devraient
> ton affaire.
>
> Clive
>
> "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
de
> news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > Bonjour
> >
> > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > J'aimerais en fait "automatiser" mon code pour que dés réception d'un
> nouvel
> > Email dans ma boite de réception et/ou dès que j'ai éffectivement
envoyé
> un
> > j'enclenche une action envers ma base Access.
> >
> > Que est le code VB qui me permet de détecter l'envoie ou la reception
de
> > mes messages ?
> >
> >
> >
> > merci pour votre aide
> >
> > @+
> > Alain
> >
> >
>
>
Bonjour Climb
Merci pour l'info
J'ai commencé à regarder ça mais ça suscite des questions nouvelles
En fait je cherche à copier "automatiquemet" dans une table access les
dont l'adresse
d'expediteur (ou de destinataire) existent déja dans une autre de mes
est ce que je peux récupérer directement ces infos d'Outlook (un espece de
Me. )
ou bien dois je déclarer des variables comme ci dessous pour acceder à
les champs
du mail ?
Dim OL_App As New Outlook.Application
Dim OL_Space As Outlook.NameSpace
Dim OL_Folder As Outlook.MAPIFolder
Dim OL_Folderx As Outlook.MAPIFolde
Set OL_Space = OL_App.GetNamespace("MAPI")
Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
Set OL_Folder = OL_Folderx
dans ce cas comment faire pour adresser uniquement les nouveaux mail (reçu
puis envoyés ?)
merci pour ton aide
@+
Alain
"Clive Lumb" a écrit dans le
de news:
> Regarder du coté du vba de Outlook.
> Les evenements NewMail et ItemSend de l'objet Application devraient
> ton affaire.
>
> Clive
>
> "Xantia" a écrit dans le message
de
> news:
> > Bonjour
> >
> > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > J'aimerais en fait "automatiser" mon code pour que dés réception d'un
> nouvel
> > Email dans ma boite de réception et/ou dès que j'ai éffectivement
envoyé
> un
> > j'enclenche une action envers ma base Access.
> >
> > Que est le code VB qui me permet de détecter l'envoie ou la reception
de
> > mes messages ?
> >
> >
> >
> > merci pour votre aide
> >
> > @+
> > Alain
> >
> >
>
>
Voici ce que l'on trouve dans l'aide d'Outlook
-----------------------
L'exemple Microsoft Visual Basic pour Applications (VBA) suivant illustre
comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
exécuter l'exemple, vous devez exécuter la routine Initialize_Handler. Cet
événement se déclenche lors de la réception d'un ou plusieurs messages
la Boîte de réception.
Public WithEvents outApp As Outlook.Application
Sub Intialize_Handler()
Set outApp = Application
End Sub
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
MsgBox "Collection of EntryIds: " & EntryIDCollection
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial,
intInitial))
MsgBox "EntryId: " & strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
intInitial) + 1)
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
End Sub
------------------------------------L'exemple Microsoft Visual
Basic pour Applications (VBA) suivant montre comment annuler l'événement
ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code doit
placé dans un module de classe et la routine Initialize_handler doit être
appelée avant que la procédure événementielle puisse être appelée par
Microsoft Outlook.
Public WithEvents myOlApp As Outlook.Application
Public Sub Initialize_handler()
Set myOlApp = CreateObject("Outlook.Application")
End Sub
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
prompt = "Are you sure you want to send " & Item.Subject & "?"
If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
Cancel = True
End If
End Sub
"Xantia" a écrit dans le message
news:
> Bonjour Climb
>
> Merci pour l'info
> J'ai commencé à regarder ça mais ça suscite des questions nouvelles
>
> En fait je cherche à copier "automatiquemet" dans une table access les
mails
> dont l'adresse
> d'expediteur (ou de destinataire) existent déja dans une autre de mes
table.
>
> est ce que je peux récupérer directement ces infos d'Outlook (un espece
> Me. )
>
> ou bien dois je déclarer des variables comme ci dessous pour acceder à
tous
> les champs
> du mail ?
> Dim OL_App As New Outlook.Application
> Dim OL_Space As Outlook.NameSpace
> Dim OL_Folder As Outlook.MAPIFolder
> Dim OL_Folderx As Outlook.MAPIFolde
> Set OL_Space = OL_App.GetNamespace("MAPI")
> Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> Set OL_Folder = OL_Folderx
>
> dans ce cas comment faire pour adresser uniquement les nouveaux mail
> puis envoyés ?)
>
> merci pour ton aide
> @+
> Alain
>
>
>
> "Clive Lumb" a écrit dans le
message
> de news:
> > Regarder du coté du vba de Outlook.
> > Les evenements NewMail et ItemSend de l'objet Application devraient
faire
> > ton affaire.
> >
> > Clive
> >
> > "Xantia" a écrit dans le
> de
> > news:
> > > Bonjour
> > >
> > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > J'aimerais en fait "automatiser" mon code pour que dés réception
> > nouvel
> > > Email dans ma boite de réception et/ou dès que j'ai éffectivement
> envoyé
> > un
> > > j'enclenche une action envers ma base Access.
> > >
> > > Que est le code VB qui me permet de détecter l'envoie ou la
> de
> > > mes messages ?
> > >
> > >
> > >
> > > merci pour votre aide
> > >
> > > @+
> > > Alain
> > >
> > >
> >
> >
>
>
Voici ce que l'on trouve dans l'aide d'Outlook
-----------------------
L'exemple Microsoft Visual Basic pour Applications (VBA) suivant illustre
comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
exécuter l'exemple, vous devez exécuter la routine Initialize_Handler. Cet
événement se déclenche lors de la réception d'un ou plusieurs messages
la Boîte de réception.
Public WithEvents outApp As Outlook.Application
Sub Intialize_Handler()
Set outApp = Application
End Sub
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
MsgBox "Collection of EntryIds: " & EntryIDCollection
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial,
intInitial))
MsgBox "EntryId: " & strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
intInitial) + 1)
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
End Sub
------------------------------------L'exemple Microsoft Visual
Basic pour Applications (VBA) suivant montre comment annuler l'événement
ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code doit
placé dans un module de classe et la routine Initialize_handler doit être
appelée avant que la procédure événementielle puisse être appelée par
Microsoft Outlook.
Public WithEvents myOlApp As Outlook.Application
Public Sub Initialize_handler()
Set myOlApp = CreateObject("Outlook.Application")
End Sub
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
prompt = "Are you sure you want to send " & Item.Subject & "?"
If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
Cancel = True
End If
End Sub
"Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> Bonjour Climb
>
> Merci pour l'info
> J'ai commencé à regarder ça mais ça suscite des questions nouvelles
>
> En fait je cherche à copier "automatiquemet" dans une table access les
mails
> dont l'adresse
> d'expediteur (ou de destinataire) existent déja dans une autre de mes
table.
>
> est ce que je peux récupérer directement ces infos d'Outlook (un espece
> Me. )
>
> ou bien dois je déclarer des variables comme ci dessous pour acceder à
tous
> les champs
> du mail ?
> Dim OL_App As New Outlook.Application
> Dim OL_Space As Outlook.NameSpace
> Dim OL_Folder As Outlook.MAPIFolder
> Dim OL_Folderx As Outlook.MAPIFolde
> Set OL_Space = OL_App.GetNamespace("MAPI")
> Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> Set OL_Folder = OL_Folderx
>
> dans ce cas comment faire pour adresser uniquement les nouveaux mail
> puis envoyés ?)
>
> merci pour ton aide
> @+
> Alain
>
>
>
> "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
message
> de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > Regarder du coté du vba de Outlook.
> > Les evenements NewMail et ItemSend de l'objet Application devraient
faire
> > ton affaire.
> >
> > Clive
> >
> > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> de
> > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > Bonjour
> > >
> > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > J'aimerais en fait "automatiser" mon code pour que dés réception
> > nouvel
> > > Email dans ma boite de réception et/ou dès que j'ai éffectivement
> envoyé
> > un
> > > j'enclenche une action envers ma base Access.
> > >
> > > Que est le code VB qui me permet de détecter l'envoie ou la
> de
> > > mes messages ?
> > >
> > >
> > >
> > > merci pour votre aide
> > >
> > > @+
> > > Alain
> > >
> > >
> >
> >
>
>
Voici ce que l'on trouve dans l'aide d'Outlook
-----------------------
L'exemple Microsoft Visual Basic pour Applications (VBA) suivant illustre
comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
exécuter l'exemple, vous devez exécuter la routine Initialize_Handler. Cet
événement se déclenche lors de la réception d'un ou plusieurs messages
la Boîte de réception.
Public WithEvents outApp As Outlook.Application
Sub Intialize_Handler()
Set outApp = Application
End Sub
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
MsgBox "Collection of EntryIds: " & EntryIDCollection
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial,
intInitial))
MsgBox "EntryId: " & strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
intInitial) + 1)
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
End Sub
------------------------------------L'exemple Microsoft Visual
Basic pour Applications (VBA) suivant montre comment annuler l'événement
ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code doit
placé dans un module de classe et la routine Initialize_handler doit être
appelée avant que la procédure événementielle puisse être appelée par
Microsoft Outlook.
Public WithEvents myOlApp As Outlook.Application
Public Sub Initialize_handler()
Set myOlApp = CreateObject("Outlook.Application")
End Sub
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
prompt = "Are you sure you want to send " & Item.Subject & "?"
If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
Cancel = True
End If
End Sub
"Xantia" a écrit dans le message
news:
> Bonjour Climb
>
> Merci pour l'info
> J'ai commencé à regarder ça mais ça suscite des questions nouvelles
>
> En fait je cherche à copier "automatiquemet" dans une table access les
mails
> dont l'adresse
> d'expediteur (ou de destinataire) existent déja dans une autre de mes
table.
>
> est ce que je peux récupérer directement ces infos d'Outlook (un espece
> Me. )
>
> ou bien dois je déclarer des variables comme ci dessous pour acceder à
tous
> les champs
> du mail ?
> Dim OL_App As New Outlook.Application
> Dim OL_Space As Outlook.NameSpace
> Dim OL_Folder As Outlook.MAPIFolder
> Dim OL_Folderx As Outlook.MAPIFolde
> Set OL_Space = OL_App.GetNamespace("MAPI")
> Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> Set OL_Folder = OL_Folderx
>
> dans ce cas comment faire pour adresser uniquement les nouveaux mail
> puis envoyés ?)
>
> merci pour ton aide
> @+
> Alain
>
>
>
> "Clive Lumb" a écrit dans le
message
> de news:
> > Regarder du coté du vba de Outlook.
> > Les evenements NewMail et ItemSend de l'objet Application devraient
faire
> > ton affaire.
> >
> > Clive
> >
> > "Xantia" a écrit dans le
> de
> > news:
> > > Bonjour
> > >
> > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > J'aimerais en fait "automatiser" mon code pour que dés réception
> > nouvel
> > > Email dans ma boite de réception et/ou dès que j'ai éffectivement
> envoyé
> > un
> > > j'enclenche une action envers ma base Access.
> > >
> > > Que est le code VB qui me permet de détecter l'envoie ou la
> de
> > > mes messages ?
> > >
> > >
> > >
> > > merci pour votre aide
> > >
> > > @+
> > > Alain
> > >
> > >
> >
> >
>
>
Merci Climb
ça m'a l'air génial ce bout de code mais j'ai encore quelques questions
1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque je
reçois un Email)
J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code VB)
Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
2) Merci de me confirmer que mon interprétation est la bonne
J'ai compris que :
outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois donc
simplement appeler
dans les evenements NewMail et ItemSend de l'objet Application.
il me suffit de faire donc un Call outApp_NewMailEx.
Puis de faire à l'interieur de chaque subroutine mes opérations de copy
ma base Access
en prenant les valeurs dans : mai.Subject
mai.From
mai.To ...
Encore merci pour ton aide précieuse
@+
Alain
"Clive Lumb" a écrit dans le
de news:
> Voici ce que l'on trouve dans l'aide d'Outlook
> -----------------------
> L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
> exécuter l'exemple, vous devez exécuter la routine Initialize_Handler.
> événement se déclenche lors de la réception d'un ou plusieurs messages
dans
> la Boîte de réception.
>
>
> Public WithEvents outApp As Outlook.Application
>
> Sub Intialize_Handler()
> Set outApp = Application
> End Sub
>
> Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> Dim mai As Object
> Dim intInitial As Integer
> Dim intFinal As Integer
> Dim strEntryId As String
> Dim intLength As Integer
>
> intInitial = 1
> intLength = Len(EntryIDCollection)
> MsgBox "Collection of EntryIds: " & EntryIDCollection
> intFinal = InStr(intInitial, EntryIDCollection, ",")
> Do While intFinal <> 0
> strEntryId = Strings.Mid(EntryIDCollection, intInitial,
(intFinal -
> intInitial))
> MsgBox "EntryId: " & strEntryId
> Set mai = Application.Session.GetItemFromID(strEntryId)
> MsgBox mai.Subject
> intInitial = intFinal + 1
> intFinal = InStr(intInitial, EntryIDCollection, ",")
> Loop
> strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
> intInitial) + 1)
> MsgBox strEntryId
> Set mai = Application.Session.GetItemFromID(strEntryId)
> MsgBox mai.Subject
>
> End Sub
> ------------------------------------L'exemple Microsoft Visual
Basic/Visual
> Basic pour Applications (VBA) suivant montre comment annuler l'événement
> ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code doit
être
> placé dans un module de classe et la routine Initialize_handler doit
> appelée avant que la procédure événementielle puisse être appelée par
> Microsoft Outlook.
>
> Public WithEvents myOlApp As Outlook.Application
>
> Public Sub Initialize_handler()
> Set myOlApp = CreateObject("Outlook.Application")
> End Sub
>
> Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
> Dim prompt As String
> prompt = "Are you sure you want to send " & Item.Subject & "?"
> If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> Cancel = True
> End If
> End Sub
>
>
> "Xantia" a écrit dans le message
de
> news:
> > Bonjour Climb
> >
> > Merci pour l'info
> > J'ai commencé à regarder ça mais ça suscite des questions nouvelles
> >
> > En fait je cherche à copier "automatiquemet" dans une table access les
> mails
> > dont l'adresse
> > d'expediteur (ou de destinataire) existent déja dans une autre de mes
> table.
> >
> > est ce que je peux récupérer directement ces infos d'Outlook (un
de
> > Me. )
> >
> > ou bien dois je déclarer des variables comme ci dessous pour acceder à
> tous
> > les champs
> > du mail ?
> > Dim OL_App As New Outlook.Application
> > Dim OL_Space As Outlook.NameSpace
> > Dim OL_Folder As Outlook.MAPIFolder
> > Dim OL_Folderx As Outlook.MAPIFolde
> > Set OL_Space = OL_App.GetNamespace("MAPI")
> > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > Set OL_Folder = OL_Folderx
> >
> > dans ce cas comment faire pour adresser uniquement les nouveaux mail
(reçu
> > puis envoyés ?)
> >
> > merci pour ton aide
> > @+
> > Alain
> >
> >
> >
> > "Clive Lumb" a écrit dans le
> message
> > de news:
> > > Regarder du coté du vba de Outlook.
> > > Les evenements NewMail et ItemSend de l'objet Application devraient
> faire
> > > ton affaire.
> > >
> > > Clive
> > >
> > > "Xantia" a écrit dans le
message
> > de
> > > news:
> > > > Bonjour
> > > >
> > > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > > J'aimerais en fait "automatiser" mon code pour que dés réception
d'un
> > > nouvel
> > > > Email dans ma boite de réception et/ou dès que j'ai éffectivement
> > envoyé
> > > un
> > > > j'enclenche une action envers ma base Access.
> > > >
> > > > Que est le code VB qui me permet de détecter l'envoie ou la
reception
> > de
> > > > mes messages ?
> > > >
> > > >
> > > >
> > > > merci pour votre aide
> > > >
> > > > @+
> > > > Alain
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Merci Climb
ça m'a l'air génial ce bout de code mais j'ai encore quelques questions
1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque je
reçois un Email)
J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code VB)
Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
2) Merci de me confirmer que mon interprétation est la bonne
J'ai compris que :
outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois donc
simplement appeler
dans les evenements NewMail et ItemSend de l'objet Application.
il me suffit de faire donc un Call outApp_NewMailEx.
Puis de faire à l'interieur de chaque subroutine mes opérations de copy
ma base Access
en prenant les valeurs dans : mai.Subject
mai.From
mai.To ...
Encore merci pour ton aide précieuse
@+
Alain
"Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
de news:ex3R7Ka9DHA.2524@TK2MSFTNGP11.phx.gbl...
> Voici ce que l'on trouve dans l'aide d'Outlook
> -----------------------
> L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
> exécuter l'exemple, vous devez exécuter la routine Initialize_Handler.
> événement se déclenche lors de la réception d'un ou plusieurs messages
dans
> la Boîte de réception.
>
>
> Public WithEvents outApp As Outlook.Application
>
> Sub Intialize_Handler()
> Set outApp = Application
> End Sub
>
> Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> Dim mai As Object
> Dim intInitial As Integer
> Dim intFinal As Integer
> Dim strEntryId As String
> Dim intLength As Integer
>
> intInitial = 1
> intLength = Len(EntryIDCollection)
> MsgBox "Collection of EntryIds: " & EntryIDCollection
> intFinal = InStr(intInitial, EntryIDCollection, ",")
> Do While intFinal <> 0
> strEntryId = Strings.Mid(EntryIDCollection, intInitial,
(intFinal -
> intInitial))
> MsgBox "EntryId: " & strEntryId
> Set mai = Application.Session.GetItemFromID(strEntryId)
> MsgBox mai.Subject
> intInitial = intFinal + 1
> intFinal = InStr(intInitial, EntryIDCollection, ",")
> Loop
> strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
> intInitial) + 1)
> MsgBox strEntryId
> Set mai = Application.Session.GetItemFromID(strEntryId)
> MsgBox mai.Subject
>
> End Sub
> ------------------------------------L'exemple Microsoft Visual
Basic/Visual
> Basic pour Applications (VBA) suivant montre comment annuler l'événement
> ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code doit
être
> placé dans un module de classe et la routine Initialize_handler doit
> appelée avant que la procédure événementielle puisse être appelée par
> Microsoft Outlook.
>
> Public WithEvents myOlApp As Outlook.Application
>
> Public Sub Initialize_handler()
> Set myOlApp = CreateObject("Outlook.Application")
> End Sub
>
> Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
> Dim prompt As String
> prompt = "Are you sure you want to send " & Item.Subject & "?"
> If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> Cancel = True
> End If
> End Sub
>
>
> "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
de
> news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> > Bonjour Climb
> >
> > Merci pour l'info
> > J'ai commencé à regarder ça mais ça suscite des questions nouvelles
> >
> > En fait je cherche à copier "automatiquemet" dans une table access les
> mails
> > dont l'adresse
> > d'expediteur (ou de destinataire) existent déja dans une autre de mes
> table.
> >
> > est ce que je peux récupérer directement ces infos d'Outlook (un
de
> > Me. )
> >
> > ou bien dois je déclarer des variables comme ci dessous pour acceder à
> tous
> > les champs
> > du mail ?
> > Dim OL_App As New Outlook.Application
> > Dim OL_Space As Outlook.NameSpace
> > Dim OL_Folder As Outlook.MAPIFolder
> > Dim OL_Folderx As Outlook.MAPIFolde
> > Set OL_Space = OL_App.GetNamespace("MAPI")
> > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > Set OL_Folder = OL_Folderx
> >
> > dans ce cas comment faire pour adresser uniquement les nouveaux mail
(reçu
> > puis envoyés ?)
> >
> > merci pour ton aide
> > @+
> > Alain
> >
> >
> >
> > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
> message
> > de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > > Regarder du coté du vba de Outlook.
> > > Les evenements NewMail et ItemSend de l'objet Application devraient
> faire
> > > ton affaire.
> > >
> > > Clive
> > >
> > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
message
> > de
> > > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > > Bonjour
> > > >
> > > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > > J'aimerais en fait "automatiser" mon code pour que dés réception
d'un
> > > nouvel
> > > > Email dans ma boite de réception et/ou dès que j'ai éffectivement
> > envoyé
> > > un
> > > > j'enclenche une action envers ma base Access.
> > > >
> > > > Que est le code VB qui me permet de détecter l'envoie ou la
reception
> > de
> > > > mes messages ?
> > > >
> > > >
> > > >
> > > > merci pour votre aide
> > > >
> > > > @+
> > > > Alain
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Merci Climb
ça m'a l'air génial ce bout de code mais j'ai encore quelques questions
1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque je
reçois un Email)
J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code VB)
Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
2) Merci de me confirmer que mon interprétation est la bonne
J'ai compris que :
outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois donc
simplement appeler
dans les evenements NewMail et ItemSend de l'objet Application.
il me suffit de faire donc un Call outApp_NewMailEx.
Puis de faire à l'interieur de chaque subroutine mes opérations de copy
ma base Access
en prenant les valeurs dans : mai.Subject
mai.From
mai.To ...
Encore merci pour ton aide précieuse
@+
Alain
"Clive Lumb" a écrit dans le
de news:
> Voici ce que l'on trouve dans l'aide d'Outlook
> -----------------------
> L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
> exécuter l'exemple, vous devez exécuter la routine Initialize_Handler.
> événement se déclenche lors de la réception d'un ou plusieurs messages
dans
> la Boîte de réception.
>
>
> Public WithEvents outApp As Outlook.Application
>
> Sub Intialize_Handler()
> Set outApp = Application
> End Sub
>
> Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> Dim mai As Object
> Dim intInitial As Integer
> Dim intFinal As Integer
> Dim strEntryId As String
> Dim intLength As Integer
>
> intInitial = 1
> intLength = Len(EntryIDCollection)
> MsgBox "Collection of EntryIds: " & EntryIDCollection
> intFinal = InStr(intInitial, EntryIDCollection, ",")
> Do While intFinal <> 0
> strEntryId = Strings.Mid(EntryIDCollection, intInitial,
(intFinal -
> intInitial))
> MsgBox "EntryId: " & strEntryId
> Set mai = Application.Session.GetItemFromID(strEntryId)
> MsgBox mai.Subject
> intInitial = intFinal + 1
> intFinal = InStr(intInitial, EntryIDCollection, ",")
> Loop
> strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
> intInitial) + 1)
> MsgBox strEntryId
> Set mai = Application.Session.GetItemFromID(strEntryId)
> MsgBox mai.Subject
>
> End Sub
> ------------------------------------L'exemple Microsoft Visual
Basic/Visual
> Basic pour Applications (VBA) suivant montre comment annuler l'événement
> ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code doit
être
> placé dans un module de classe et la routine Initialize_handler doit
> appelée avant que la procédure événementielle puisse être appelée par
> Microsoft Outlook.
>
> Public WithEvents myOlApp As Outlook.Application
>
> Public Sub Initialize_handler()
> Set myOlApp = CreateObject("Outlook.Application")
> End Sub
>
> Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
> Dim prompt As String
> prompt = "Are you sure you want to send " & Item.Subject & "?"
> If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> Cancel = True
> End If
> End Sub
>
>
> "Xantia" a écrit dans le message
de
> news:
> > Bonjour Climb
> >
> > Merci pour l'info
> > J'ai commencé à regarder ça mais ça suscite des questions nouvelles
> >
> > En fait je cherche à copier "automatiquemet" dans une table access les
> mails
> > dont l'adresse
> > d'expediteur (ou de destinataire) existent déja dans une autre de mes
> table.
> >
> > est ce que je peux récupérer directement ces infos d'Outlook (un
de
> > Me. )
> >
> > ou bien dois je déclarer des variables comme ci dessous pour acceder à
> tous
> > les champs
> > du mail ?
> > Dim OL_App As New Outlook.Application
> > Dim OL_Space As Outlook.NameSpace
> > Dim OL_Folder As Outlook.MAPIFolder
> > Dim OL_Folderx As Outlook.MAPIFolde
> > Set OL_Space = OL_App.GetNamespace("MAPI")
> > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > Set OL_Folder = OL_Folderx
> >
> > dans ce cas comment faire pour adresser uniquement les nouveaux mail
(reçu
> > puis envoyés ?)
> >
> > merci pour ton aide
> > @+
> > Alain
> >
> >
> >
> > "Clive Lumb" a écrit dans le
> message
> > de news:
> > > Regarder du coté du vba de Outlook.
> > > Les evenements NewMail et ItemSend de l'objet Application devraient
> faire
> > > ton affaire.
> > >
> > > Clive
> > >
> > > "Xantia" a écrit dans le
message
> > de
> > > news:
> > > > Bonjour
> > > >
> > > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > > J'aimerais en fait "automatiser" mon code pour que dés réception
d'un
> > > nouvel
> > > > Email dans ma boite de réception et/ou dès que j'ai éffectivement
> > envoyé
> > > un
> > > > j'enclenche une action envers ma base Access.
> > > >
> > > > Que est le code VB qui me permet de détecter l'envoie ou la
reception
> > de
> > > > mes messages ?
> > > >
> > > >
> > > >
> > > > merci pour votre aide
> > > >
> > > > @+
> > > > Alain
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Xantia,
Oui tu as très bien compris, par contre l'exemple que je t'ai donné est
pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de le
faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien à
faire au niveau de la sécurité macro. Si c'est à distribuer sur plusieurs
crois qu'il faut le "signer".
Pour les opérations Access - dans un appli semblable j'ai créé un ActiveX
avec VB6 que j'ai déclaré comme référence dans Outlook.
"Xantia" a écrit dans le message
news:
> Merci Climb
> ça m'a l'air génial ce bout de code mais j'ai encore quelques questions
...
>
> 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque je
> reçois un Email)
> J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code VB)
>
> Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
>
> 2) Merci de me confirmer que mon interprétation est la bonne
>
> J'ai compris que :
>
> outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
> simplement appeler
> dans les evenements NewMail et ItemSend de l'objet Application.
> il me suffit de faire donc un Call outApp_NewMailEx.
>
> Puis de faire à l'interieur de chaque subroutine mes opérations de copy
vers
> ma base Access
> en prenant les valeurs dans : mai.Subject
> mai.From
> mai.To ...
>
> Encore merci pour ton aide précieuse
> @+
> Alain
>
>
> "Clive Lumb" a écrit dans le
message
> de news:
> > Voici ce que l'on trouve dans l'aide d'Outlook
> > -----------------------
> > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
illustre
> > comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
> > exécuter l'exemple, vous devez exécuter la routine Initialize_Handler.
Cet
> > événement se déclenche lors de la réception d'un ou plusieurs messages
> dans
> > la Boîte de réception.
> >
> >
> > Public WithEvents outApp As Outlook.Application
> >
> > Sub Intialize_Handler()
> > Set outApp = Application
> > End Sub
> >
> > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > Dim mai As Object
> > Dim intInitial As Integer
> > Dim intFinal As Integer
> > Dim strEntryId As String
> > Dim intLength As Integer
> >
> > intInitial = 1
> > intLength = Len(EntryIDCollection)
> > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > Do While intFinal <> 0
> > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> (intFinal -
> > intInitial))
> > MsgBox "EntryId: " & strEntryId
> > Set mai = Application.Session.GetItemFromID(strEntryId)
> > MsgBox mai.Subject
> > intInitial = intFinal + 1
> > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > Loop
> > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > intInitial) + 1)
> > MsgBox strEntryId
> > Set mai = Application.Session.GetItemFromID(strEntryId)
> > MsgBox mai.Subject
> >
> > End Sub
> > ------------------------------------L'exemple Microsoft Visual
> Basic/Visual
> > Basic pour Applications (VBA) suivant montre comment annuler
> > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
> être
> > placé dans un module de classe et la routine Initialize_handler doit
être
> > appelée avant que la procédure événementielle puisse être appelée par
> > Microsoft Outlook.
> >
> > Public WithEvents myOlApp As Outlook.Application
> >
> > Public Sub Initialize_handler()
> > Set myOlApp = CreateObject("Outlook.Application")
> > End Sub
> >
> > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
> > Dim prompt As String
> > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > Cancel = True
> > End If
> > End Sub
> >
> >
> > "Xantia" a écrit dans le
> de
> > news:
> > > Bonjour Climb
> > >
> > > Merci pour l'info
> > > J'ai commencé à regarder ça mais ça suscite des questions nouvelles
> > >
> > > En fait je cherche à copier "automatiquemet" dans une table access
> > mails
> > > dont l'adresse
> > > d'expediteur (ou de destinataire) existent déja dans une autre de
> > table.
> > >
> > > est ce que je peux récupérer directement ces infos d'Outlook (un
espece
> de
> > > Me. )
> > >
> > > ou bien dois je déclarer des variables comme ci dessous pour acceder
> > tous
> > > les champs
> > > du mail ?
> > > Dim OL_App As New Outlook.Application
> > > Dim OL_Space As Outlook.NameSpace
> > > Dim OL_Folder As Outlook.MAPIFolder
> > > Dim OL_Folderx As Outlook.MAPIFolde
> > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > Set OL_Folder = OL_Folderx
> > >
> > > dans ce cas comment faire pour adresser uniquement les nouveaux mail
> (reçu
> > > puis envoyés ?)
> > >
> > > merci pour ton aide
> > > @+
> > > Alain
> > >
> > >
> > >
> > > "Clive Lumb" a écrit dans le
> > message
> > > de news:
> > > > Regarder du coté du vba de Outlook.
> > > > Les evenements NewMail et ItemSend de l'objet Application
> > faire
> > > > ton affaire.
> > > >
> > > > Clive
> > > >
> > > > "Xantia" a écrit dans le
> message
> > > de
> > > > news:
> > > > > Bonjour
> > > > >
> > > > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > > > J'aimerais en fait "automatiser" mon code pour que dés réception
> d'un
> > > > nouvel
> > > > > Email dans ma boite de réception et/ou dès que j'ai
> > > envoyé
> > > > un
> > > > > j'enclenche une action envers ma base Access.
> > > > >
> > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> reception
> > > de
> > > > > mes messages ?
> > > > >
> > > > >
> > > > >
> > > > > merci pour votre aide
> > > > >
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Xantia,
Oui tu as très bien compris, par contre l'exemple que je t'ai donné est
pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de le
faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien à
faire au niveau de la sécurité macro. Si c'est à distribuer sur plusieurs
crois qu'il faut le "signer".
Pour les opérations Access - dans un appli semblable j'ai créé un ActiveX
avec VB6 que j'ai déclaré comme référence dans Outlook.
"Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
news:ubU0Dgf9DHA.2432@TK2MSFTNGP10.phx.gbl...
> Merci Climb
> ça m'a l'air génial ce bout de code mais j'ai encore quelques questions
...
>
> 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque je
> reçois un Email)
> J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code VB)
>
> Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
>
> 2) Merci de me confirmer que mon interprétation est la bonne
>
> J'ai compris que :
>
> outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
> simplement appeler
> dans les evenements NewMail et ItemSend de l'objet Application.
> il me suffit de faire donc un Call outApp_NewMailEx.
>
> Puis de faire à l'interieur de chaque subroutine mes opérations de copy
vers
> ma base Access
> en prenant les valeurs dans : mai.Subject
> mai.From
> mai.To ...
>
> Encore merci pour ton aide précieuse
> @+
> Alain
>
>
> "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
message
> de news:ex3R7Ka9DHA.2524@TK2MSFTNGP11.phx.gbl...
> > Voici ce que l'on trouve dans l'aide d'Outlook
> > -----------------------
> > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
illustre
> > comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
> > exécuter l'exemple, vous devez exécuter la routine Initialize_Handler.
Cet
> > événement se déclenche lors de la réception d'un ou plusieurs messages
> dans
> > la Boîte de réception.
> >
> >
> > Public WithEvents outApp As Outlook.Application
> >
> > Sub Intialize_Handler()
> > Set outApp = Application
> > End Sub
> >
> > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > Dim mai As Object
> > Dim intInitial As Integer
> > Dim intFinal As Integer
> > Dim strEntryId As String
> > Dim intLength As Integer
> >
> > intInitial = 1
> > intLength = Len(EntryIDCollection)
> > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > Do While intFinal <> 0
> > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> (intFinal -
> > intInitial))
> > MsgBox "EntryId: " & strEntryId
> > Set mai = Application.Session.GetItemFromID(strEntryId)
> > MsgBox mai.Subject
> > intInitial = intFinal + 1
> > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > Loop
> > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > intInitial) + 1)
> > MsgBox strEntryId
> > Set mai = Application.Session.GetItemFromID(strEntryId)
> > MsgBox mai.Subject
> >
> > End Sub
> > ------------------------------------L'exemple Microsoft Visual
> Basic/Visual
> > Basic pour Applications (VBA) suivant montre comment annuler
> > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
> être
> > placé dans un module de classe et la routine Initialize_handler doit
être
> > appelée avant que la procédure événementielle puisse être appelée par
> > Microsoft Outlook.
> >
> > Public WithEvents myOlApp As Outlook.Application
> >
> > Public Sub Initialize_handler()
> > Set myOlApp = CreateObject("Outlook.Application")
> > End Sub
> >
> > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
> > Dim prompt As String
> > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > Cancel = True
> > End If
> > End Sub
> >
> >
> > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> de
> > news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> > > Bonjour Climb
> > >
> > > Merci pour l'info
> > > J'ai commencé à regarder ça mais ça suscite des questions nouvelles
> > >
> > > En fait je cherche à copier "automatiquemet" dans une table access
> > mails
> > > dont l'adresse
> > > d'expediteur (ou de destinataire) existent déja dans une autre de
> > table.
> > >
> > > est ce que je peux récupérer directement ces infos d'Outlook (un
espece
> de
> > > Me. )
> > >
> > > ou bien dois je déclarer des variables comme ci dessous pour acceder
> > tous
> > > les champs
> > > du mail ?
> > > Dim OL_App As New Outlook.Application
> > > Dim OL_Space As Outlook.NameSpace
> > > Dim OL_Folder As Outlook.MAPIFolder
> > > Dim OL_Folderx As Outlook.MAPIFolde
> > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > Set OL_Folder = OL_Folderx
> > >
> > > dans ce cas comment faire pour adresser uniquement les nouveaux mail
> (reçu
> > > puis envoyés ?)
> > >
> > > merci pour ton aide
> > > @+
> > > Alain
> > >
> > >
> > >
> > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
> > message
> > > de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > > > Regarder du coté du vba de Outlook.
> > > > Les evenements NewMail et ItemSend de l'objet Application
> > faire
> > > > ton affaire.
> > > >
> > > > Clive
> > > >
> > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> message
> > > de
> > > > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > > > Bonjour
> > > > >
> > > > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > > > J'aimerais en fait "automatiser" mon code pour que dés réception
> d'un
> > > > nouvel
> > > > > Email dans ma boite de réception et/ou dès que j'ai
> > > envoyé
> > > > un
> > > > > j'enclenche une action envers ma base Access.
> > > > >
> > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> reception
> > > de
> > > > > mes messages ?
> > > > >
> > > > >
> > > > >
> > > > > merci pour votre aide
> > > > >
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Xantia,
Oui tu as très bien compris, par contre l'exemple que je t'ai donné est
pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de le
faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien à
faire au niveau de la sécurité macro. Si c'est à distribuer sur plusieurs
crois qu'il faut le "signer".
Pour les opérations Access - dans un appli semblable j'ai créé un ActiveX
avec VB6 que j'ai déclaré comme référence dans Outlook.
"Xantia" a écrit dans le message
news:
> Merci Climb
> ça m'a l'air génial ce bout de code mais j'ai encore quelques questions
...
>
> 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque je
> reçois un Email)
> J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code VB)
>
> Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
>
> 2) Merci de me confirmer que mon interprétation est la bonne
>
> J'ai compris que :
>
> outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
> simplement appeler
> dans les evenements NewMail et ItemSend de l'objet Application.
> il me suffit de faire donc un Call outApp_NewMailEx.
>
> Puis de faire à l'interieur de chaque subroutine mes opérations de copy
vers
> ma base Access
> en prenant les valeurs dans : mai.Subject
> mai.From
> mai.To ...
>
> Encore merci pour ton aide précieuse
> @+
> Alain
>
>
> "Clive Lumb" a écrit dans le
message
> de news:
> > Voici ce que l'on trouve dans l'aide d'Outlook
> > -----------------------
> > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
illustre
> > comment l'événement NewMailEx renvoie l'identificateur d'entrée. Pour
> > exécuter l'exemple, vous devez exécuter la routine Initialize_Handler.
Cet
> > événement se déclenche lors de la réception d'un ou plusieurs messages
> dans
> > la Boîte de réception.
> >
> >
> > Public WithEvents outApp As Outlook.Application
> >
> > Sub Intialize_Handler()
> > Set outApp = Application
> > End Sub
> >
> > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > Dim mai As Object
> > Dim intInitial As Integer
> > Dim intFinal As Integer
> > Dim strEntryId As String
> > Dim intLength As Integer
> >
> > intInitial = 1
> > intLength = Len(EntryIDCollection)
> > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > Do While intFinal <> 0
> > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> (intFinal -
> > intInitial))
> > MsgBox "EntryId: " & strEntryId
> > Set mai = Application.Session.GetItemFromID(strEntryId)
> > MsgBox mai.Subject
> > intInitial = intFinal + 1
> > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > Loop
> > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > intInitial) + 1)
> > MsgBox strEntryId
> > Set mai = Application.Session.GetItemFromID(strEntryId)
> > MsgBox mai.Subject
> >
> > End Sub
> > ------------------------------------L'exemple Microsoft Visual
> Basic/Visual
> > Basic pour Applications (VBA) suivant montre comment annuler
> > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
> être
> > placé dans un module de classe et la routine Initialize_handler doit
être
> > appelée avant que la procédure événementielle puisse être appelée par
> > Microsoft Outlook.
> >
> > Public WithEvents myOlApp As Outlook.Application
> >
> > Public Sub Initialize_handler()
> > Set myOlApp = CreateObject("Outlook.Application")
> > End Sub
> >
> > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
> > Dim prompt As String
> > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > Cancel = True
> > End If
> > End Sub
> >
> >
> > "Xantia" a écrit dans le
> de
> > news:
> > > Bonjour Climb
> > >
> > > Merci pour l'info
> > > J'ai commencé à regarder ça mais ça suscite des questions nouvelles
> > >
> > > En fait je cherche à copier "automatiquemet" dans une table access
> > mails
> > > dont l'adresse
> > > d'expediteur (ou de destinataire) existent déja dans une autre de
> > table.
> > >
> > > est ce que je peux récupérer directement ces infos d'Outlook (un
espece
> de
> > > Me. )
> > >
> > > ou bien dois je déclarer des variables comme ci dessous pour acceder
> > tous
> > > les champs
> > > du mail ?
> > > Dim OL_App As New Outlook.Application
> > > Dim OL_Space As Outlook.NameSpace
> > > Dim OL_Folder As Outlook.MAPIFolder
> > > Dim OL_Folderx As Outlook.MAPIFolde
> > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > Set OL_Folder = OL_Folderx
> > >
> > > dans ce cas comment faire pour adresser uniquement les nouveaux mail
> (reçu
> > > puis envoyés ?)
> > >
> > > merci pour ton aide
> > > @+
> > > Alain
> > >
> > >
> > >
> > > "Clive Lumb" a écrit dans le
> > message
> > > de news:
> > > > Regarder du coté du vba de Outlook.
> > > > Les evenements NewMail et ItemSend de l'objet Application
> > faire
> > > > ton affaire.
> > > >
> > > > Clive
> > > >
> > > > "Xantia" a écrit dans le
> message
> > > de
> > > > news:
> > > > > Bonjour
> > > > >
> > > > > Je fait communiquer ma base Access avec la messagerie d'Outlook.
> > > > > J'aimerais en fait "automatiser" mon code pour que dés réception
> d'un
> > > > nouvel
> > > > > Email dans ma boite de réception et/ou dès que j'ai
> > > envoyé
> > > > un
> > > > > j'enclenche une action envers ma base Access.
> > > > >
> > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> reception
> > > de
> > > > > mes messages ?
> > > > >
> > > > >
> > > > >
> > > > > merci pour votre aide
> > > > >
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Bonjour Clive
Je ne suis pas encore arrivé à faire tourner ton code
lorsque je fait le : Call outApp_NewMailEx
quel est le paramettre à mettre passer entre parenthèsese Call
outApp_NewMailEx ( ????)
merci encore
@+
Alain
"Clive Lumb" a écrit dans le
de news:
> Xantia,
>
> Oui tu as très bien compris, par contre l'exemple que je t'ai donné est
fait
> pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de le
> faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien à
> faire au niveau de la sécurité macro. Si c'est à distribuer sur
je
> crois qu'il faut le "signer".
> Pour les opérations Access - dans un appli semblable j'ai créé un
> avec VB6 que j'ai déclaré comme référence dans Outlook.
>
>
>
> "Xantia" a écrit dans le message
de
> news:
> > Merci Climb
> > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> ...
> >
> > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque
> > reçois un Email)
> > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code
> >
> > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> >
> > 2) Merci de me confirmer que mon interprétation est la bonne
> >
> > J'ai compris que :
> >
> > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
donc
> > simplement appeler
> > dans les evenements NewMail et ItemSend de l'objet Application.
> > il me suffit de faire donc un Call outApp_NewMailEx.
> >
> > Puis de faire à l'interieur de chaque subroutine mes opérations de
> vers
> > ma base Access
> > en prenant les valeurs dans : mai.Subject
> > mai.From
> > mai.To ...
> >
> > Encore merci pour ton aide précieuse
> > @+
> > Alain
> >
> >
> > "Clive Lumb" a écrit dans le
> message
> > de news:
> > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > -----------------------
> > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> illustre
> > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
> > > exécuter l'exemple, vous devez exécuter la routine
> Cet
> > > événement se déclenche lors de la réception d'un ou plusieurs
> > dans
> > > la Boîte de réception.
> > >
> > >
> > > Public WithEvents outApp As Outlook.Application
> > >
> > > Sub Intialize_Handler()
> > > Set outApp = Application
> > > End Sub
> > >
> > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > Dim mai As Object
> > > Dim intInitial As Integer
> > > Dim intFinal As Integer
> > > Dim strEntryId As String
> > > Dim intLength As Integer
> > >
> > > intInitial = 1
> > > intLength = Len(EntryIDCollection)
> > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > Do While intFinal <> 0
> > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > (intFinal -
> > > intInitial))
> > > MsgBox "EntryId: " & strEntryId
> > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > MsgBox mai.Subject
> > > intInitial = intFinal + 1
> > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > Loop
> > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
(intLength -
> > > intInitial) + 1)
> > > MsgBox strEntryId
> > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > MsgBox mai.Subject
> > >
> > > End Sub
> > > ------------------------------------L'exemple Microsoft Visual
> > Basic/Visual
> > > Basic pour Applications (VBA) suivant montre comment annuler
l'événement
> > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
doit
> > être
> > > placé dans un module de classe et la routine Initialize_handler doit
> être
> > > appelée avant que la procédure événementielle puisse être appelée
> > > Microsoft Outlook.
> > >
> > > Public WithEvents myOlApp As Outlook.Application
> > >
> > > Public Sub Initialize_handler()
> > > Set myOlApp = CreateObject("Outlook.Application")
> > > End Sub
> > >
> > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> > > Dim prompt As String
> > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > Cancel = True
> > > End If
> > > End Sub
> > >
> > >
> > > "Xantia" a écrit dans le
message
> > de
> > > news:
> > > > Bonjour Climb
> > > >
> > > > Merci pour l'info
> > > > J'ai commencé à regarder ça mais ça suscite des questions
> > > >
> > > > En fait je cherche à copier "automatiquemet" dans une table access
les
> > > mails
> > > > dont l'adresse
> > > > d'expediteur (ou de destinataire) existent déja dans une autre de
mes
> > > table.
> > > >
> > > > est ce que je peux récupérer directement ces infos d'Outlook (un
> espece
> > de
> > > > Me. )
> > > >
> > > > ou bien dois je déclarer des variables comme ci dessous pour
à
> > > tous
> > > > les champs
> > > > du mail ?
> > > > Dim OL_App As New Outlook.Application
> > > > Dim OL_Space As Outlook.NameSpace
> > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > Set OL_Folder = OL_Folderx
> > > >
> > > > dans ce cas comment faire pour adresser uniquement les nouveaux
> > (reçu
> > > > puis envoyés ?)
> > > >
> > > > merci pour ton aide
> > > > @+
> > > > Alain
> > > >
> > > >
> > > >
> > > > "Clive Lumb" a écrit dans
> > > message
> > > > de news:
> > > > > Regarder du coté du vba de Outlook.
> > > > > Les evenements NewMail et ItemSend de l'objet Application
devraient
> > > faire
> > > > > ton affaire.
> > > > >
> > > > > Clive
> > > > >
> > > > > "Xantia" a écrit dans le
> > message
> > > > de
> > > > > news:
> > > > > > Bonjour
> > > > > >
> > > > > > Je fait communiquer ma base Access avec la messagerie
> > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> > d'un
> > > > > nouvel
> > > > > > Email dans ma boite de réception et/ou dès que j'ai
éffectivement
> > > > envoyé
> > > > > un
> > > > > > j'enclenche une action envers ma base Access.
> > > > > >
> > > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> > reception
> > > > de
> > > > > > mes messages ?
> > > > > >
> > > > > >
> > > > > >
> > > > > > merci pour votre aide
> > > > > >
> > > > > > @+
> > > > > > Alain
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Bonjour Clive
Je ne suis pas encore arrivé à faire tourner ton code
lorsque je fait le : Call outApp_NewMailEx
quel est le paramettre à mettre passer entre parenthèsese Call
outApp_NewMailEx ( ????)
merci encore
@+
Alain
"Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
de news:eH63eZm9DHA.440@TK2MSFTNGP10.phx.gbl...
> Xantia,
>
> Oui tu as très bien compris, par contre l'exemple que je t'ai donné est
fait
> pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de le
> faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien à
> faire au niveau de la sécurité macro. Si c'est à distribuer sur
je
> crois qu'il faut le "signer".
> Pour les opérations Access - dans un appli semblable j'ai créé un
> avec VB6 que j'ai déclaré comme référence dans Outlook.
>
>
>
> "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
de
> news:ubU0Dgf9DHA.2432@TK2MSFTNGP10.phx.gbl...
> > Merci Climb
> > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> ...
> >
> > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque
> > reçois un Email)
> > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code
> >
> > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> >
> > 2) Merci de me confirmer que mon interprétation est la bonne
> >
> > J'ai compris que :
> >
> > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
donc
> > simplement appeler
> > dans les evenements NewMail et ItemSend de l'objet Application.
> > il me suffit de faire donc un Call outApp_NewMailEx.
> >
> > Puis de faire à l'interieur de chaque subroutine mes opérations de
> vers
> > ma base Access
> > en prenant les valeurs dans : mai.Subject
> > mai.From
> > mai.To ...
> >
> > Encore merci pour ton aide précieuse
> > @+
> > Alain
> >
> >
> > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
> message
> > de news:ex3R7Ka9DHA.2524@TK2MSFTNGP11.phx.gbl...
> > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > -----------------------
> > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> illustre
> > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
> > > exécuter l'exemple, vous devez exécuter la routine
> Cet
> > > événement se déclenche lors de la réception d'un ou plusieurs
> > dans
> > > la Boîte de réception.
> > >
> > >
> > > Public WithEvents outApp As Outlook.Application
> > >
> > > Sub Intialize_Handler()
> > > Set outApp = Application
> > > End Sub
> > >
> > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > Dim mai As Object
> > > Dim intInitial As Integer
> > > Dim intFinal As Integer
> > > Dim strEntryId As String
> > > Dim intLength As Integer
> > >
> > > intInitial = 1
> > > intLength = Len(EntryIDCollection)
> > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > Do While intFinal <> 0
> > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > (intFinal -
> > > intInitial))
> > > MsgBox "EntryId: " & strEntryId
> > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > MsgBox mai.Subject
> > > intInitial = intFinal + 1
> > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > Loop
> > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
(intLength -
> > > intInitial) + 1)
> > > MsgBox strEntryId
> > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > MsgBox mai.Subject
> > >
> > > End Sub
> > > ------------------------------------L'exemple Microsoft Visual
> > Basic/Visual
> > > Basic pour Applications (VBA) suivant montre comment annuler
l'événement
> > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
doit
> > être
> > > placé dans un module de classe et la routine Initialize_handler doit
> être
> > > appelée avant que la procédure événementielle puisse être appelée
> > > Microsoft Outlook.
> > >
> > > Public WithEvents myOlApp As Outlook.Application
> > >
> > > Public Sub Initialize_handler()
> > > Set myOlApp = CreateObject("Outlook.Application")
> > > End Sub
> > >
> > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> > > Dim prompt As String
> > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > Cancel = True
> > > End If
> > > End Sub
> > >
> > >
> > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
message
> > de
> > > news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> > > > Bonjour Climb
> > > >
> > > > Merci pour l'info
> > > > J'ai commencé à regarder ça mais ça suscite des questions
> > > >
> > > > En fait je cherche à copier "automatiquemet" dans une table access
les
> > > mails
> > > > dont l'adresse
> > > > d'expediteur (ou de destinataire) existent déja dans une autre de
mes
> > > table.
> > > >
> > > > est ce que je peux récupérer directement ces infos d'Outlook (un
> espece
> > de
> > > > Me. )
> > > >
> > > > ou bien dois je déclarer des variables comme ci dessous pour
à
> > > tous
> > > > les champs
> > > > du mail ?
> > > > Dim OL_App As New Outlook.Application
> > > > Dim OL_Space As Outlook.NameSpace
> > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > Set OL_Folder = OL_Folderx
> > > >
> > > > dans ce cas comment faire pour adresser uniquement les nouveaux
> > (reçu
> > > > puis envoyés ?)
> > > >
> > > > merci pour ton aide
> > > > @+
> > > > Alain
> > > >
> > > >
> > > >
> > > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans
> > > message
> > > > de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > > > > Regarder du coté du vba de Outlook.
> > > > > Les evenements NewMail et ItemSend de l'objet Application
devraient
> > > faire
> > > > > ton affaire.
> > > > >
> > > > > Clive
> > > > >
> > > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> > message
> > > > de
> > > > > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > > > > Bonjour
> > > > > >
> > > > > > Je fait communiquer ma base Access avec la messagerie
> > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> > d'un
> > > > > nouvel
> > > > > > Email dans ma boite de réception et/ou dès que j'ai
éffectivement
> > > > envoyé
> > > > > un
> > > > > > j'enclenche une action envers ma base Access.
> > > > > >
> > > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> > reception
> > > > de
> > > > > > mes messages ?
> > > > > >
> > > > > >
> > > > > >
> > > > > > merci pour votre aide
> > > > > >
> > > > > > @+
> > > > > > Alain
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Bonjour Clive
Je ne suis pas encore arrivé à faire tourner ton code
lorsque je fait le : Call outApp_NewMailEx
quel est le paramettre à mettre passer entre parenthèsese Call
outApp_NewMailEx ( ????)
merci encore
@+
Alain
"Clive Lumb" a écrit dans le
de news:
> Xantia,
>
> Oui tu as très bien compris, par contre l'exemple que je t'ai donné est
fait
> pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de le
> faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien à
> faire au niveau de la sécurité macro. Si c'est à distribuer sur
je
> crois qu'il faut le "signer".
> Pour les opérations Access - dans un appli semblable j'ai créé un
> avec VB6 que j'ai déclaré comme référence dans Outlook.
>
>
>
> "Xantia" a écrit dans le message
de
> news:
> > Merci Climb
> > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> ...
> >
> > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou lorsque
> > reçois un Email)
> > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code
> >
> > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> >
> > 2) Merci de me confirmer que mon interprétation est la bonne
> >
> > J'ai compris que :
> >
> > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
donc
> > simplement appeler
> > dans les evenements NewMail et ItemSend de l'objet Application.
> > il me suffit de faire donc un Call outApp_NewMailEx.
> >
> > Puis de faire à l'interieur de chaque subroutine mes opérations de
> vers
> > ma base Access
> > en prenant les valeurs dans : mai.Subject
> > mai.From
> > mai.To ...
> >
> > Encore merci pour ton aide précieuse
> > @+
> > Alain
> >
> >
> > "Clive Lumb" a écrit dans le
> message
> > de news:
> > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > -----------------------
> > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> illustre
> > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
> > > exécuter l'exemple, vous devez exécuter la routine
> Cet
> > > événement se déclenche lors de la réception d'un ou plusieurs
> > dans
> > > la Boîte de réception.
> > >
> > >
> > > Public WithEvents outApp As Outlook.Application
> > >
> > > Sub Intialize_Handler()
> > > Set outApp = Application
> > > End Sub
> > >
> > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > Dim mai As Object
> > > Dim intInitial As Integer
> > > Dim intFinal As Integer
> > > Dim strEntryId As String
> > > Dim intLength As Integer
> > >
> > > intInitial = 1
> > > intLength = Len(EntryIDCollection)
> > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > Do While intFinal <> 0
> > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > (intFinal -
> > > intInitial))
> > > MsgBox "EntryId: " & strEntryId
> > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > MsgBox mai.Subject
> > > intInitial = intFinal + 1
> > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > Loop
> > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
(intLength -
> > > intInitial) + 1)
> > > MsgBox strEntryId
> > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > MsgBox mai.Subject
> > >
> > > End Sub
> > > ------------------------------------L'exemple Microsoft Visual
> > Basic/Visual
> > > Basic pour Applications (VBA) suivant montre comment annuler
l'événement
> > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
doit
> > être
> > > placé dans un module de classe et la routine Initialize_handler doit
> être
> > > appelée avant que la procédure événementielle puisse être appelée
> > > Microsoft Outlook.
> > >
> > > Public WithEvents myOlApp As Outlook.Application
> > >
> > > Public Sub Initialize_handler()
> > > Set myOlApp = CreateObject("Outlook.Application")
> > > End Sub
> > >
> > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> > > Dim prompt As String
> > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > Cancel = True
> > > End If
> > > End Sub
> > >
> > >
> > > "Xantia" a écrit dans le
message
> > de
> > > news:
> > > > Bonjour Climb
> > > >
> > > > Merci pour l'info
> > > > J'ai commencé à regarder ça mais ça suscite des questions
> > > >
> > > > En fait je cherche à copier "automatiquemet" dans une table access
les
> > > mails
> > > > dont l'adresse
> > > > d'expediteur (ou de destinataire) existent déja dans une autre de
mes
> > > table.
> > > >
> > > > est ce que je peux récupérer directement ces infos d'Outlook (un
> espece
> > de
> > > > Me. )
> > > >
> > > > ou bien dois je déclarer des variables comme ci dessous pour
à
> > > tous
> > > > les champs
> > > > du mail ?
> > > > Dim OL_App As New Outlook.Application
> > > > Dim OL_Space As Outlook.NameSpace
> > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > Set OL_Folder = OL_Folderx
> > > >
> > > > dans ce cas comment faire pour adresser uniquement les nouveaux
> > (reçu
> > > > puis envoyés ?)
> > > >
> > > > merci pour ton aide
> > > > @+
> > > > Alain
> > > >
> > > >
> > > >
> > > > "Clive Lumb" a écrit dans
> > > message
> > > > de news:
> > > > > Regarder du coté du vba de Outlook.
> > > > > Les evenements NewMail et ItemSend de l'objet Application
devraient
> > > faire
> > > > > ton affaire.
> > > > >
> > > > > Clive
> > > > >
> > > > > "Xantia" a écrit dans le
> > message
> > > > de
> > > > > news:
> > > > > > Bonjour
> > > > > >
> > > > > > Je fait communiquer ma base Access avec la messagerie
> > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> > d'un
> > > > > nouvel
> > > > > > Email dans ma boite de réception et/ou dès que j'ai
éffectivement
> > > > envoyé
> > > > > un
> > > > > > j'enclenche une action envers ma base Access.
> > > > > >
> > > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> > reception
> > > > de
> > > > > > mes messages ?
> > > > > >
> > > > > >
> > > > > >
> > > > > > merci pour votre aide
> > > > > >
> > > > > > @+
> > > > > > Alain
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Alain,
NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele pas...
Si tu regardes dans la liste déroulant des objets en haut de la fenetre de
code tu devrais trouver Out_App, ensuite
dans les procédure tu trouveras NewMailEx
Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir si
cela marche
"Xantia" a écrit dans le message
news:%
> Bonjour Clive
>
> Je ne suis pas encore arrivé à faire tourner ton code
> lorsque je fait le : Call outApp_NewMailEx
> quel est le paramettre à mettre passer entre parenthèsese Call
> outApp_NewMailEx ( ????)
>
> merci encore
> @+
> Alain
>
> "Clive Lumb" a écrit dans le
message
> de news:
> > Xantia,
> >
> > Oui tu as très bien compris, par contre l'exemple que je t'ai donné
> fait
> > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de
> > faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien
> > faire au niveau de la sécurité macro. Si c'est à distribuer sur
plusieurs
> je
> > crois qu'il faut le "signer".
> > Pour les opérations Access - dans un appli semblable j'ai créé un
ActiveX
> > avec VB6 que j'ai déclaré comme référence dans Outlook.
> >
> >
> >
> > "Xantia" a écrit dans le
> de
> > news:
> > > Merci Climb
> > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
questions
> > ...
> > >
> > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
je
> > > reçois un Email)
> > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code
VB)
> > >
> > > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> > >
> > > 2) Merci de me confirmer que mon interprétation est la bonne
> > >
> > > J'ai compris que :
> > >
> > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
> donc
> > > simplement appeler
> > > dans les evenements NewMail et ItemSend de l'objet Application.
> > > il me suffit de faire donc un Call outApp_NewMailEx.
> > >
> > > Puis de faire à l'interieur de chaque subroutine mes opérations de
copy
> > vers
> > > ma base Access
> > > en prenant les valeurs dans : mai.Subject
> > > mai.From
> > > mai.To ...
> > >
> > > Encore merci pour ton aide précieuse
> > > @+
> > > Alain
> > >
> > >
> > > "Clive Lumb" a écrit dans le
> > message
> > > de news:
> > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > -----------------------
> > > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> > illustre
> > > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
Pour
> > > > exécuter l'exemple, vous devez exécuter la routine
Initialize_Handler.
> > Cet
> > > > événement se déclenche lors de la réception d'un ou plusieurs
messages
> > > dans
> > > > la Boîte de réception.
> > > >
> > > >
> > > > Public WithEvents outApp As Outlook.Application
> > > >
> > > > Sub Intialize_Handler()
> > > > Set outApp = Application
> > > > End Sub
> > > >
> > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > > Dim mai As Object
> > > > Dim intInitial As Integer
> > > > Dim intFinal As Integer
> > > > Dim strEntryId As String
> > > > Dim intLength As Integer
> > > >
> > > > intInitial = 1
> > > > intLength = Len(EntryIDCollection)
> > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > Do While intFinal <> 0
> > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > (intFinal -
> > > > intInitial))
> > > > MsgBox "EntryId: " & strEntryId
> > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > MsgBox mai.Subject
> > > > intInitial = intFinal + 1
> > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > Loop
> > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> (intLength -
> > > > intInitial) + 1)
> > > > MsgBox strEntryId
> > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > MsgBox mai.Subject
> > > >
> > > > End Sub
> > > > ------------------------------------L'exemple Microsoft Visual
> > > Basic/Visual
> > > > Basic pour Applications (VBA) suivant montre comment annuler
> l'événement
> > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
> doit
> > > être
> > > > placé dans un module de classe et la routine Initialize_handler
> > être
> > > > appelée avant que la procédure événementielle puisse être appelée
par
> > > > Microsoft Outlook.
> > > >
> > > > Public WithEvents myOlApp As Outlook.Application
> > > >
> > > > Public Sub Initialize_handler()
> > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > End Sub
> > > >
> > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
Boolean)
> > > > Dim prompt As String
> > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > Cancel = True
> > > > End If
> > > > End Sub
> > > >
> > > >
> > > > "Xantia" a écrit dans le
> message
> > > de
> > > > news:
> > > > > Bonjour Climb
> > > > >
> > > > > Merci pour l'info
> > > > > J'ai commencé à regarder ça mais ça suscite des questions
nouvelles
> > > > >
> > > > > En fait je cherche à copier "automatiquemet" dans une table
> les
> > > > mails
> > > > > dont l'adresse
> > > > > d'expediteur (ou de destinataire) existent déja dans une autre
> mes
> > > > table.
> > > > >
> > > > > est ce que je peux récupérer directement ces infos d'Outlook (un
> > espece
> > > de
> > > > > Me. )
> > > > >
> > > > > ou bien dois je déclarer des variables comme ci dessous pour
acceder
> à
> > > > tous
> > > > > les champs
> > > > > du mail ?
> > > > > Dim OL_App As New Outlook.Application
> > > > > Dim OL_Space As Outlook.NameSpace
> > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > Set OL_Folder = OL_Folderx
> > > > >
> > > > > dans ce cas comment faire pour adresser uniquement les nouveaux
> > > (reçu
> > > > > puis envoyés ?)
> > > > >
> > > > > merci pour ton aide
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > > >
> > > > > "Clive Lumb" a écrit
le
> > > > message
> > > > > de news:
> > > > > > Regarder du coté du vba de Outlook.
> > > > > > Les evenements NewMail et ItemSend de l'objet Application
> devraient
> > > > faire
> > > > > > ton affaire.
> > > > > >
> > > > > > Clive
> > > > > >
> > > > > > "Xantia" a écrit dans
> > > message
> > > > > de
> > > > > > news:
> > > > > > > Bonjour
> > > > > > >
> > > > > > > Je fait communiquer ma base Access avec la messagerie
d'Outlook.
> > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
réception
> > > d'un
> > > > > > nouvel
> > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> éffectivement
> > > > > envoyé
> > > > > > un
> > > > > > > j'enclenche une action envers ma base Access.
> > > > > > >
> > > > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> > > reception
> > > > > de
> > > > > > > mes messages ?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > merci pour votre aide
> > > > > > >
> > > > > > > @+
> > > > > > > Alain
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Alain,
NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele pas...
Si tu regardes dans la liste déroulant des objets en haut de la fenetre de
code tu devrais trouver Out_App, ensuite
dans les procédure tu trouveras NewMailEx
Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir si
cela marche
"Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
news:%23SqxEsv9DHA.2064@TK2MSFTNGP11.phx.gbl...
> Bonjour Clive
>
> Je ne suis pas encore arrivé à faire tourner ton code
> lorsque je fait le : Call outApp_NewMailEx
> quel est le paramettre à mettre passer entre parenthèsese Call
> outApp_NewMailEx ( ????)
>
> merci encore
> @+
> Alain
>
> "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
message
> de news:eH63eZm9DHA.440@TK2MSFTNGP10.phx.gbl...
> > Xantia,
> >
> > Oui tu as très bien compris, par contre l'exemple que je t'ai donné
> fait
> > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de
> > faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien
> > faire au niveau de la sécurité macro. Si c'est à distribuer sur
plusieurs
> je
> > crois qu'il faut le "signer".
> > Pour les opérations Access - dans un appli semblable j'ai créé un
ActiveX
> > avec VB6 que j'ai déclaré comme référence dans Outlook.
> >
> >
> >
> > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> de
> > news:ubU0Dgf9DHA.2432@TK2MSFTNGP10.phx.gbl...
> > > Merci Climb
> > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
questions
> > ...
> > >
> > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
je
> > > reçois un Email)
> > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code
VB)
> > >
> > > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> > >
> > > 2) Merci de me confirmer que mon interprétation est la bonne
> > >
> > > J'ai compris que :
> > >
> > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
> donc
> > > simplement appeler
> > > dans les evenements NewMail et ItemSend de l'objet Application.
> > > il me suffit de faire donc un Call outApp_NewMailEx.
> > >
> > > Puis de faire à l'interieur de chaque subroutine mes opérations de
copy
> > vers
> > > ma base Access
> > > en prenant les valeurs dans : mai.Subject
> > > mai.From
> > > mai.To ...
> > >
> > > Encore merci pour ton aide précieuse
> > > @+
> > > Alain
> > >
> > >
> > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
> > message
> > > de news:ex3R7Ka9DHA.2524@TK2MSFTNGP11.phx.gbl...
> > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > -----------------------
> > > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> > illustre
> > > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
Pour
> > > > exécuter l'exemple, vous devez exécuter la routine
Initialize_Handler.
> > Cet
> > > > événement se déclenche lors de la réception d'un ou plusieurs
messages
> > > dans
> > > > la Boîte de réception.
> > > >
> > > >
> > > > Public WithEvents outApp As Outlook.Application
> > > >
> > > > Sub Intialize_Handler()
> > > > Set outApp = Application
> > > > End Sub
> > > >
> > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > > Dim mai As Object
> > > > Dim intInitial As Integer
> > > > Dim intFinal As Integer
> > > > Dim strEntryId As String
> > > > Dim intLength As Integer
> > > >
> > > > intInitial = 1
> > > > intLength = Len(EntryIDCollection)
> > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > Do While intFinal <> 0
> > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > (intFinal -
> > > > intInitial))
> > > > MsgBox "EntryId: " & strEntryId
> > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > MsgBox mai.Subject
> > > > intInitial = intFinal + 1
> > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > Loop
> > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> (intLength -
> > > > intInitial) + 1)
> > > > MsgBox strEntryId
> > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > MsgBox mai.Subject
> > > >
> > > > End Sub
> > > > ------------------------------------L'exemple Microsoft Visual
> > > Basic/Visual
> > > > Basic pour Applications (VBA) suivant montre comment annuler
> l'événement
> > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
> doit
> > > être
> > > > placé dans un module de classe et la routine Initialize_handler
> > être
> > > > appelée avant que la procédure événementielle puisse être appelée
par
> > > > Microsoft Outlook.
> > > >
> > > > Public WithEvents myOlApp As Outlook.Application
> > > >
> > > > Public Sub Initialize_handler()
> > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > End Sub
> > > >
> > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
Boolean)
> > > > Dim prompt As String
> > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > Cancel = True
> > > > End If
> > > > End Sub
> > > >
> > > >
> > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> message
> > > de
> > > > news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> > > > > Bonjour Climb
> > > > >
> > > > > Merci pour l'info
> > > > > J'ai commencé à regarder ça mais ça suscite des questions
nouvelles
> > > > >
> > > > > En fait je cherche à copier "automatiquemet" dans une table
> les
> > > > mails
> > > > > dont l'adresse
> > > > > d'expediteur (ou de destinataire) existent déja dans une autre
> mes
> > > > table.
> > > > >
> > > > > est ce que je peux récupérer directement ces infos d'Outlook (un
> > espece
> > > de
> > > > > Me. )
> > > > >
> > > > > ou bien dois je déclarer des variables comme ci dessous pour
acceder
> à
> > > > tous
> > > > > les champs
> > > > > du mail ?
> > > > > Dim OL_App As New Outlook.Application
> > > > > Dim OL_Space As Outlook.NameSpace
> > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > Set OL_Folder = OL_Folderx
> > > > >
> > > > > dans ce cas comment faire pour adresser uniquement les nouveaux
> > > (reçu
> > > > > puis envoyés ?)
> > > > >
> > > > > merci pour ton aide
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > > >
> > > > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit
le
> > > > message
> > > > > de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > > > > > Regarder du coté du vba de Outlook.
> > > > > > Les evenements NewMail et ItemSend de l'objet Application
> devraient
> > > > faire
> > > > > > ton affaire.
> > > > > >
> > > > > > Clive
> > > > > >
> > > > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans
> > > message
> > > > > de
> > > > > > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > > > > > Bonjour
> > > > > > >
> > > > > > > Je fait communiquer ma base Access avec la messagerie
d'Outlook.
> > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
réception
> > > d'un
> > > > > > nouvel
> > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> éffectivement
> > > > > envoyé
> > > > > > un
> > > > > > > j'enclenche une action envers ma base Access.
> > > > > > >
> > > > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> > > reception
> > > > > de
> > > > > > > mes messages ?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > merci pour votre aide
> > > > > > >
> > > > > > > @+
> > > > > > > Alain
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Alain,
NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele pas...
Si tu regardes dans la liste déroulant des objets en haut de la fenetre de
code tu devrais trouver Out_App, ensuite
dans les procédure tu trouveras NewMailEx
Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir si
cela marche
"Xantia" a écrit dans le message
news:%
> Bonjour Clive
>
> Je ne suis pas encore arrivé à faire tourner ton code
> lorsque je fait le : Call outApp_NewMailEx
> quel est le paramettre à mettre passer entre parenthèsese Call
> outApp_NewMailEx ( ????)
>
> merci encore
> @+
> Alain
>
> "Clive Lumb" a écrit dans le
message
> de news:
> > Xantia,
> >
> > Oui tu as très bien compris, par contre l'exemple que je t'ai donné
> fait
> > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple de
> > faire. Si tu comptes le faire tourner que sur ton poste il n'y a rien
> > faire au niveau de la sécurité macro. Si c'est à distribuer sur
plusieurs
> je
> > crois qu'il faut le "signer".
> > Pour les opérations Access - dans un appli semblable j'ai créé un
ActiveX
> > avec VB6 que j'ai déclaré comme référence dans Outlook.
> >
> >
> >
> > "Xantia" a écrit dans le
> de
> > news:
> > > Merci Climb
> > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
questions
> > ...
> > >
> > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
je
> > > reçois un Email)
> > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon code
VB)
> > >
> > > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> > >
> > > 2) Merci de me confirmer que mon interprétation est la bonne
> > >
> > > J'ai compris que :
> > >
> > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je dois
> donc
> > > simplement appeler
> > > dans les evenements NewMail et ItemSend de l'objet Application.
> > > il me suffit de faire donc un Call outApp_NewMailEx.
> > >
> > > Puis de faire à l'interieur de chaque subroutine mes opérations de
copy
> > vers
> > > ma base Access
> > > en prenant les valeurs dans : mai.Subject
> > > mai.From
> > > mai.To ...
> > >
> > > Encore merci pour ton aide précieuse
> > > @+
> > > Alain
> > >
> > >
> > > "Clive Lumb" a écrit dans le
> > message
> > > de news:
> > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > -----------------------
> > > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> > illustre
> > > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
Pour
> > > > exécuter l'exemple, vous devez exécuter la routine
Initialize_Handler.
> > Cet
> > > > événement se déclenche lors de la réception d'un ou plusieurs
messages
> > > dans
> > > > la Boîte de réception.
> > > >
> > > >
> > > > Public WithEvents outApp As Outlook.Application
> > > >
> > > > Sub Intialize_Handler()
> > > > Set outApp = Application
> > > > End Sub
> > > >
> > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > > Dim mai As Object
> > > > Dim intInitial As Integer
> > > > Dim intFinal As Integer
> > > > Dim strEntryId As String
> > > > Dim intLength As Integer
> > > >
> > > > intInitial = 1
> > > > intLength = Len(EntryIDCollection)
> > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > Do While intFinal <> 0
> > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > (intFinal -
> > > > intInitial))
> > > > MsgBox "EntryId: " & strEntryId
> > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > MsgBox mai.Subject
> > > > intInitial = intFinal + 1
> > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > Loop
> > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> (intLength -
> > > > intInitial) + 1)
> > > > MsgBox strEntryId
> > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > MsgBox mai.Subject
> > > >
> > > > End Sub
> > > > ------------------------------------L'exemple Microsoft Visual
> > > Basic/Visual
> > > > Basic pour Applications (VBA) suivant montre comment annuler
> l'événement
> > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de code
> doit
> > > être
> > > > placé dans un module de classe et la routine Initialize_handler
> > être
> > > > appelée avant que la procédure événementielle puisse être appelée
par
> > > > Microsoft Outlook.
> > > >
> > > > Public WithEvents myOlApp As Outlook.Application
> > > >
> > > > Public Sub Initialize_handler()
> > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > End Sub
> > > >
> > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
Boolean)
> > > > Dim prompt As String
> > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > Cancel = True
> > > > End If
> > > > End Sub
> > > >
> > > >
> > > > "Xantia" a écrit dans le
> message
> > > de
> > > > news:
> > > > > Bonjour Climb
> > > > >
> > > > > Merci pour l'info
> > > > > J'ai commencé à regarder ça mais ça suscite des questions
nouvelles
> > > > >
> > > > > En fait je cherche à copier "automatiquemet" dans une table
> les
> > > > mails
> > > > > dont l'adresse
> > > > > d'expediteur (ou de destinataire) existent déja dans une autre
> mes
> > > > table.
> > > > >
> > > > > est ce que je peux récupérer directement ces infos d'Outlook (un
> > espece
> > > de
> > > > > Me. )
> > > > >
> > > > > ou bien dois je déclarer des variables comme ci dessous pour
acceder
> à
> > > > tous
> > > > > les champs
> > > > > du mail ?
> > > > > Dim OL_App As New Outlook.Application
> > > > > Dim OL_Space As Outlook.NameSpace
> > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > Set OL_Folder = OL_Folderx
> > > > >
> > > > > dans ce cas comment faire pour adresser uniquement les nouveaux
> > > (reçu
> > > > > puis envoyés ?)
> > > > >
> > > > > merci pour ton aide
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > > >
> > > > > "Clive Lumb" a écrit
le
> > > > message
> > > > > de news:
> > > > > > Regarder du coté du vba de Outlook.
> > > > > > Les evenements NewMail et ItemSend de l'objet Application
> devraient
> > > > faire
> > > > > > ton affaire.
> > > > > >
> > > > > > Clive
> > > > > >
> > > > > > "Xantia" a écrit dans
> > > message
> > > > > de
> > > > > > news:
> > > > > > > Bonjour
> > > > > > >
> > > > > > > Je fait communiquer ma base Access avec la messagerie
d'Outlook.
> > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
réception
> > > d'un
> > > > > > nouvel
> > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> éffectivement
> > > > > envoyé
> > > > > > un
> > > > > > > j'enclenche une action envers ma base Access.
> > > > > > >
> > > > > > > Que est le code VB qui me permet de détecter l'envoie ou la
> > > reception
> > > > > de
> > > > > > > mes messages ?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > merci pour votre aide
> > > > > > >
> > > > > > > @+
> > > > > > > Alain
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Bonsoir Clive
Bon je vais etre franc .. j'y arrive pas avec ton code
si tu arrives à le faire marcher j'aimerai bien avoir le
mode d'emploi ...
@+
Alain
"Clive Lumb" a écrit dans le message de
news:e$1M%
> Alain,
> NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele pas...
> Si tu regardes dans la liste déroulant des objets en haut de la fenetre
> code tu devrais trouver Out_App, ensuite
> dans les procédure tu trouveras NewMailEx
> Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir
> cela marche
>
>
> "Xantia" a écrit dans le message
de
> news:%
> > Bonjour Clive
> >
> > Je ne suis pas encore arrivé à faire tourner ton code
> > lorsque je fait le : Call outApp_NewMailEx
> > quel est le paramettre à mettre passer entre parenthèsese Call
> > outApp_NewMailEx ( ????)
> >
> > merci encore
> > @+
> > Alain
> >
> > "Clive Lumb" a écrit dans le
> message
> > de news:
> > > Xantia,
> > >
> > > Oui tu as très bien compris, par contre l'exemple que je t'ai donné
est
> > fait
> > > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple
le
> > > faire. Si tu comptes le faire tourner que sur ton poste il n'y a
à
> > > faire au niveau de la sécurité macro. Si c'est à distribuer sur
> plusieurs
> > je
> > > crois qu'il faut le "signer".
> > > Pour les opérations Access - dans un appli semblable j'ai créé un
> ActiveX
> > > avec VB6 que j'ai déclaré comme référence dans Outlook.
> > >
> > >
> > >
> > > "Xantia" a écrit dans le
message
> > de
> > > news:
> > > > Merci Climb
> > > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> questions
> > > ...
> > > >
> > > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
lorsque
> je
> > > > reçois un Email)
> > > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon
> VB)
> > > >
> > > > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> > > >
> > > > 2) Merci de me confirmer que mon interprétation est la bonne
> > > >
> > > > J'ai compris que :
> > > >
> > > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je
> > donc
> > > > simplement appeler
> > > > dans les evenements NewMail et ItemSend de l'objet Application.
> > > > il me suffit de faire donc un Call outApp_NewMailEx.
> > > >
> > > > Puis de faire à l'interieur de chaque subroutine mes opérations de
> copy
> > > vers
> > > > ma base Access
> > > > en prenant les valeurs dans : mai.Subject
> > > > mai.From
> > > > mai.To ...
> > > >
> > > > Encore merci pour ton aide précieuse
> > > > @+
> > > > Alain
> > > >
> > > >
> > > > "Clive Lumb" a écrit dans
> > > message
> > > > de news:
> > > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > > -----------------------
> > > > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> > > illustre
> > > > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
> Pour
> > > > > exécuter l'exemple, vous devez exécuter la routine
> Initialize_Handler.
> > > Cet
> > > > > événement se déclenche lors de la réception d'un ou plusieurs
> messages
> > > > dans
> > > > > la Boîte de réception.
> > > > >
> > > > >
> > > > > Public WithEvents outApp As Outlook.Application
> > > > >
> > > > > Sub Intialize_Handler()
> > > > > Set outApp = Application
> > > > > End Sub
> > > > >
> > > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > > > Dim mai As Object
> > > > > Dim intInitial As Integer
> > > > > Dim intFinal As Integer
> > > > > Dim strEntryId As String
> > > > > Dim intLength As Integer
> > > > >
> > > > > intInitial = 1
> > > > > intLength = Len(EntryIDCollection)
> > > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > Do While intFinal <> 0
> > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > > (intFinal -
> > > > > intInitial))
> > > > > MsgBox "EntryId: " & strEntryId
> > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > MsgBox mai.Subject
> > > > > intInitial = intFinal + 1
> > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > Loop
> > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > (intLength -
> > > > > intInitial) + 1)
> > > > > MsgBox strEntryId
> > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > MsgBox mai.Subject
> > > > >
> > > > > End Sub
> > > > > ------------------------------------L'exemple Microsoft Visual
> > > > Basic/Visual
> > > > > Basic pour Applications (VBA) suivant montre comment annuler
> > l'événement
> > > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de
> > doit
> > > > être
> > > > > placé dans un module de classe et la routine Initialize_handler
doit
> > > être
> > > > > appelée avant que la procédure événementielle puisse être
> par
> > > > > Microsoft Outlook.
> > > > >
> > > > > Public WithEvents myOlApp As Outlook.Application
> > > > >
> > > > > Public Sub Initialize_handler()
> > > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > > End Sub
> > > > >
> > > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> Boolean)
> > > > > Dim prompt As String
> > > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > > Cancel = True
> > > > > End If
> > > > > End Sub
> > > > >
> > > > >
> > > > > "Xantia" a écrit dans le
> > message
> > > > de
> > > > > news:
> > > > > > Bonjour Climb
> > > > > >
> > > > > > Merci pour l'info
> > > > > > J'ai commencé à regarder ça mais ça suscite des questions
> nouvelles
> > > > > >
> > > > > > En fait je cherche à copier "automatiquemet" dans une table
access
> > les
> > > > > mails
> > > > > > dont l'adresse
> > > > > > d'expediteur (ou de destinataire) existent déja dans une autre
de
> > mes
> > > > > table.
> > > > > >
> > > > > > est ce que je peux récupérer directement ces infos d'Outlook
> > > espece
> > > > de
> > > > > > Me. )
> > > > > >
> > > > > > ou bien dois je déclarer des variables comme ci dessous pour
> acceder
> > à
> > > > > tous
> > > > > > les champs
> > > > > > du mail ?
> > > > > > Dim OL_App As New Outlook.Application
> > > > > > Dim OL_Space As Outlook.NameSpace
> > > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > > Set OL_Folder = OL_Folderx
> > > > > >
> > > > > > dans ce cas comment faire pour adresser uniquement les
> > > > (reçu
> > > > > > puis envoyés ?)
> > > > > >
> > > > > > merci pour ton aide
> > > > > > @+
> > > > > > Alain
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Clive Lumb" a écrit
dans
> le
> > > > > message
> > > > > > de news:
> > > > > > > Regarder du coté du vba de Outlook.
> > > > > > > Les evenements NewMail et ItemSend de l'objet Application
> > devraient
> > > > > faire
> > > > > > > ton affaire.
> > > > > > >
> > > > > > > Clive
> > > > > > >
> > > > > > > "Xantia" a écrit
le
> > > > message
> > > > > > de
> > > > > > > news:
> > > > > > > > Bonjour
> > > > > > > >
> > > > > > > > Je fait communiquer ma base Access avec la messagerie
> d'Outlook.
> > > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> réception
> > > > d'un
> > > > > > > nouvel
> > > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> > éffectivement
> > > > > > envoyé
> > > > > > > un
> > > > > > > > j'enclenche une action envers ma base Access.
> > > > > > > >
> > > > > > > > Que est le code VB qui me permet de détecter l'envoie ou
> > > > reception
> > > > > > de
> > > > > > > > mes messages ?
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > merci pour votre aide
> > > > > > > >
> > > > > > > > @+
> > > > > > > > Alain
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Bonsoir Clive
Bon je vais etre franc .. j'y arrive pas avec ton code
si tu arrives à le faire marcher j'aimerai bien avoir le
mode d'emploi ...
@+
Alain
"Clive Lumb" <clumb@gratuit_in_english.fr> a écrit dans le message de
news:e$1M%23Jw9DHA.2856@TK2MSFTNGP10.phx.gbl...
> Alain,
> NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele pas...
> Si tu regardes dans la liste déroulant des objets en haut de la fenetre
> code tu devrais trouver Out_App, ensuite
> dans les procédure tu trouveras NewMailEx
> Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir
> cela marche
>
>
> "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
de
> news:%23SqxEsv9DHA.2064@TK2MSFTNGP11.phx.gbl...
> > Bonjour Clive
> >
> > Je ne suis pas encore arrivé à faire tourner ton code
> > lorsque je fait le : Call outApp_NewMailEx
> > quel est le paramettre à mettre passer entre parenthèsese Call
> > outApp_NewMailEx ( ????)
> >
> > merci encore
> > @+
> > Alain
> >
> > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
> message
> > de news:eH63eZm9DHA.440@TK2MSFTNGP10.phx.gbl...
> > > Xantia,
> > >
> > > Oui tu as très bien compris, par contre l'exemple que je t'ai donné
est
> > fait
> > > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple
le
> > > faire. Si tu comptes le faire tourner que sur ton poste il n'y a
à
> > > faire au niveau de la sécurité macro. Si c'est à distribuer sur
> plusieurs
> > je
> > > crois qu'il faut le "signer".
> > > Pour les opérations Access - dans un appli semblable j'ai créé un
> ActiveX
> > > avec VB6 que j'ai déclaré comme référence dans Outlook.
> > >
> > >
> > >
> > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
message
> > de
> > > news:ubU0Dgf9DHA.2432@TK2MSFTNGP10.phx.gbl...
> > > > Merci Climb
> > > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> questions
> > > ...
> > > >
> > > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
lorsque
> je
> > > > reçois un Email)
> > > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon
> VB)
> > > >
> > > > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> > > >
> > > > 2) Merci de me confirmer que mon interprétation est la bonne
> > > >
> > > > J'ai compris que :
> > > >
> > > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je
> > donc
> > > > simplement appeler
> > > > dans les evenements NewMail et ItemSend de l'objet Application.
> > > > il me suffit de faire donc un Call outApp_NewMailEx.
> > > >
> > > > Puis de faire à l'interieur de chaque subroutine mes opérations de
> copy
> > > vers
> > > > ma base Access
> > > > en prenant les valeurs dans : mai.Subject
> > > > mai.From
> > > > mai.To ...
> > > >
> > > > Encore merci pour ton aide précieuse
> > > > @+
> > > > Alain
> > > >
> > > >
> > > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans
> > > message
> > > > de news:ex3R7Ka9DHA.2524@TK2MSFTNGP11.phx.gbl...
> > > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > > -----------------------
> > > > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> > > illustre
> > > > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
> Pour
> > > > > exécuter l'exemple, vous devez exécuter la routine
> Initialize_Handler.
> > > Cet
> > > > > événement se déclenche lors de la réception d'un ou plusieurs
> messages
> > > > dans
> > > > > la Boîte de réception.
> > > > >
> > > > >
> > > > > Public WithEvents outApp As Outlook.Application
> > > > >
> > > > > Sub Intialize_Handler()
> > > > > Set outApp = Application
> > > > > End Sub
> > > > >
> > > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > > > Dim mai As Object
> > > > > Dim intInitial As Integer
> > > > > Dim intFinal As Integer
> > > > > Dim strEntryId As String
> > > > > Dim intLength As Integer
> > > > >
> > > > > intInitial = 1
> > > > > intLength = Len(EntryIDCollection)
> > > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > Do While intFinal <> 0
> > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > > (intFinal -
> > > > > intInitial))
> > > > > MsgBox "EntryId: " & strEntryId
> > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > MsgBox mai.Subject
> > > > > intInitial = intFinal + 1
> > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > Loop
> > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > (intLength -
> > > > > intInitial) + 1)
> > > > > MsgBox strEntryId
> > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > MsgBox mai.Subject
> > > > >
> > > > > End Sub
> > > > > ------------------------------------L'exemple Microsoft Visual
> > > > Basic/Visual
> > > > > Basic pour Applications (VBA) suivant montre comment annuler
> > l'événement
> > > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de
> > doit
> > > > être
> > > > > placé dans un module de classe et la routine Initialize_handler
doit
> > > être
> > > > > appelée avant que la procédure événementielle puisse être
> par
> > > > > Microsoft Outlook.
> > > > >
> > > > > Public WithEvents myOlApp As Outlook.Application
> > > > >
> > > > > Public Sub Initialize_handler()
> > > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > > End Sub
> > > > >
> > > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> Boolean)
> > > > > Dim prompt As String
> > > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > > Cancel = True
> > > > > End If
> > > > > End Sub
> > > > >
> > > > >
> > > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> > message
> > > > de
> > > > > news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> > > > > > Bonjour Climb
> > > > > >
> > > > > > Merci pour l'info
> > > > > > J'ai commencé à regarder ça mais ça suscite des questions
> nouvelles
> > > > > >
> > > > > > En fait je cherche à copier "automatiquemet" dans une table
access
> > les
> > > > > mails
> > > > > > dont l'adresse
> > > > > > d'expediteur (ou de destinataire) existent déja dans une autre
de
> > mes
> > > > > table.
> > > > > >
> > > > > > est ce que je peux récupérer directement ces infos d'Outlook
> > > espece
> > > > de
> > > > > > Me. )
> > > > > >
> > > > > > ou bien dois je déclarer des variables comme ci dessous pour
> acceder
> > à
> > > > > tous
> > > > > > les champs
> > > > > > du mail ?
> > > > > > Dim OL_App As New Outlook.Application
> > > > > > Dim OL_Space As Outlook.NameSpace
> > > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > > Set OL_Folder = OL_Folderx
> > > > > >
> > > > > > dans ce cas comment faire pour adresser uniquement les
> > > > (reçu
> > > > > > puis envoyés ?)
> > > > > >
> > > > > > merci pour ton aide
> > > > > > @+
> > > > > > Alain
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit
dans
> le
> > > > > message
> > > > > > de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > > > > > > Regarder du coté du vba de Outlook.
> > > > > > > Les evenements NewMail et ItemSend de l'objet Application
> > devraient
> > > > > faire
> > > > > > > ton affaire.
> > > > > > >
> > > > > > > Clive
> > > > > > >
> > > > > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit
le
> > > > message
> > > > > > de
> > > > > > > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > > > > > > Bonjour
> > > > > > > >
> > > > > > > > Je fait communiquer ma base Access avec la messagerie
> d'Outlook.
> > > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> réception
> > > > d'un
> > > > > > > nouvel
> > > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> > éffectivement
> > > > > > envoyé
> > > > > > > un
> > > > > > > > j'enclenche une action envers ma base Access.
> > > > > > > >
> > > > > > > > Que est le code VB qui me permet de détecter l'envoie ou
> > > > reception
> > > > > > de
> > > > > > > > mes messages ?
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > merci pour votre aide
> > > > > > > >
> > > > > > > > @+
> > > > > > > > Alain
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Bonsoir Clive
Bon je vais etre franc .. j'y arrive pas avec ton code
si tu arrives à le faire marcher j'aimerai bien avoir le
mode d'emploi ...
@+
Alain
"Clive Lumb" a écrit dans le message de
news:e$1M%
> Alain,
> NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele pas...
> Si tu regardes dans la liste déroulant des objets en haut de la fenetre
> code tu devrais trouver Out_App, ensuite
> dans les procédure tu trouveras NewMailEx
> Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir
> cela marche
>
>
> "Xantia" a écrit dans le message
de
> news:%
> > Bonjour Clive
> >
> > Je ne suis pas encore arrivé à faire tourner ton code
> > lorsque je fait le : Call outApp_NewMailEx
> > quel est le paramettre à mettre passer entre parenthèsese Call
> > outApp_NewMailEx ( ????)
> >
> > merci encore
> > @+
> > Alain
> >
> > "Clive Lumb" a écrit dans le
> message
> > de news:
> > > Xantia,
> > >
> > > Oui tu as très bien compris, par contre l'exemple que je t'ai donné
est
> > fait
> > > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple
le
> > > faire. Si tu comptes le faire tourner que sur ton poste il n'y a
à
> > > faire au niveau de la sécurité macro. Si c'est à distribuer sur
> plusieurs
> > je
> > > crois qu'il faut le "signer".
> > > Pour les opérations Access - dans un appli semblable j'ai créé un
> ActiveX
> > > avec VB6 que j'ai déclaré comme référence dans Outlook.
> > >
> > >
> > >
> > > "Xantia" a écrit dans le
message
> > de
> > > news:
> > > > Merci Climb
> > > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> questions
> > > ...
> > > >
> > > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
lorsque
> je
> > > > reçois un Email)
> > > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon
> VB)
> > > >
> > > > Que dois je faire pour que ce code soit "autorisé" et s'exécute ?
> > > >
> > > > 2) Merci de me confirmer que mon interprétation est la bonne
> > > >
> > > > J'ai compris que :
> > > >
> > > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je
> > donc
> > > > simplement appeler
> > > > dans les evenements NewMail et ItemSend de l'objet Application.
> > > > il me suffit de faire donc un Call outApp_NewMailEx.
> > > >
> > > > Puis de faire à l'interieur de chaque subroutine mes opérations de
> copy
> > > vers
> > > > ma base Access
> > > > en prenant les valeurs dans : mai.Subject
> > > > mai.From
> > > > mai.To ...
> > > >
> > > > Encore merci pour ton aide précieuse
> > > > @+
> > > > Alain
> > > >
> > > >
> > > > "Clive Lumb" a écrit dans
> > > message
> > > > de news:
> > > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > > -----------------------
> > > > > L'exemple Microsoft Visual Basic pour Applications (VBA) suivant
> > > illustre
> > > > > comment l'événement NewMailEx renvoie l'identificateur d'entrée.
> Pour
> > > > > exécuter l'exemple, vous devez exécuter la routine
> Initialize_Handler.
> > > Cet
> > > > > événement se déclenche lors de la réception d'un ou plusieurs
> messages
> > > > dans
> > > > > la Boîte de réception.
> > > > >
> > > > >
> > > > > Public WithEvents outApp As Outlook.Application
> > > > >
> > > > > Sub Intialize_Handler()
> > > > > Set outApp = Application
> > > > > End Sub
> > > > >
> > > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
> > > > > Dim mai As Object
> > > > > Dim intInitial As Integer
> > > > > Dim intFinal As Integer
> > > > > Dim strEntryId As String
> > > > > Dim intLength As Integer
> > > > >
> > > > > intInitial = 1
> > > > > intLength = Len(EntryIDCollection)
> > > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > Do While intFinal <> 0
> > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > > (intFinal -
> > > > > intInitial))
> > > > > MsgBox "EntryId: " & strEntryId
> > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > MsgBox mai.Subject
> > > > > intInitial = intFinal + 1
> > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > Loop
> > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > (intLength -
> > > > > intInitial) + 1)
> > > > > MsgBox strEntryId
> > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > MsgBox mai.Subject
> > > > >
> > > > > End Sub
> > > > > ------------------------------------L'exemple Microsoft Visual
> > > > Basic/Visual
> > > > > Basic pour Applications (VBA) suivant montre comment annuler
> > l'événement
> > > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de
> > doit
> > > > être
> > > > > placé dans un module de classe et la routine Initialize_handler
doit
> > > être
> > > > > appelée avant que la procédure événementielle puisse être
> par
> > > > > Microsoft Outlook.
> > > > >
> > > > > Public WithEvents myOlApp As Outlook.Application
> > > > >
> > > > > Public Sub Initialize_handler()
> > > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > > End Sub
> > > > >
> > > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> Boolean)
> > > > > Dim prompt As String
> > > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > > Cancel = True
> > > > > End If
> > > > > End Sub
> > > > >
> > > > >
> > > > > "Xantia" a écrit dans le
> > message
> > > > de
> > > > > news:
> > > > > > Bonjour Climb
> > > > > >
> > > > > > Merci pour l'info
> > > > > > J'ai commencé à regarder ça mais ça suscite des questions
> nouvelles
> > > > > >
> > > > > > En fait je cherche à copier "automatiquemet" dans une table
access
> > les
> > > > > mails
> > > > > > dont l'adresse
> > > > > > d'expediteur (ou de destinataire) existent déja dans une autre
de
> > mes
> > > > > table.
> > > > > >
> > > > > > est ce que je peux récupérer directement ces infos d'Outlook
> > > espece
> > > > de
> > > > > > Me. )
> > > > > >
> > > > > > ou bien dois je déclarer des variables comme ci dessous pour
> acceder
> > à
> > > > > tous
> > > > > > les champs
> > > > > > du mail ?
> > > > > > Dim OL_App As New Outlook.Application
> > > > > > Dim OL_Space As Outlook.NameSpace
> > > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > > Set OL_Folderx = OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > > Set OL_Folder = OL_Folderx
> > > > > >
> > > > > > dans ce cas comment faire pour adresser uniquement les
> > > > (reçu
> > > > > > puis envoyés ?)
> > > > > >
> > > > > > merci pour ton aide
> > > > > > @+
> > > > > > Alain
> > > > > >
> > > > > >
> > > > > >
> > > > > > "Clive Lumb" a écrit
dans
> le
> > > > > message
> > > > > > de news:
> > > > > > > Regarder du coté du vba de Outlook.
> > > > > > > Les evenements NewMail et ItemSend de l'objet Application
> > devraient
> > > > > faire
> > > > > > > ton affaire.
> > > > > > >
> > > > > > > Clive
> > > > > > >
> > > > > > > "Xantia" a écrit
le
> > > > message
> > > > > > de
> > > > > > > news:
> > > > > > > > Bonjour
> > > > > > > >
> > > > > > > > Je fait communiquer ma base Access avec la messagerie
> d'Outlook.
> > > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> réception
> > > > d'un
> > > > > > > nouvel
> > > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> > éffectivement
> > > > > > envoyé
> > > > > > > un
> > > > > > > > j'enclenche une action envers ma base Access.
> > > > > > > >
> > > > > > > > Que est le code VB qui me permet de détecter l'envoie ou
> > > > reception
> > > > > > de
> > > > > > > > mes messages ?
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > merci pour votre aide
> > > > > > > >
> > > > > > > > @+
> > > > > > > > Alain
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Alain,
Voici le code testé.
NOTE: pour accéder à la liste des destinataires, expéditeurs etc si > > Outlook2000 SP3, alors on va vous démander permission.
Pour voir toutes les propriétés des messages, utiliser l'explorateur
d'objets de VB (F2) et choisir la bibliothèque Outlook, puis regarder la
classe "MailItem".
Bon courage
Clive
********************
'Créer un nouveau projet VB6
'Ajouter une référence à "Microsoft Outlook nn Object Library" au projet
'Créer un form avec 3 boutons de commande Command1, Command2 et Command3
'Coller ce code dans le form
'Lancer, appuyer sur le bouton "Surveillance", lancer Outlook et attendre
récevoir
'un mail ou essayer d'en envoyer
Public WithEvents outApp As Outlook.Application
Sub Intialize_Handler()
Set outApp = Application
End Sub
Private Sub Command2_Click()
'Arrête la surveillance Outlook
Set out_app = Nothing
Me.Command1.Enabled = True
Me.Command2.Enabled = False
End Sub
Private Sub Command3_Click()
'Arrête la surveillance Outlook et ferme le programme
Set out_app = Nothing
Unload Me
End Sub
Private Sub Form_Load()
With Me
.Width = 2500
.Height = 1500
.Command2.Enabled = False
.Command1.Caption = "Surveillance"
.Command2.Caption = "Pas de surveillance"
.Command3.Caption = "Fermer"
.Command1.Height = 350
.Command2.Height = 350
.Command3.Height = 350
.Command1.Top = 0
.Command2.Top = .Command1.Top + .Command1.Height * 1.1
.Command3.Top = .Command2.Top + .Command2.Height * 1.1
.Command1.Left = 0
.Command2.Left = 0
.Command3.Left = 0
.Command1.Width = 1800
.Command2.Width = 1800
.Command3.Width = 1800
End With
End Sub
Private Sub outApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim Dest As String
Dest = Item.To
Dest = "Vous envoyez un message à " & Dest
MsgBox Dest
End Sub
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
MsgBox "Collection of EntryIds: " & EntryIDCollection
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial,
intInitial))
DoEvents
MsgBox "EntryId: " & strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
intInitial) + 1)
DoEvents
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
End Sub
Private Sub Command1_Click()
'Démarre la surveillance Outlook
Call Intialize_Handler
Me.Command1.Enabled = False
Me.Command2.Enabled = True
End Sub
********************
"Xantia" a écrit dans le message
news:%23d1erH%
> Bonsoir Clive
>
> Bon je vais etre franc .. j'y arrive pas avec ton code
> si tu arrives à le faire marcher j'aimerai bien avoir le
> mode d'emploi ...
>
> @+
>
> Alain
>
> "Clive Lumb" a écrit dans le message de
> news:e$1M%
> > Alain,
> > NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele
> > Si tu regardes dans la liste déroulant des objets en haut de la
de
> > code tu devrais trouver Out_App, ensuite
> > dans les procédure tu trouveras NewMailEx
> > Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir
si
> > cela marche
> >
> >
> > "Xantia" a écrit dans le
> de
> > news:%
> > > Bonjour Clive
> > >
> > > Je ne suis pas encore arrivé à faire tourner ton code
> > > lorsque je fait le : Call outApp_NewMailEx
> > > quel est le paramettre à mettre passer entre parenthèsese Call
> > > outApp_NewMailEx ( ????)
> > >
> > > merci encore
> > > @+
> > > Alain
> > >
> > > "Clive Lumb" a écrit dans le
> > message
> > > de news:
> > > > Xantia,
> > > >
> > > > Oui tu as très bien compris, par contre l'exemple que je t'ai
> est
> > > fait
> > > > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple
de
> le
> > > > faire. Si tu comptes le faire tourner que sur ton poste il n'y a
rien
> à
> > > > faire au niveau de la sécurité macro. Si c'est à distribuer sur
> > plusieurs
> > > je
> > > > crois qu'il faut le "signer".
> > > > Pour les opérations Access - dans un appli semblable j'ai créé un
> > ActiveX
> > > > avec VB6 que j'ai déclaré comme référence dans Outlook.
> > > >
> > > >
> > > >
> > > > "Xantia" a écrit dans le
> message
> > > de
> > > > news:
> > > > > Merci Climb
> > > > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> > questions
> > > > ...
> > > > >
> > > > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
> lorsque
> > je
> > > > > reçois un Email)
> > > > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon
code
> > VB)
> > > > >
> > > > > Que dois je faire pour que ce code soit "autorisé" et s'exécute
> > > > >
> > > > > 2) Merci de me confirmer que mon interprétation est la bonne
> > > > >
> > > > > J'ai compris que :
> > > > >
> > > > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je
dois
> > > donc
> > > > > simplement appeler
> > > > > dans les evenements NewMail et ItemSend de l'objet
> > > > > il me suffit de faire donc un Call outApp_NewMailEx.
> > > > >
> > > > > Puis de faire à l'interieur de chaque subroutine mes opérations
> > copy
> > > > vers
> > > > > ma base Access
> > > > > en prenant les valeurs dans : mai.Subject
> > > > > mai.From
> > > > > mai.To ...
> > > > >
> > > > > Encore merci pour ton aide précieuse
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > > > "Clive Lumb" a écrit
le
> > > > message
> > > > > de news:
> > > > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > > > -----------------------
> > > > > > L'exemple Microsoft Visual Basic pour Applications (VBA)
> > > > illustre
> > > > > > comment l'événement NewMailEx renvoie l'identificateur
> > Pour
> > > > > > exécuter l'exemple, vous devez exécuter la routine
> > Initialize_Handler.
> > > > Cet
> > > > > > événement se déclenche lors de la réception d'un ou plusieurs
> > messages
> > > > > dans
> > > > > > la Boîte de réception.
> > > > > >
> > > > > >
> > > > > > Public WithEvents outApp As Outlook.Application
> > > > > >
> > > > > > Sub Intialize_Handler()
> > > > > > Set outApp = Application
> > > > > > End Sub
> > > > > >
> > > > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As
> > > > > > Dim mai As Object
> > > > > > Dim intInitial As Integer
> > > > > > Dim intFinal As Integer
> > > > > > Dim strEntryId As String
> > > > > > Dim intLength As Integer
> > > > > >
> > > > > > intInitial = 1
> > > > > > intLength = Len(EntryIDCollection)
> > > > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > > Do While intFinal <> 0
> > > > > > strEntryId = Strings.Mid(EntryIDCollection,
> > > > > (intFinal -
> > > > > > intInitial))
> > > > > > MsgBox "EntryId: " & strEntryId
> > > > > > Set mai Application.Session.GetItemFromID(strEntryId)
> > > > > > MsgBox mai.Subject
> > > > > > intInitial = intFinal + 1
> > > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > > Loop
> > > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > (intLength -
> > > > > > intInitial) + 1)
> > > > > > MsgBox strEntryId
> > > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > > MsgBox mai.Subject
> > > > > >
> > > > > > End Sub
> > > > > > ------------------------------------L'exemple Microsoft Visual
> > > > > Basic/Visual
> > > > > > Basic pour Applications (VBA) suivant montre comment annuler
> > > l'événement
> > > > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de
code
> > > doit
> > > > > être
> > > > > > placé dans un module de classe et la routine
> doit
> > > > être
> > > > > > appelée avant que la procédure événementielle puisse être
appelée
> > par
> > > > > > Microsoft Outlook.
> > > > > >
> > > > > > Public WithEvents myOlApp As Outlook.Application
> > > > > >
> > > > > > Public Sub Initialize_handler()
> > > > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > > > End Sub
> > > > > >
> > > > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> > Boolean)
> > > > > > Dim prompt As String
> > > > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > > > Cancel = True
> > > > > > End If
> > > > > > End Sub
> > > > > >
> > > > > >
> > > > > > "Xantia" a écrit dans
> > > message
> > > > > de
> > > > > > news:
> > > > > > > Bonjour Climb
> > > > > > >
> > > > > > > Merci pour l'info
> > > > > > > J'ai commencé à regarder ça mais ça suscite des questions
> > nouvelles
> > > > > > >
> > > > > > > En fait je cherche à copier "automatiquemet" dans une table
> access
> > > les
> > > > > > mails
> > > > > > > dont l'adresse
> > > > > > > d'expediteur (ou de destinataire) existent déja dans une
> de
> > > mes
> > > > > > table.
> > > > > > >
> > > > > > > est ce que je peux récupérer directement ces infos d'Outlook
(un
> > > > espece
> > > > > de
> > > > > > > Me. )
> > > > > > >
> > > > > > > ou bien dois je déclarer des variables comme ci dessous pour
> > acceder
> > > à
> > > > > > tous
> > > > > > > les champs
> > > > > > > du mail ?
> > > > > > > Dim OL_App As New Outlook.Application
> > > > > > > Dim OL_Space As Outlook.NameSpace
> > > > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > > > Set OL_Folderx OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > > > Set OL_Folder = OL_Folderx
> > > > > > >
> > > > > > > dans ce cas comment faire pour adresser uniquement les
nouveaux
> > > > > (reçu
> > > > > > > puis envoyés ?)
> > > > > > >
> > > > > > > merci pour ton aide
> > > > > > > @+
> > > > > > > Alain
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > "Clive Lumb" a écrit
> dans
> > le
> > > > > > message
> > > > > > > de news:
> > > > > > > > Regarder du coté du vba de Outlook.
> > > > > > > > Les evenements NewMail et ItemSend de l'objet Application
> > > devraient
> > > > > > faire
> > > > > > > > ton affaire.
> > > > > > > >
> > > > > > > > Clive
> > > > > > > >
> > > > > > > > "Xantia" a écrit
dans
> le
> > > > > message
> > > > > > > de
> > > > > > > > news:
> > > > > > > > > Bonjour
> > > > > > > > >
> > > > > > > > > Je fait communiquer ma base Access avec la messagerie
> > d'Outlook.
> > > > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> > réception
> > > > > d'un
> > > > > > > > nouvel
> > > > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> > > éffectivement
> > > > > > > envoyé
> > > > > > > > un
> > > > > > > > > j'enclenche une action envers ma base Access.
> > > > > > > > >
> > > > > > > > > Que est le code VB qui me permet de détecter l'envoie
la
> > > > > reception
> > > > > > > de
> > > > > > > > > mes messages ?
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > merci pour votre aide
> > > > > > > > >
> > > > > > > > > @+
> > > > > > > > > Alain
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Alain,
Voici le code testé.
NOTE: pour accéder à la liste des destinataires, expéditeurs etc si > > Outlook2000 SP3, alors on va vous démander permission.
Pour voir toutes les propriétés des messages, utiliser l'explorateur
d'objets de VB (F2) et choisir la bibliothèque Outlook, puis regarder la
classe "MailItem".
Bon courage
Clive
********************
'Créer un nouveau projet VB6
'Ajouter une référence à "Microsoft Outlook nn Object Library" au projet
'Créer un form avec 3 boutons de commande Command1, Command2 et Command3
'Coller ce code dans le form
'Lancer, appuyer sur le bouton "Surveillance", lancer Outlook et attendre
récevoir
'un mail ou essayer d'en envoyer
Public WithEvents outApp As Outlook.Application
Sub Intialize_Handler()
Set outApp = Application
End Sub
Private Sub Command2_Click()
'Arrête la surveillance Outlook
Set out_app = Nothing
Me.Command1.Enabled = True
Me.Command2.Enabled = False
End Sub
Private Sub Command3_Click()
'Arrête la surveillance Outlook et ferme le programme
Set out_app = Nothing
Unload Me
End Sub
Private Sub Form_Load()
With Me
.Width = 2500
.Height = 1500
.Command2.Enabled = False
.Command1.Caption = "Surveillance"
.Command2.Caption = "Pas de surveillance"
.Command3.Caption = "Fermer"
.Command1.Height = 350
.Command2.Height = 350
.Command3.Height = 350
.Command1.Top = 0
.Command2.Top = .Command1.Top + .Command1.Height * 1.1
.Command3.Top = .Command2.Top + .Command2.Height * 1.1
.Command1.Left = 0
.Command2.Left = 0
.Command3.Left = 0
.Command1.Width = 1800
.Command2.Width = 1800
.Command3.Width = 1800
End With
End Sub
Private Sub outApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim Dest As String
Dest = Item.To
Dest = "Vous envoyez un message à " & Dest
MsgBox Dest
End Sub
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
MsgBox "Collection of EntryIds: " & EntryIDCollection
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial,
intInitial))
DoEvents
MsgBox "EntryId: " & strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
intInitial) + 1)
DoEvents
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
End Sub
Private Sub Command1_Click()
'Démarre la surveillance Outlook
Call Intialize_Handler
Me.Command1.Enabled = False
Me.Command2.Enabled = True
End Sub
********************
"Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le message
news:%23d1erH%239DHA.1804@TK2MSFTNGP12.phx.gbl...
> Bonsoir Clive
>
> Bon je vais etre franc .. j'y arrive pas avec ton code
> si tu arrives à le faire marcher j'aimerai bien avoir le
> mode d'emploi ...
>
> @+
>
> Alain
>
> "Clive Lumb" <clumb@gratuit_in_english.fr> a écrit dans le message de
> news:e$1M%23Jw9DHA.2856@TK2MSFTNGP10.phx.gbl...
> > Alain,
> > NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele
> > Si tu regardes dans la liste déroulant des objets en haut de la
de
> > code tu devrais trouver Out_App, ensuite
> > dans les procédure tu trouveras NewMailEx
> > Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir
si
> > cela marche
> >
> >
> > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> de
> > news:%23SqxEsv9DHA.2064@TK2MSFTNGP11.phx.gbl...
> > > Bonjour Clive
> > >
> > > Je ne suis pas encore arrivé à faire tourner ton code
> > > lorsque je fait le : Call outApp_NewMailEx
> > > quel est le paramettre à mettre passer entre parenthèsese Call
> > > outApp_NewMailEx ( ????)
> > >
> > > merci encore
> > > @+
> > > Alain
> > >
> > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit dans le
> > message
> > > de news:eH63eZm9DHA.440@TK2MSFTNGP10.phx.gbl...
> > > > Xantia,
> > > >
> > > > Oui tu as très bien compris, par contre l'exemple que je t'ai
> est
> > > fait
> > > > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple
de
> le
> > > > faire. Si tu comptes le faire tourner que sur ton poste il n'y a
rien
> à
> > > > faire au niveau de la sécurité macro. Si c'est à distribuer sur
> > plusieurs
> > > je
> > > > crois qu'il faut le "signer".
> > > > Pour les opérations Access - dans un appli semblable j'ai créé un
> > ActiveX
> > > > avec VB6 que j'ai déclaré comme référence dans Outlook.
> > > >
> > > >
> > > >
> > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans le
> message
> > > de
> > > > news:ubU0Dgf9DHA.2432@TK2MSFTNGP10.phx.gbl...
> > > > > Merci Climb
> > > > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> > questions
> > > > ...
> > > > >
> > > > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
> lorsque
> > je
> > > > > reçois un Email)
> > > > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon
code
> > VB)
> > > > >
> > > > > Que dois je faire pour que ce code soit "autorisé" et s'exécute
> > > > >
> > > > > 2) Merci de me confirmer que mon interprétation est la bonne
> > > > >
> > > > > J'ai compris que :
> > > > >
> > > > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je
dois
> > > donc
> > > > > simplement appeler
> > > > > dans les evenements NewMail et ItemSend de l'objet
> > > > > il me suffit de faire donc un Call outApp_NewMailEx.
> > > > >
> > > > > Puis de faire à l'interieur de chaque subroutine mes opérations
> > copy
> > > > vers
> > > > > ma base Access
> > > > > en prenant les valeurs dans : mai.Subject
> > > > > mai.From
> > > > > mai.To ...
> > > > >
> > > > > Encore merci pour ton aide précieuse
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit
le
> > > > message
> > > > > de news:ex3R7Ka9DHA.2524@TK2MSFTNGP11.phx.gbl...
> > > > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > > > -----------------------
> > > > > > L'exemple Microsoft Visual Basic pour Applications (VBA)
> > > > illustre
> > > > > > comment l'événement NewMailEx renvoie l'identificateur
> > Pour
> > > > > > exécuter l'exemple, vous devez exécuter la routine
> > Initialize_Handler.
> > > > Cet
> > > > > > événement se déclenche lors de la réception d'un ou plusieurs
> > messages
> > > > > dans
> > > > > > la Boîte de réception.
> > > > > >
> > > > > >
> > > > > > Public WithEvents outApp As Outlook.Application
> > > > > >
> > > > > > Sub Intialize_Handler()
> > > > > > Set outApp = Application
> > > > > > End Sub
> > > > > >
> > > > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As
> > > > > > Dim mai As Object
> > > > > > Dim intInitial As Integer
> > > > > > Dim intFinal As Integer
> > > > > > Dim strEntryId As String
> > > > > > Dim intLength As Integer
> > > > > >
> > > > > > intInitial = 1
> > > > > > intLength = Len(EntryIDCollection)
> > > > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > > Do While intFinal <> 0
> > > > > > strEntryId = Strings.Mid(EntryIDCollection,
> > > > > (intFinal -
> > > > > > intInitial))
> > > > > > MsgBox "EntryId: " & strEntryId
> > > > > > Set mai Application.Session.GetItemFromID(strEntryId)
> > > > > > MsgBox mai.Subject
> > > > > > intInitial = intFinal + 1
> > > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > > Loop
> > > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > (intLength -
> > > > > > intInitial) + 1)
> > > > > > MsgBox strEntryId
> > > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > > MsgBox mai.Subject
> > > > > >
> > > > > > End Sub
> > > > > > ------------------------------------L'exemple Microsoft Visual
> > > > > Basic/Visual
> > > > > > Basic pour Applications (VBA) suivant montre comment annuler
> > > l'événement
> > > > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de
code
> > > doit
> > > > > être
> > > > > > placé dans un module de classe et la routine
> doit
> > > > être
> > > > > > appelée avant que la procédure événementielle puisse être
appelée
> > par
> > > > > > Microsoft Outlook.
> > > > > >
> > > > > > Public WithEvents myOlApp As Outlook.Application
> > > > > >
> > > > > > Public Sub Initialize_handler()
> > > > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > > > End Sub
> > > > > >
> > > > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> > Boolean)
> > > > > > Dim prompt As String
> > > > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > > > Cancel = True
> > > > > > End If
> > > > > > End Sub
> > > > > >
> > > > > >
> > > > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit dans
> > > message
> > > > > de
> > > > > > news:uwBM98V9DHA.2392@TK2MSFTNGP11.phx.gbl...
> > > > > > > Bonjour Climb
> > > > > > >
> > > > > > > Merci pour l'info
> > > > > > > J'ai commencé à regarder ça mais ça suscite des questions
> > nouvelles
> > > > > > >
> > > > > > > En fait je cherche à copier "automatiquemet" dans une table
> access
> > > les
> > > > > > mails
> > > > > > > dont l'adresse
> > > > > > > d'expediteur (ou de destinataire) existent déja dans une
> de
> > > mes
> > > > > > table.
> > > > > > >
> > > > > > > est ce que je peux récupérer directement ces infos d'Outlook
(un
> > > > espece
> > > > > de
> > > > > > > Me. )
> > > > > > >
> > > > > > > ou bien dois je déclarer des variables comme ci dessous pour
> > acceder
> > > à
> > > > > > tous
> > > > > > > les champs
> > > > > > > du mail ?
> > > > > > > Dim OL_App As New Outlook.Application
> > > > > > > Dim OL_Space As Outlook.NameSpace
> > > > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > > > Set OL_Folderx OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > > > Set OL_Folder = OL_Folderx
> > > > > > >
> > > > > > > dans ce cas comment faire pour adresser uniquement les
nouveaux
> > > > > (reçu
> > > > > > > puis envoyés ?)
> > > > > > >
> > > > > > > merci pour ton aide
> > > > > > > @+
> > > > > > > Alain
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > "Clive Lumb" <clumb@THE_SPAM_SHALL_NOT_PASS.free.fr> a écrit
> dans
> > le
> > > > > > message
> > > > > > > de news:uIY871L9DHA.488@TK2MSFTNGP12.phx.gbl...
> > > > > > > > Regarder du coté du vba de Outlook.
> > > > > > > > Les evenements NewMail et ItemSend de l'objet Application
> > > devraient
> > > > > > faire
> > > > > > > > ton affaire.
> > > > > > > >
> > > > > > > > Clive
> > > > > > > >
> > > > > > > > "Xantia" <alain.teyssedre-NoSpam@libertysurf.fr> a écrit
dans
> le
> > > > > message
> > > > > > > de
> > > > > > > > news:u2YCISK9DHA.1948@TK2MSFTNGP12.phx.gbl...
> > > > > > > > > Bonjour
> > > > > > > > >
> > > > > > > > > Je fait communiquer ma base Access avec la messagerie
> > d'Outlook.
> > > > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> > réception
> > > > > d'un
> > > > > > > > nouvel
> > > > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> > > éffectivement
> > > > > > > envoyé
> > > > > > > > un
> > > > > > > > > j'enclenche une action envers ma base Access.
> > > > > > > > >
> > > > > > > > > Que est le code VB qui me permet de détecter l'envoie
la
> > > > > reception
> > > > > > > de
> > > > > > > > > mes messages ?
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > merci pour votre aide
> > > > > > > > >
> > > > > > > > > @+
> > > > > > > > > Alain
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
Alain,
Voici le code testé.
NOTE: pour accéder à la liste des destinataires, expéditeurs etc si > > Outlook2000 SP3, alors on va vous démander permission.
Pour voir toutes les propriétés des messages, utiliser l'explorateur
d'objets de VB (F2) et choisir la bibliothèque Outlook, puis regarder la
classe "MailItem".
Bon courage
Clive
********************
'Créer un nouveau projet VB6
'Ajouter une référence à "Microsoft Outlook nn Object Library" au projet
'Créer un form avec 3 boutons de commande Command1, Command2 et Command3
'Coller ce code dans le form
'Lancer, appuyer sur le bouton "Surveillance", lancer Outlook et attendre
récevoir
'un mail ou essayer d'en envoyer
Public WithEvents outApp As Outlook.Application
Sub Intialize_Handler()
Set outApp = Application
End Sub
Private Sub Command2_Click()
'Arrête la surveillance Outlook
Set out_app = Nothing
Me.Command1.Enabled = True
Me.Command2.Enabled = False
End Sub
Private Sub Command3_Click()
'Arrête la surveillance Outlook et ferme le programme
Set out_app = Nothing
Unload Me
End Sub
Private Sub Form_Load()
With Me
.Width = 2500
.Height = 1500
.Command2.Enabled = False
.Command1.Caption = "Surveillance"
.Command2.Caption = "Pas de surveillance"
.Command3.Caption = "Fermer"
.Command1.Height = 350
.Command2.Height = 350
.Command3.Height = 350
.Command1.Top = 0
.Command2.Top = .Command1.Top + .Command1.Height * 1.1
.Command3.Top = .Command2.Top + .Command2.Height * 1.1
.Command1.Left = 0
.Command2.Left = 0
.Command3.Left = 0
.Command1.Width = 1800
.Command2.Width = 1800
.Command3.Width = 1800
End With
End Sub
Private Sub outApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim Dest As String
Dest = Item.To
Dest = "Vous envoyez un message à " & Dest
MsgBox Dest
End Sub
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mai As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
intInitial = 1
intLength = Len(EntryIDCollection)
MsgBox "Collection of EntryIds: " & EntryIDCollection
intFinal = InStr(intInitial, EntryIDCollection, ",")
Do While intFinal <> 0
strEntryId = Strings.Mid(EntryIDCollection, intInitial,
intInitial))
DoEvents
MsgBox "EntryId: " & strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
intInitial = intFinal + 1
intFinal = InStr(intInitial, EntryIDCollection, ",")
Loop
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength -
intInitial) + 1)
DoEvents
MsgBox strEntryId
Set mai = Application.Session.GetItemFromID(strEntryId)
MsgBox mai.Subject
End Sub
Private Sub Command1_Click()
'Démarre la surveillance Outlook
Call Intialize_Handler
Me.Command1.Enabled = False
Me.Command2.Enabled = True
End Sub
********************
"Xantia" a écrit dans le message
news:%23d1erH%
> Bonsoir Clive
>
> Bon je vais etre franc .. j'y arrive pas avec ton code
> si tu arrives à le faire marcher j'aimerai bien avoir le
> mode d'emploi ...
>
> @+
>
> Alain
>
> "Clive Lumb" a écrit dans le message de
> news:e$1M%
> > Alain,
> > NewMailEx est un évenement de l'objet Ou_App, donc on ne l'appele
> > Si tu regardes dans la liste déroulant des objets en haut de la
de
> > code tu devrais trouver Out_App, ensuite
> > dans les procédure tu trouveras NewMailEx
> > Mettre "msgbox "Vous avez recu un mail" dans cette procédure pour voir
si
> > cela marche
> >
> >
> > "Xantia" a écrit dans le
> de
> > news:%
> > > Bonjour Clive
> > >
> > > Je ne suis pas encore arrivé à faire tourner ton code
> > > lorsque je fait le : Call outApp_NewMailEx
> > > quel est le paramettre à mettre passer entre parenthèsese Call
> > > outApp_NewMailEx ( ????)
> > >
> > > merci encore
> > > @+
> > > Alain
> > >
> > > "Clive Lumb" a écrit dans le
> > message
> > > de news:
> > > > Xantia,
> > > >
> > > > Oui tu as très bien compris, par contre l'exemple que je t'ai
> est
> > > fait
> > > > pour tourner sous VBA dans Outlook. C'est l'endroit le plus simple
de
> le
> > > > faire. Si tu comptes le faire tourner que sur ton poste il n'y a
rien
> à
> > > > faire au niveau de la sécurité macro. Si c'est à distribuer sur
> > plusieurs
> > > je
> > > > crois qu'il faut le "signer".
> > > > Pour les opérations Access - dans un appli semblable j'ai créé un
> > ActiveX
> > > > avec VB6 que j'ai déclaré comme référence dans Outlook.
> > > >
> > > >
> > > >
> > > > "Xantia" a écrit dans le
> message
> > > de
> > > > news:
> > > > > Merci Climb
> > > > > ça m'a l'air génial ce bout de code mais j'ai encore quelques
> > questions
> > > > ...
> > > > >
> > > > > 1) Tout d'abord je n'arrive pas à l'exectuer (manuellement ou
> lorsque
> > je
> > > > > reçois un Email)
> > > > > J'ai cru comprendre qu'Outlook désactivait les macros (donc mon
code
> > VB)
> > > > >
> > > > > Que dois je faire pour que ce code soit "autorisé" et s'exécute
> > > > >
> > > > > 2) Merci de me confirmer que mon interprétation est la bonne
> > > > >
> > > > > J'ai compris que :
> > > > >
> > > > > outApp_NewMailEx et myOlApp_ItemSend sont 2 sub routines que je
dois
> > > donc
> > > > > simplement appeler
> > > > > dans les evenements NewMail et ItemSend de l'objet
> > > > > il me suffit de faire donc un Call outApp_NewMailEx.
> > > > >
> > > > > Puis de faire à l'interieur de chaque subroutine mes opérations
> > copy
> > > > vers
> > > > > ma base Access
> > > > > en prenant les valeurs dans : mai.Subject
> > > > > mai.From
> > > > > mai.To ...
> > > > >
> > > > > Encore merci pour ton aide précieuse
> > > > > @+
> > > > > Alain
> > > > >
> > > > >
> > > > > "Clive Lumb" a écrit
le
> > > > message
> > > > > de news:
> > > > > > Voici ce que l'on trouve dans l'aide d'Outlook
> > > > > > -----------------------
> > > > > > L'exemple Microsoft Visual Basic pour Applications (VBA)
> > > > illustre
> > > > > > comment l'événement NewMailEx renvoie l'identificateur
> > Pour
> > > > > > exécuter l'exemple, vous devez exécuter la routine
> > Initialize_Handler.
> > > > Cet
> > > > > > événement se déclenche lors de la réception d'un ou plusieurs
> > messages
> > > > > dans
> > > > > > la Boîte de réception.
> > > > > >
> > > > > >
> > > > > > Public WithEvents outApp As Outlook.Application
> > > > > >
> > > > > > Sub Intialize_Handler()
> > > > > > Set outApp = Application
> > > > > > End Sub
> > > > > >
> > > > > > Private Sub outApp_NewMailEx(ByVal EntryIDCollection As
> > > > > > Dim mai As Object
> > > > > > Dim intInitial As Integer
> > > > > > Dim intFinal As Integer
> > > > > > Dim strEntryId As String
> > > > > > Dim intLength As Integer
> > > > > >
> > > > > > intInitial = 1
> > > > > > intLength = Len(EntryIDCollection)
> > > > > > MsgBox "Collection of EntryIds: " & EntryIDCollection
> > > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > > Do While intFinal <> 0
> > > > > > strEntryId = Strings.Mid(EntryIDCollection,
> > > > > (intFinal -
> > > > > > intInitial))
> > > > > > MsgBox "EntryId: " & strEntryId
> > > > > > Set mai Application.Session.GetItemFromID(strEntryId)
> > > > > > MsgBox mai.Subject
> > > > > > intInitial = intFinal + 1
> > > > > > intFinal = InStr(intInitial, EntryIDCollection, ",")
> > > > > > Loop
> > > > > > strEntryId = Strings.Mid(EntryIDCollection, intInitial,
> > > (intLength -
> > > > > > intInitial) + 1)
> > > > > > MsgBox strEntryId
> > > > > > Set mai = Application.Session.GetItemFromID(strEntryId)
> > > > > > MsgBox mai.Subject
> > > > > >
> > > > > > End Sub
> > > > > > ------------------------------------L'exemple Microsoft Visual
> > > > > Basic/Visual
> > > > > > Basic pour Applications (VBA) suivant montre comment annuler
> > > l'événement
> > > > > > ItemSend en réponse à l'entrée de l'utilisateur. L'exemple de
code
> > > doit
> > > > > être
> > > > > > placé dans un module de classe et la routine
> doit
> > > > être
> > > > > > appelée avant que la procédure événementielle puisse être
appelée
> > par
> > > > > > Microsoft Outlook.
> > > > > >
> > > > > > Public WithEvents myOlApp As Outlook.Application
> > > > > >
> > > > > > Public Sub Initialize_handler()
> > > > > > Set myOlApp = CreateObject("Outlook.Application")
> > > > > > End Sub
> > > > > >
> > > > > > Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As
> > Boolean)
> > > > > > Dim prompt As String
> > > > > > prompt = "Are you sure you want to send " & Item.Subject & "?"
> > > > > > If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
> > > > > > Cancel = True
> > > > > > End If
> > > > > > End Sub
> > > > > >
> > > > > >
> > > > > > "Xantia" a écrit dans
> > > message
> > > > > de
> > > > > > news:
> > > > > > > Bonjour Climb
> > > > > > >
> > > > > > > Merci pour l'info
> > > > > > > J'ai commencé à regarder ça mais ça suscite des questions
> > nouvelles
> > > > > > >
> > > > > > > En fait je cherche à copier "automatiquemet" dans une table
> access
> > > les
> > > > > > mails
> > > > > > > dont l'adresse
> > > > > > > d'expediteur (ou de destinataire) existent déja dans une
> de
> > > mes
> > > > > > table.
> > > > > > >
> > > > > > > est ce que je peux récupérer directement ces infos d'Outlook
(un
> > > > espece
> > > > > de
> > > > > > > Me. )
> > > > > > >
> > > > > > > ou bien dois je déclarer des variables comme ci dessous pour
> > acceder
> > > à
> > > > > > tous
> > > > > > > les champs
> > > > > > > du mail ?
> > > > > > > Dim OL_App As New Outlook.Application
> > > > > > > Dim OL_Space As Outlook.NameSpace
> > > > > > > Dim OL_Folder As Outlook.MAPIFolder
> > > > > > > Dim OL_Folderx As Outlook.MAPIFolde
> > > > > > > Set OL_Space = OL_App.GetNamespace("MAPI")
> > > > > > > Set OL_Folderx OL_Space.GetDefaultFolder(olFolderInbox)
> > > > > > > Set OL_Folder = OL_Folderx
> > > > > > >
> > > > > > > dans ce cas comment faire pour adresser uniquement les
nouveaux
> > > > > (reçu
> > > > > > > puis envoyés ?)
> > > > > > >
> > > > > > > merci pour ton aide
> > > > > > > @+
> > > > > > > Alain
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > "Clive Lumb" a écrit
> dans
> > le
> > > > > > message
> > > > > > > de news:
> > > > > > > > Regarder du coté du vba de Outlook.
> > > > > > > > Les evenements NewMail et ItemSend de l'objet Application
> > > devraient
> > > > > > faire
> > > > > > > > ton affaire.
> > > > > > > >
> > > > > > > > Clive
> > > > > > > >
> > > > > > > > "Xantia" a écrit
dans
> le
> > > > > message
> > > > > > > de
> > > > > > > > news:
> > > > > > > > > Bonjour
> > > > > > > > >
> > > > > > > > > Je fait communiquer ma base Access avec la messagerie
> > d'Outlook.
> > > > > > > > > J'aimerais en fait "automatiser" mon code pour que dés
> > réception
> > > > > d'un
> > > > > > > > nouvel
> > > > > > > > > Email dans ma boite de réception et/ou dès que j'ai
> > > éffectivement
> > > > > > > envoyé
> > > > > > > > un
> > > > > > > > > j'enclenche une action envers ma base Access.
> > > > > > > > >
> > > > > > > > > Que est le code VB qui me permet de détecter l'envoie
la
> > > > > reception
> > > > > > > de
> > > > > > > > > mes messages ?
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > merci pour votre aide
> > > > > > > > >
> > > > > > > > > @+
> > > > > > > > > Alain
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>