OVH Cloud OVH Cloud

[Office 2k3 et Outlook 2k3] Outlook et la programmation évenementiel

3 réponses
Avatar
tech-informatique
Bonjour,


Je programme de petites applis sous outlook 2k3, mais à l'heure actuelle
j'accède à mes macros via un bouton dans une bar de menu. J'aimerai
commencer à gérer les évenements dans outlook, seulement j'ai lu la doc VBA
dessus, j'y ai rien compris et notamment leur principe de module de classe,
est-ce le même principe qu'en java avec le constructeur et les méthodes
d'accès/paramètrage écouteur d'évenement ? Le problème avec l'aide c'est que
ca donne un bout de code mais on nous montre pas la totalité comme : comment
appelé ce que l'on a créé dans un module de classe, le système de
développement le plus efficace pour un module de classe et biensûr tout ceci
sous outlook. Quelqu'un aurait-il un exemple plus concret à fournir ? Ou un
liens avec un tutorial simple (si possible sous outlook, j'ai essayé et j'ai
plein d'erreur).

Merci d'avance,

Cordialement,

3 réponses

Avatar
Kevin
Salut,

Sous VBA on a qu'un bribe de langage orienté objet... Même si la philosophie
reste la même sur les grandes lignes prend bien conscience que c'est une
application grand public donc très simplifiée et limitée...

Pour créer une classe d'objet, tu as un module à part pour les définir
(Module de classe)...

Sinon après il n'y a pas vraiment de constructeur et destructeur comme tout
bon langage, mais les propriétés de l'objet peuvent y être définies ainsi
que ses méthodes.

Ca reste du style

Tu peux toujours te référer au site ci dessous pour plus d'explication avec
des exemples complets !!!

http://cafeine.developpez.com/classe/

@+ et bon courage
Kevin
"tech-informatique" a écrit dans le
message de news: #
Bonjour,


Je programme de petites applis sous outlook 2k3, mais à l'heure actuelle
j'accède à mes macros via un bouton dans une bar de menu. J'aimerai
commencer à gérer les évenements dans outlook, seulement j'ai lu la doc
VBA

dessus, j'y ai rien compris et notamment leur principe de module de
classe,

est-ce le même principe qu'en java avec le constructeur et les méthodes
d'accès/paramètrage écouteur d'évenement ? Le problème avec l'aide c'est
que

ca donne un bout de code mais on nous montre pas la totalité comme :
comment

appelé ce que l'on a créé dans un module de classe, le système de
développement le plus efficace pour un module de classe et biensûr tout
ceci

sous outlook. Quelqu'un aurait-il un exemple plus concret à fournir ? Ou
un

liens avec un tutorial simple (si possible sous outlook, j'ai essayé et
j'ai

plein d'erreur).

Merci d'avance,

Cordialement,




Avatar
Isabelle Prawitz
Bonjour !
Si tu veux gérer les évènements de tes dossiers par exemple (du style Un
message arrive dans mon dossier - autre que Boîte de réception bien sûr !),
il faut que tu crées une instance du dossier avec WithEvents de façon à
pouvoir générer et traiter ses évènements.

Petit ex. :
Je veux qu'une Pop-up apparaisse quand un message est déplacé(ou créé) dans
mon dossier Outlook Travail.

1. Dans mon code de session Outlook, je déclare un objet MapiFolder avec
évènements :
dim WithEvents monDossTravail as MapiFolder
2. Dans Application_Startup, j'initialise cet objet au dossier désiré (de
façon que ça fonctionne dès que Outlook est ouvert):
dim MonEsp as NameSpace
set MonEsp= GetNameSpace("MAPI")
set monDossTravail=MonEsp.Folders("Dossiers
Personnels").Folders("Travail")
3. Je sélectionne monDossTravail dans la liste des objets, ce qui permet
d'accéder à ItemAdd, ItemRemove, et ItemChange
4. Je génère ItemAdd, et je peux maintenant écrire le code à exécuter quand
un message arrive (ou est généré) dans mon dossier. Par ex :
MsgBox "Un message arrive dans le dossier Travail : " & Item.Subject & "
" & Item.SenderName

Pour utiliser les évènements de Dossiers FolderAdd, FolderChange et
FolderRemove, il faut créer un objet de type Folders avec WithEvents

En espérant avoir été à peu près claire !!! ;-)

A+
Isa

"tech-informatique" a écrit dans le
message de news:%
Bonjour,


Je programme de petites applis sous outlook 2k3, mais à l'heure actuelle
j'accède à mes macros via un bouton dans une bar de menu. J'aimerai
commencer à gérer les évenements dans outlook, seulement j'ai lu la doc
VBA

dessus, j'y ai rien compris et notamment leur principe de module de
classe,

est-ce le même principe qu'en java avec le constructeur et les méthodes
d'accès/paramètrage écouteur d'évenement ? Le problème avec l'aide c'est
que

ca donne un bout de code mais on nous montre pas la totalité comme :
comment

appelé ce que l'on a créé dans un module de classe, le système de
développement le plus efficace pour un module de classe et biensûr tout
ceci

sous outlook. Quelqu'un aurait-il un exemple plus concret à fournir ? Ou
un

liens avec un tutorial simple (si possible sous outlook, j'ai essayé et
j'ai

plein d'erreur).

Merci d'avance,

Cordialement,




Avatar
Isabelle Prawitz
Argh !!!
Erreurs dans mon message précédant : le type d'objet pour gérer ItemAdd et
autres c'est Items !!!
Voici ce qu'il faut lire :

Bonjour !
Si tu veux gérer les évènements de tes dossiers par exemple (du style Un
message arrive dans mon dossier - autre que Boîte de réception bien sûr !),
il faut que tu crées une instance "d'Items " du dossier avec WithEvents de
façon à
pouvoir générer et traiter ses évènements.

Petit ex. :
Je veux qu'une Pop-up apparaisse quand un message est déplacé(ou créé) dans
mon dossier Outlook Travail.

1. Dans mon code de session Outlook, je déclare un objet MapiFolder avec
évènements :
dim WithEvents monDossTravailItems as Items
2. Dans Application_Startup, j'initialise cet objet au dossier désiré (de
façon que ça fonctionne dès que Outlook est ouvert):
dim MonEsp as NameSpace
dim monDossTravail as MapiFolder
set MonEsp= GetNameSpace("MAPI")
set monDossTravail=MonEsp.Folders("Dossiers
Personnels").Folders("Travail")
set monDossTravailItems=monDossTravail.Items
3. Je sélectionne monDossTravailItems dans la liste des objets, ce qui
permet
d'accéder à ItemAdd, ItemRemove, et ItemChange
4. Je génère ItemAdd, et je peux maintenant écrire le code à exécuter quand
un message arrive (ou est généré) dans mon dossier. Par ex :
MsgBox "Un message arrive dans le dossier Travail : " & Item.Subject & "
" & Item.SenderName

Pour utiliser les évènements de Dossiers FolderAdd, FolderChange et
FolderRemove, il faut créer un objet de type Folders avec WithEvents

En espérant avoir été à peu près claire !!! ;-)

A+
Isa

PS : c'est ça d'écrire de mémoire, si on a une passoire... !!! ;-)



"Isabelle Prawitz" a écrit dans le message de
news:%
Bonjour !
Si tu veux gérer les évènements de tes dossiers par exemple (du style Un
message arrive dans mon dossier - autre que Boîte de réception bien sûr
!),

il faut que tu crées une instance du dossier avec WithEvents de façon à
pouvoir générer et traiter ses évènements.

Petit ex. :
Je veux qu'une Pop-up apparaisse quand un message est déplacé(ou créé)
dans

mon dossier Outlook Travail.

1. Dans mon code de session Outlook, je déclare un objet MapiFolder avec
évènements :
dim WithEvents monDossTravail as MapiFolder
2. Dans Application_Startup, j'initialise cet objet au dossier désiré (de
façon que ça fonctionne dès que Outlook est ouvert):
dim MonEsp as NameSpace
set MonEsp= GetNameSpace("MAPI")
set monDossTravail=MonEsp.Folders("Dossiers
Personnels").Folders("Travail")
3. Je sélectionne monDossTravail dans la liste des objets, ce qui permet
d'accéder à ItemAdd, ItemRemove, et ItemChange
4. Je génère ItemAdd, et je peux maintenant écrire le code à exécuter
quand

un message arrive (ou est généré) dans mon dossier. Par ex :
MsgBox "Un message arrive dans le dossier Travail : " & Item.Subject &
"

" & Item.SenderName

Pour utiliser les évènements de Dossiers FolderAdd, FolderChange et
FolderRemove, il faut créer un objet de type Folders avec WithEvents

En espérant avoir été à peu près claire !!! ;-)

A+
Isa

"tech-informatique" a écrit dans le
message de news:%
Bonjour,


Je programme de petites applis sous outlook 2k3, mais à l'heure actuelle
j'accède à mes macros via un bouton dans une bar de menu. J'aimerai
commencer à gérer les évenements dans outlook, seulement j'ai lu la doc
VBA

dessus, j'y ai rien compris et notamment leur principe de module de
classe,

est-ce le même principe qu'en java avec le constructeur et les méthodes
d'accès/paramètrage écouteur d'évenement ? Le problème avec l'aide c'est
que

ca donne un bout de code mais on nous montre pas la totalité comme :
comment

appelé ce que l'on a créé dans un module de classe, le système de
développement le plus efficace pour un module de classe et biensûr tout
ceci

sous outlook. Quelqu'un aurait-il un exemple plus concret à fournir ? Ou
un

liens avec un tutorial simple (si possible sous outlook, j'ai essayé et
j'ai

plein d'erreur).

Merci d'avance,

Cordialement,