Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2008, 10h31   #1
Invité de passage
 
Inscription : février 2008
Messages : 1
Détails du profil
Informations personnelles :
Âge : 42
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : février 2008
Messages : 1
Points : 0
Points : 0
Par défaut Outlook 2007 recherche d'1 contact par une partie de numéro de téléphone

bonjour à tous,

après maintes recherches sans résultat, je m'adresse à la communauté :

Comment effectuer une recherche de contacts avec une partie du numéro de téléphone : je m'explique

j'ai beaucoup de contact environ 1500 avec chacun 5 numéro de téléphone ou autres soit 7500 numéro

les numéro sont entrés sous forme internationnale,
ex : +33 123456789 ou +32 123456789 ou +352 123456789

avec Windows Desktop Search ( recherche instantanée ), je n'arrive pas trouver les contacts dont les numéros de téléphone contiennent par ex 678

j'ai essayé les caractères génériques ? * # sans succès

le seul moyen c'est l'export en xls par exemple puis le module de recherche d'excel

quelqu'un a-t-il une autre solution ? voir une macro ?

ce qui m'interresse le plus c'est éventuellement une macro qui peut chercher n'importe quelle suite de chiffre ex : 678, placé n'importe ou dans un numéro international de téléphone ( ou si quelqu'un sait comment le faire avec desktop search, je suis preneur )

car en fait Desktop search trouve seulement dans 2 cas :

1) si on connait le numéro international depuis le début ex : +33 678...... mais dans ce cas la position de la suite de chiffre est fixe et en plus il faut connaitre le préfixe

2) si on connait le numéro national depuis le début sans le préfixe dans ce cas: si les numéros internationaux on été saisi avec un espace entre le préfixe et le numéro national, il trouvera par exemple tous les numéros nationaux commençant par 678 avec n'importe quel préfixe international devant ex : +33 678....., +32 678....., +352 678....., +49 678.....

mais en tout cas si on ne connait pas le numéro depuis le début je n'ai pas trouvé comment faire

si vous savez comment faire avec desktop search ça m'arrangerais mais je doute que ce soit possible

quelqu'un a une idée

merci d'avance
fredosansarmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2008, 22h44   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Voilà un morceau de code incomplet.
A toi de le compléter pour obtenir ce que tu veux.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub RechercheContact()
Dim myFld As Folder
Dim myNS As NameSpace
 
Dim oApp As Outlook.Application
Dim cont As ContactItem
 
 
Set oApp = Outlook.Application
Set myNS = oApp.GetNamespace("MAPI")
Set myFld = myNS.GetDefaultFolder(olFolderContacts)
 
 
Debug.Print myFld.Items.Count
 
For Each cont In myFld.Items
    Debug.Print cont.Business2TelephoneNumber
Next cont
Set oApp = Nothing
Set myNS = Nothing
Set myFld = Nothing
 
 
 
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2010, 14h31   #3
Nouveau Membre du Club
 
Inscription : novembre 2009
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 67
Points : 36
Points : 36
Bonjour,

Bon... la discussion date un peu...

En fait, je voudrais faire une recherche dans mes contacts en utilisant l'adresse mail afin de modifier l'espace Notes de la fiche de contact correspondant à l'adresse (si elle existe). Voici mon programme :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Option Explicit
 
Private Sub Application_ItemSend(ByVal Item As Object, _
Cancel As Boolean)
 
Dim Courriel As MailItem
Dim Destinataires As Recipients
Dim Destinataire As Recipient
Dim UnContact As ContactItem
Dim Nb As Integer
Dim Ns As NameSpace
Dim Carnet As MAPIFolder
Dim V As Variant
 
Set Ns = GetNamespace("MAPI")
Set Carnet = Ns.GetDefaultFolder(olFolderContacts)  'Recherche dans les contacts personnels
'Set Carnet=Ns.GetDefaultFolder(olPublicFoldersAllPublicFolders.folders("Fournisseurs") 'Recherche dans les contacts partagés
Set Courriel = Item
Set Destinataires = Courriel.Recipients
 
 
'Dim myAddressList As AddressList
'Set myAddressList = Application.Session.AddressLists(1)
 
 
' ENREGISTREMENT DES CONSULTATIONS DE CHAQUE CONTACT
' Pour tous les destinataires du courriel
For Each Destinataire In Destinataires
 
    ' Rechercher dans les contacts
    For Each V In Carnet.Items
            If TypeName(V) = "ContactItem" Then 'Vérifier s'il s'agit d'un ContactItem
            'Set UnContact = V
            If UnContact.Email1Address = Destinataire.Address _
            Or UnContact.Email2Address = Destinataire.Address _
            Or UnContact.Email3Address = Destinataire.Address Then
                ' Destinataire trouvé
                If UnContact.Body = "" Then
                    ' Ajouter la première consultation dans Notes du contact
                    UnContact.Body = "1.  " & Format(Now(), "dddddd") & "   -  De " & Courriel.Session.CurrentUser.Name & "   -  Objet :  " & Courriel.Subject
                    UnContact.Save
                    Else
                        ' Ajouter la dernière consultation à la liste dans Notes du contact
                        UnContact.Body = UBound(Split(V.Body, ".  ")) + 1 & ".  " & Format(Now(), "dddddd") & "   -  De " & Courriel.Session.CurrentUser.Name & "   -  Objet :  " & Courriel.Subject & vbCrLf & UnContact.Body
                        UnContact.Save
                End If
 
    Exit For
            End If
        End If
 
        Next V
 
        Next Destinataire
 
 
End Sub
Lors de mon exécution, j'ai un petit problème au niveau de :

Code :
1
2
3
If UnContact.Email1Address = Destinataire.Address _
            Or UnContact.Email2Address = Destinataire.Address _
            Or UnContact.Email3Address = Destinataire.Address Then
Avec l'erreur d'exécution '91 : Variable objet ou variable de bloc With non définie. Etant débutante, je ne vois pas du tout d'où peut venir cette erreur...

Pouvez-vous m'aider svp ? Merci
ptitemeuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2010, 20h05   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Salut,

Uncontact n'a pas d'affectation.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h48.


 
 
 
 
Partenaires

Hébergement Web