Tester le type d'un élement contenu dans un dossier
1 réponse
Arbiel Perlacremaz
Bonsoir
J'utilise Outloook 2002, mais ma question est valable pour les versions
antérieures.
J'ai écrit une procédure qui analyse le contenu du dossier des contacts par
un code tel que celui-ci
Dim MonContact as Outlook.ContactItem
Dim MesContacts as Outlook.MAPIFolder
For each MonContact in MesContacts .Items
'traitement
Next MonContact
Le dossier contient également des listes de distribution, qui ne sont donc
pas de même nature que les contacts. Une erreur se produit lorsque
MonElément tente de référencer la première de ces listes de distribution.
J'ai modifié le code de la manière suivante :
Dim MonElément as Object
Dim MonContact as outlook.ContactItem
Dim MesContacts as Outlook.MAPIFolder
For each UnElément in MesContacts .Items
Select Case UnElément.Class
Case olContactItem
Set MonContact = UnElément
'traitement
end Select
Next MonElément
Aucune erreur ne se produit plus, mais aucun traitement n'est effectué car
UnElément.Class ne prend apparemment jamais la valeur OlContactItem.
Je sais que je peux introduire faire ainsi
On error resume Next
Set MonContact = UnElément
If Err.Number = 0 then
'traitement
end if
Err.clear
pour agir en conséquence.
Mais quelqu'un peut-il me dire comment déterminer de manière moins
"bestiale" si UnElément est un contact ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Isabelle Prawitz
Bonjour ! Tu peux utiliser la fonction TypeName. Par ex.:
If TypeName(monItem)="ContactItem" then... ou If TypeName(monItem)="MAPIFolder" then...
Là, tu retrouve exactement le nom de la classe d'objets, entre guillemets. A+ Isa
"Arbiel Perlacremaz" a écrit dans le message de news:e%
Bonsoir
J'utilise Outloook 2002, mais ma question est valable pour les versions antérieures.
J'ai écrit une procédure qui analyse le contenu du dossier des contacts par un code tel que celui-ci
Dim MonContact as Outlook.ContactItem Dim MesContacts as Outlook.MAPIFolder
For each MonContact in MesContacts .Items 'traitement Next MonContact
Le dossier contient également des listes de distribution, qui ne sont donc pas de même nature que les contacts. Une erreur se produit lorsque MonElément tente de référencer la première de ces listes de distribution.
J'ai modifié le code de la manière suivante :
Dim MonElément as Object Dim MonContact as outlook.ContactItem Dim MesContacts as Outlook.MAPIFolder
For each UnElément in MesContacts .Items Select Case UnElément.Class Case olContactItem Set MonContact = UnElément 'traitement end Select Next MonElément
Aucune erreur ne se produit plus, mais aucun traitement n'est effectué car UnElément.Class ne prend apparemment jamais la valeur OlContactItem.
Je sais que je peux introduire faire ainsi On error resume Next Set MonContact = UnElément If Err.Number = 0 then 'traitement end if Err.clear pour agir en conséquence.
Mais quelqu'un peut-il me dire comment déterminer de manière moins "bestiale" si UnElément est un contact ?
D'avance, merci
Bonjour !
Tu peux utiliser la fonction TypeName.
Par ex.:
If TypeName(monItem)="ContactItem" then...
ou
If TypeName(monItem)="MAPIFolder" then...
Là, tu retrouve exactement le nom de la classe d'objets, entre guillemets.
A+
Isa
"Arbiel Perlacremaz" <pas_d_adresse@nulle.part> a écrit dans le message de news:e%23yetKaIFHA.2428@TK2MSFTNGP10.phx.gbl...
Bonsoir
J'utilise Outloook 2002, mais ma question est valable pour les versions
antérieures.
J'ai écrit une procédure qui analyse le contenu du dossier des contacts par
un code tel que celui-ci
Dim MonContact as Outlook.ContactItem
Dim MesContacts as Outlook.MAPIFolder
For each MonContact in MesContacts .Items
'traitement
Next MonContact
Le dossier contient également des listes de distribution, qui ne sont donc
pas de même nature que les contacts. Une erreur se produit lorsque
MonElément tente de référencer la première de ces listes de distribution.
J'ai modifié le code de la manière suivante :
Dim MonElément as Object
Dim MonContact as outlook.ContactItem
Dim MesContacts as Outlook.MAPIFolder
For each UnElément in MesContacts .Items
Select Case UnElément.Class
Case olContactItem
Set MonContact = UnElément
'traitement
end Select
Next MonElément
Aucune erreur ne se produit plus, mais aucun traitement n'est effectué car
UnElément.Class ne prend apparemment jamais la valeur OlContactItem.
Je sais que je peux introduire faire ainsi
On error resume Next
Set MonContact = UnElément
If Err.Number = 0 then
'traitement
end if
Err.clear
pour agir en conséquence.
Mais quelqu'un peut-il me dire comment déterminer de manière moins
"bestiale" si UnElément est un contact ?
Bonjour ! Tu peux utiliser la fonction TypeName. Par ex.:
If TypeName(monItem)="ContactItem" then... ou If TypeName(monItem)="MAPIFolder" then...
Là, tu retrouve exactement le nom de la classe d'objets, entre guillemets. A+ Isa
"Arbiel Perlacremaz" a écrit dans le message de news:e%
Bonsoir
J'utilise Outloook 2002, mais ma question est valable pour les versions antérieures.
J'ai écrit une procédure qui analyse le contenu du dossier des contacts par un code tel que celui-ci
Dim MonContact as Outlook.ContactItem Dim MesContacts as Outlook.MAPIFolder
For each MonContact in MesContacts .Items 'traitement Next MonContact
Le dossier contient également des listes de distribution, qui ne sont donc pas de même nature que les contacts. Une erreur se produit lorsque MonElément tente de référencer la première de ces listes de distribution.
J'ai modifié le code de la manière suivante :
Dim MonElément as Object Dim MonContact as outlook.ContactItem Dim MesContacts as Outlook.MAPIFolder
For each UnElément in MesContacts .Items Select Case UnElément.Class Case olContactItem Set MonContact = UnElément 'traitement end Select Next MonElément
Aucune erreur ne se produit plus, mais aucun traitement n'est effectué car UnElément.Class ne prend apparemment jamais la valeur OlContactItem.
Je sais que je peux introduire faire ainsi On error resume Next Set MonContact = UnElément If Err.Number = 0 then 'traitement end if Err.clear pour agir en conséquence.
Mais quelqu'un peut-il me dire comment déterminer de manière moins "bestiale" si UnElément est un contact ?