OVH Cloud OVH Cloud

VBA Sort sur champ des contacts

1 réponse
Avatar
Ludovic
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).

--
Ludovic

1 réponse

Avatar
Gilles MOUGNOZ
"Ludovic" a é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é :
...
strCondition = "[MobileTelephoneNumber] <> vbNullString"
...
Ludovic



Bonjour, Ludovic

Je ne connais pas les spécificités du VBA d'Outlook mais ta condition
ressemble grandement à celles que l'on peut voir dans une requête SQL.
Le problème doit venir de la distinction entre une donnée non renseignée
(vide) et une donnée contenant une chaîne vide ("").
Si mon intuition es juste, je te suggère d'utiliser la condition suivante:
strCondition = "[MobileTelephoneNumber] Is Not Null"
C'est mieux ?

Bonne continuation