Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" & objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec > 0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" & objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec > 0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" & objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec > 0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :
Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec
0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Merci pour l'aide mais <> "" (donc 2 quottes) est impossible à écrire sous
VBA puisqu'il ajoute lui-même une 3° quotte (ce qui est logique).
On se retrouve donc avec 3 quottes : erreur d'exécution (impossible
d'analyser la condition. Erreur à <<">>) dans le restrict, mais logique
puisque la condition est en fait <> ".
On est donc obliger (basic oblige) d'écrire <> """"" ou <> """" " (donc 5
quottes) et là même résultat qu'avec vbnullstring, la totalité du carnet est
renvoyé.
Fais-je une erreur ?
"JièL Goubert" a écrit dans le
message de news: %Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Merci pour l'aide mais <> "" (donc 2 quottes) est impossible à écrire sous
VBA puisqu'il ajoute lui-même une 3° quotte (ce qui est logique).
On se retrouve donc avec 3 quottes : erreur d'exécution (impossible
d'analyser la condition. Erreur à <<">>) dans le restrict, mais logique
puisque la condition est en fait <> ".
On est donc obliger (basic oblige) d'écrire <> """"" ou <> """" " (donc 5
quottes) et là même résultat qu'avec vbnullstring, la totalité du carnet est
renvoyé.
Fais-je une erreur ?
"JièL Goubert" <NoSPAM_JieL.Goubert@laposte-net.NoSPAM> a écrit dans le
message de news: %23cPGPGdaGHA.4972@TK2MSFTNGP03.phx.gbl...
Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :
Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec
0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Merci pour l'aide mais <> "" (donc 2 quottes) est impossible à écrire sous
VBA puisqu'il ajoute lui-même une 3° quotte (ce qui est logique).
On se retrouve donc avec 3 quottes : erreur d'exécution (impossible
d'analyser la condition. Erreur à <<">>) dans le restrict, mais logique
puisque la condition est en fait <> ".
On est donc obliger (basic oblige) d'écrire <> """"" ou <> """" " (donc 5
quottes) et là même résultat qu'avec vbnullstring, la totalité du carnet est
renvoyé.
Fais-je une erreur ?
"JièL Goubert" a écrit dans le
message de news: %Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai avec0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
Bonjoir© Ludovic
alors essayez ceci (inspiré de l'aide)
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts.Restrict("[MobileTelephoneNumber] <> ''")
For Each myItem In myItems
If (myItem.Class = olContact) Then
Debug.Print myItem.FullName & ": " & myItem.MobileTelephoneNumber
End If
Next
c'est mieux comme ça ? ;-)
Chez moi ça fonctionne en tout cas
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 12:23 vous avez écrit... :Merci pour l'aide mais <> "" (donc 2 quottes) est impossible à écrire
sous VBA puisqu'il ajoute lui-même une 3° quotte (ce qui est logique).
On se retrouve donc avec 3 quottes : erreur d'exécution (impossible
d'analyser la condition. Erreur à <<">>) dans le restrict, mais logique
puisque la condition est en fait <> ".
On est donc obliger (basic oblige) d'écrire <> """"" ou <> """" " (donc 5
quottes) et là même résultat qu'avec vbnullstring, la totalité du carnet
est renvoyé.
Fais-je une erreur ?
"JièL Goubert" a écrit dans le
message de news: %Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai
avec > 0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Bonjoir© Ludovic
alors essayez ceci (inspiré de l'aide)
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts.Restrict("[MobileTelephoneNumber] <> ''")
For Each myItem In myItems
If (myItem.Class = olContact) Then
Debug.Print myItem.FullName & ": " & myItem.MobileTelephoneNumber
End If
Next
c'est mieux comme ça ? ;-)
Chez moi ça fonctionne en tout cas
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 12:23 vous avez écrit... :
Merci pour l'aide mais <> "" (donc 2 quottes) est impossible à écrire
sous VBA puisqu'il ajoute lui-même une 3° quotte (ce qui est logique).
On se retrouve donc avec 3 quottes : erreur d'exécution (impossible
d'analyser la condition. Erreur à <<">>) dans le restrict, mais logique
puisque la condition est en fait <> ".
On est donc obliger (basic oblige) d'écrire <> """"" ou <> """" " (donc 5
quottes) et là même résultat qu'avec vbnullstring, la totalité du carnet
est renvoyé.
Fais-je une erreur ?
"JièL Goubert" <NoSPAM_JieL.Goubert@laposte-net.NoSPAM> a écrit dans le
message de news: %23cPGPGdaGHA.4972@TK2MSFTNGP03.phx.gbl...
Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :
Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai
avec > 0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Bonjoir© Ludovic
alors essayez ceci (inspiré de l'aide)
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts.Restrict("[MobileTelephoneNumber] <> ''")
For Each myItem In myItems
If (myItem.Class = olContact) Then
Debug.Print myItem.FullName & ": " & myItem.MobileTelephoneNumber
End If
Next
c'est mieux comme ça ? ;-)
Chez moi ça fonctionne en tout cas
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 12:23 vous avez écrit... :Merci pour l'aide mais <> "" (donc 2 quottes) est impossible à écrire
sous VBA puisqu'il ajoute lui-même une 3° quotte (ce qui est logique).
On se retrouve donc avec 3 quottes : erreur d'exécution (impossible
d'analyser la condition. Erreur à <<">>) dans le restrict, mais logique
puisque la condition est en fait <> ".
On est donc obliger (basic oblige) d'écrire <> """"" ou <> """" " (donc 5
quottes) et là même résultat qu'avec vbnullstring, la totalité du carnet
est renvoyé.
Fais-je une erreur ?
"JièL Goubert" a écrit dans le
message de news: %Bonjoir© Ludovic
essayez ceci
strCondition = "[MobileTelephoneNumber] <> ''"
a la place de
strCondition = "[MobileTelephoneNumber] <> vbNullString"
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 27/04/2006 01:26 vous avez écrit... :Bonjour,
Je souhaite obtenir une liste classée alphabétiquement de tous mes
contacts
Outlook 2003 qui ont un numéro de téléphone pour leur mobile.
Ci-dessous une partie du code VBA employé :
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objContacts = objNS.GetDefaultFolder(olFolderContacts)
' Filtrage sur n° mobile
strCondition = "[MobileTelephoneNumber] <> vbNullString"
Set colItems = objContacts.Items.Restrict(strCondition)
colItems.Sort "[FullName]"
For Each objItem In colItems
Debug.Print objItem.FullName & " <" &
objItem.MobileTelephoneNumber
& ">"
Next
.....
Mais gros problème : avec un filtre <> vbNullstring ce sont TOUS mes
contacts qui me sont envoyés et ce quelque soit le contenu du champ
MobilePhoneNumber.
Avec une condition = vbNullString, aucun contact n'est renvoyé
Par dépit et bien que ce champ semble être du type string, un essai
avec > 0
me renvoie 30 contacts (ceux commençant par 06 ... mais pas les 33, ni
les
+33, ni les autres non vides).
Au secours ... je patauge lamentablement.
Autre question annexe : je ne peux pas mettre une ligne du type :
colItems.SetColumns ("Fullname, MobileTelephoneNumber")
Elle me donne une erreur systématiquement.
Merci pour vos coups de main (ou de pied d'ailleurs).
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Et bien avec un copié/collé ... celà ne marche pas chez moi !!!!
J'ai toujours la totalité du carnet qui est renvoyé, et pour les 3/4, un
debug.print len(myItem.MobileTelephoneNumber) donne bien 0.
Comprend pas ... mais par acquit de conscience, la chaîne derrière <> est
bien simple quotte simple quotte double quotte ?
Et bien avec un copié/collé ... celà ne marche pas chez moi !!!!
J'ai toujours la totalité du carnet qui est renvoyé, et pour les 3/4, un
debug.print len(myItem.MobileTelephoneNumber) donne bien 0.
Comprend pas ... mais par acquit de conscience, la chaîne derrière <> est
bien simple quotte simple quotte double quotte ?
Et bien avec un copié/collé ... celà ne marche pas chez moi !!!!
J'ai toujours la totalité du carnet qui est renvoyé, et pour les 3/4, un
debug.print len(myItem.MobileTelephoneNumber) donne bien 0.
Comprend pas ... mais par acquit de conscience, la chaîne derrière <> est
bien simple quotte simple quotte double quotte ?
Bonjoir© Ludovic
Le 27/04/2006 13:37 vous avez écrit... :Et bien avec un copié/collé ... celà ne marche pas chez moi !!!!
Zarbi...J'ai toujours la totalité du carnet qui est renvoyé, et pour les 3/4, un
debug.print len(myItem.MobileTelephoneNumber) donne bien 0.
Comprend pas ... mais par acquit de conscience, la chaîne derrière <> est
bien simple quotte simple quotte double quotte ?
Oui, c'est bien ça... je ne comprend pas non plus.
A la rigueur, essayez de tricher comme ceci, même si c'est pas très propre
ça fonctionne
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts
For Each myItem In myItems
If (myItem.Class = olContact) Then
If Len(myItem.MobileTelephoneNumber) > 0 Then
Debug.Print myItem.FullName & ": " &
myItem.MobileTelephoneNumber
End If
End If
Next
je ne pense pas que ça alourdisse démesurément le temps de traitement, a
moins que vous n'ayez des milliers de contacts...
Bonjoir© Ludovic
Le 27/04/2006 13:37 vous avez écrit... :
Et bien avec un copié/collé ... celà ne marche pas chez moi !!!!
Zarbi...
J'ai toujours la totalité du carnet qui est renvoyé, et pour les 3/4, un
debug.print len(myItem.MobileTelephoneNumber) donne bien 0.
Comprend pas ... mais par acquit de conscience, la chaîne derrière <> est
bien simple quotte simple quotte double quotte ?
Oui, c'est bien ça... je ne comprend pas non plus.
A la rigueur, essayez de tricher comme ceci, même si c'est pas très propre
ça fonctionne
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts
For Each myItem In myItems
If (myItem.Class = olContact) Then
If Len(myItem.MobileTelephoneNumber) > 0 Then
Debug.Print myItem.FullName & ": " &
myItem.MobileTelephoneNumber
End If
End If
Next
je ne pense pas que ça alourdisse démesurément le temps de traitement, a
moins que vous n'ayez des milliers de contacts...
Bonjoir© Ludovic
Le 27/04/2006 13:37 vous avez écrit... :Et bien avec un copié/collé ... celà ne marche pas chez moi !!!!
Zarbi...J'ai toujours la totalité du carnet qui est renvoyé, et pour les 3/4, un
debug.print len(myItem.MobileTelephoneNumber) donne bien 0.
Comprend pas ... mais par acquit de conscience, la chaîne derrière <> est
bien simple quotte simple quotte double quotte ?
Oui, c'est bien ça... je ne comprend pas non plus.
A la rigueur, essayez de tricher comme ceci, même si c'est pas très propre
ça fonctionne
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts
For Each myItem In myItems
If (myItem.Class = olContact) Then
If Len(myItem.MobileTelephoneNumber) > 0 Then
Debug.Print myItem.FullName & ": " &
myItem.MobileTelephoneNumber
End If
End If
Next
je ne pense pas que ça alourdisse démesurément le temps de traitement, a
moins que vous n'ayez des milliers de contacts...