Supprimer contact outlook
nanobul
Messages postés
2
Statut
Membre
-
collinlaillard -
collinlaillard -
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
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
-
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
-
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") -
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
-