IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

trouver et effacer si il existe un contact en vba [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 76
    Points
    76
    Par défaut trouver et effacer si il existe un contact en vba
    Bonjour , j'ai dans ma base un carnet d'adresse avec un bouton qui me permet de créer un contact dans outlook (dossier contact base) et je voudrais avant la création d'un contact vérifier si il existe ou non mais je ne parviens pas a tester comme vrai ou faux si le contact est trouve ou non

    La partie de code a cet effet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Filtre = "[FileAs]= " & Me.Prenom & " " & Me.Nom
     
    Set oContact = myContactFolder.Items.Find(Filtre)
    If oContact = "" Then
    Else
    oContact.Delete
    End If
    Si oContact n'est pas trouve ocontact est toujours vide (nothing) mais je n'arrive pas a le tester:
    if isnull(ocontact) ne fonctionne pas.
    Merci par avance de vos lumieres

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub testcaro()
     
    Set myOlApp = CreateObject("Outlook.Application")
        Set myNamespace = myOlApp.GetNamespace("MAPI")
        Set myContactFolder = myNamespace.GetDefaultFolder(olFolderContacts)
    Filtre = "[FileAs]= " & Me.Prenom & " " & Me.Nom
    'Filtre = "[FileAs]= '" & Me.Nom & ", " & Me.Prenom & "'"
     
    Set oContact = myContactFolder.items.Find(Filtre)
    If oContact Is Nothing Then
    MsgBox "pas trouvé"
    Else
    MsgBox "contact trouvé"
    oContact.Delete
    End If
    End Sub
    attention à ce que les contacts soient bien tous enregistrés dans le même format "Prenom Nom" ca peut être le contraire "nom prenom" ou "nom, prénom" etc..

    attention .Find va te pointer le premier contact qui répond à ton filtre, si tu peux en avoir plusieurs, tu peux utiliser restrict

    voici un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub TrouveEmailDansContact()
    'by Oliv' 7/11/2007 pour Outlook 2003/2010
        Dim myOlApp As Outlook.Application
        Dim myNamespace As Outlook.NameSpace
        Dim myContacts As Outlook.items
        Dim myItems As Outlook.items
        Dim myItem As Object
        Email = InputBox("Quelle adresse cherchez vous ?", "Recherche dasns les contacts")
        Set myOlApp = Outlook.Application
        Set myNamespace = myOlApp.GetNamespace("MAPI")
        Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).items
        strWhere = "[Email1Address] ='" & Email & "' or [Email2Address] ='" & Email & "' or [Email3Address] ='" & Email & "'"
        Set myItems = myContacts.Restrict(strWhere)
        For Each myItem In myItems
            If (myItem.Class = olContact) Then
                MsgBox myItem.FullName & ":Email1 [" & myItem.Email1Address & "]" & vbCr & "Email2 [" & myItem.Email2Address & "]" & vbCr & "Email3 [" & myItem.Email2Address & "]"
            End If
        Next
    if myItems.count=0 then msgbox "pas trouvé"
    End Sub

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 76
    Points
    76
    Par défaut
    Have a nice day too !!!
    Ca marche impeccable ;merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/01/2010, 22h48
  2. Mise à jour sans effacer le contenu existant
    Par serna dans le forum Langage
    Réponses: 7
    Dernier message: 04/09/2009, 11h21
  3. Ne trouver pas des factures qui existent bien
    Par kinkichin dans le forum E-Business
    Réponses: 0
    Dernier message: 16/03/2009, 10h56
  4. Trouver l'adresse de l'expediteur d'un mail (vba)
    Par amalane dans le forum Outlook
    Réponses: 3
    Dernier message: 08/04/2007, 12h09
  5. Réponses: 2
    Dernier message: 25/07/2006, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo