J'ai écrit un script VBA pour Outlook 2010. Ce script a pour but de nettoyer certains éléments des tâches et des contacts de l'utilisateur. Cela doit être fait après une migration vers une nouvelle solution de gestion client. Comme Exchange est connecté à la nouvelle solution, certains éléments sont doublés. Nous devons donc supprimer les éléments de Outlook. Idéalement, cela se ferait sur le serveur Exchange mais nous n'avons pas accès directement à celui-ci ...Déploiement du script VBA Outlook 2010
Mon script fonctionne déjà mais mon problème réside dans la distribution de ce script. Nous n'avons pas d'accès direct aux ordinateurs de ces personnes. Nous avons donc besoin d'un moyen de les empaqueter en téléchargement, de les faire fonctionner une fois depuis un lien dans un e-mail et de l'oublier. La plupart de ces utilisateurs n'ont pratiquement aucune connaissance en informatique. Idéalement, je ne veux pas que ce script reste dans Outlook après cette exécution.
j'ai cherché une solution, mais n'a rien trouvé ...
Voici mon script si cela aide. De plus, je ne suis pas un bon programmeur ... Donc, s'il y a une meilleure façon de le faire, n'hésitez pas à me le dire.
Private Sub CleanUp()
Dim TaskFolder As Folder
Set TaskFolder = Session.GetDefaultFolder(olFolderTasks)
Dim Task As TaskItem
Dim objProperty As Outlook.UserProperty
Dim uProperty As String
Dim collTasks As New Collection
Dim ContactFolder As Folder
Set ContactFolder = Session.GetDefaultFolder(olFolderContacts)
Dim Contact As ContactItem
Dim objPropertyCLS As Outlook.UserProperty
Dim uPropertyCLS As String
Dim collContacts As New Collection
uProperty = "crmxml"
uPropertyCLS = "crmLinkState"
For Each Task In TaskFolder.Items
Set objProperty = Task.UserProperties.Find(uProperty, Outlook.OlUserPropertyType.olText)
If objProperty Is Nothing Then
Debug.Print "objProperty is Nothing"
ElseIf InStr(objProperty, "phonecall") > 0 Then
collTasks.Add Task
ElseIf InStr(objProperty, "letter") > 0 Then
collTasks.Add Task
ElseIf InStr(objProperty, "fax") > 0 Then
collTasks.Add Task
End If
Next
For Each Contact In ContactFolder.Items
Set objPropertyCLS = Contact.UserProperties.Find(uPropertyCLS, Outlook.OlUserPropertyType.olNumber)
If objPropertyCLS Is Nothing Then
Debug.Print "objPropertyCLS is Nothing"
ElseIf Not objPropertyCLS Is Nothing Then
collContacts.Add Contact
End If
Next
For Each Task In collTasks
Task.Delete
Next
For Each Contact In collContacts
Contact.Delete
Next
End Sub
Merci beaucoup!
* Donc, s'il y a une meilleure façon de le faire, n'hésitez pas à me le dire. * - c'est ce que [codereview.se] est pour, avez-vous déjà essayé? –