Supprimer contact outlook

Bonjour,
Je cherche a supprimer un contact appartenant a une categorie predefinie (categorynametodelete) dans un dossier contact d'outlook.
Le script ci dessous est lancé depuis un formulaire Access mais me renvoie l'erreur "unable to parse condition"

Le code:

Dim myolApp As New Outlook.Application
Dim oFolder As Outlook.MAPIFolder
Dim strPrompt As String
Dim itms As Outlook.ContactItem
Dim l As Long
Dim lngCount As Long

On Error GoTo ErrorHandler

Set appOutlook = CreateObject("Outlook.Application")
Set nms = appOutlook.GetNamespace("MAPI")

SelectContactFolder:
Set pfld = nms.PickFolder
Debug.Print "Default item type: " & pfld.DefaultItemType
If pfld.DefaultItemType <> olContactItem Then
MsgBox "Please select a Contacts folder"
GoTo SelectContactFolder
End If
Set itms = pfld.Items.Find("[Categories] = ""Categorynametodelete")

lngCount = itms.Count
strPrompt = "Are you sure you want to delete the Items?"
If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
For l = lngCount To 1 Step -1
itms.Remove (1)
Next l
MsgBox ("Items deleted")

End If

Je suppose donc que je commet une erreur dans ma condition, mais j'ai beau essayé toutes les syntaxes, rien à faire, je suis nul...

Pour info, lorsque je retire ma condition (.find("[Categories]...), le script me supprime tous les contacts du dossier, donc ça fonctionne presque...

Merci d'avance a celui ou celle qui pourra me donner un coup de pouce

4 réponses

  1. J’ai pas testé mais cette lignbe me semble bizarre :
    Set itms = pfld.Items.Find("[Categories] = ""Categorynametodelete")

    Moi j’essayerais
    Set itms = pfld.Items.Find("[Categories] = " & Categorynametodelete
    En supposant que Categorynametodelete est un string

    0
    1. Merci, mais malheureusement ça ne marche pas,
      je voudrais essayer en mettant une valeur constante,
      par exemple dans mon outlook j'ai tous les contacts qui se rapportent a une categorie nommées "Amis"; c'est cette categorie que je voudrais supprimer,
      J'ai essayé ceci, mais sans succès

      Set itms = pfld.Items.Find("[Categories] = ""Amis")
      0
      1. Ola j'avais oublié une parenthèse aussi donc :
        Set itms = pfld.Items.Find("[Categories] = " & Categorynametodelete & "")

        ou
        avec ta constante
        Set itms = pfld.Items.Find("[Categories] = "Amis"")

        sinon je vois pas, sorry
        0
        1. supprimer contact outlook
          tous le sit
          0
          1. j'aimerais supprimer des contacts sur outloock mais je ne vois pas comment faire.je crie au secours pour avoir une aide.merci
            0