Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Assigner une tâche en vba

3 réponses
Avatar
géjoun
Bonjour,

Est-ce que quelqu'un connait et pourrait me donner le code vba correspondant
à la fonction "assigner une tâche" (à une autre personne), avec comme éléments
(par exemple): rappel le 25/02/05 et Objet : Réunion.

Merci d'avance

--
géjoun
dam-mail2005@ifrance.com
/Enlever l`année pour m`écrire...
Message monitoré par axinews : http://www.axinews.com

3 réponses

Avatar
Isabelle Prawitz
Bonjour !
Exemple à peine retouché fourni par l'aide Outlook VBA sur la méthode Assign :

Sub AssignTask()
Dim myOlApp As New Outlook.Application
Dim myItem As Outlook.TaskItem
Dim myDelegate As Outlook.Recipient
Set myItem = myOlApp.CreateItem(olTaskItem)
myItem.Assign
Set myDelegate = myItem.Recipients.Add("Dan Wilson")
myDelegate.Resolve
If myDelegate.Resolved Then
myItem.Subject = "Réunion"
myItem.DueDate = #2/25/2005# 'échéance
myItem.ReminderTime = #2/25/2005 8:00:00 AM# 'Rappel
myItem.Display
myItem.Send
End If
End Sub

A+
Isa

"géjoun" a écrit dans le message de news:421b6311$0$8085$
Bonjour,

Est-ce que quelqu'un connait et pourrait me donner le code vba correspondant
à la fonction "assigner une tâche" (à une autre personne), avec comme éléments
(par exemple): rappel le 25/02/05 et Objet : Réunion.

Merci d'avance!

--
géjoun

/Enlever l`année pour m`écrire.../
Message monitoré par axinews : http://www.axinews.com/



Avatar
géjoun.
Bonsoir,

Je viens juste de voir ta réponse, merci!

J'essaie ça demain! (et je reviens...surement! ;-) )

--
Géjoun.

/Enlevez l'année pour m'écrire.../


Isabelle Prawitz nous a écrit:

Bonjour !
Exemple à peine retouché fourni par l'aide Outlook VBA sur la méthode
Assign :

Sub AssignTask()
Dim myOlApp As New Outlook.Application
Dim myItem As Outlook.TaskItem
Dim myDelegate As Outlook.Recipient
Set myItem = myOlApp.CreateItem(olTaskItem)
myItem.Assign
Set myDelegate = myItem.Recipients.Add("Dan Wilson")
myDelegate.Resolve
If myDelegate.Resolved Then
myItem.Subject = "Réunion"
myItem.DueDate = #2/25/2005# 'échéance
myItem.ReminderTime = #2/25/2005 8:00:00 AM# 'Rappel
myItem.Display
myItem.Send
End If
End Sub

A+
Isa


Avatar
géjoun
Salut, me revoila... (et pas pour rien! ;-) )

J'ai testé le code que tu m'as fourni pour assigner une tache en VBA, et
apparement, le principe m'irait; je l'ai modifié comme ceci :

Sub AssignTask()
Dim myOlApp As New Outlook.Application
Dim myItem As Outlook.TaskItem
Dim myDelegate As Outlook.Recipient
Set myItem = myOlApp.CreateItem(olTaskItem)
myItem.Assign
Set myDelegate = myItem.Recipients.Add("NOM Prénom")
myDelegate.Resolve
If myDelegate.Resolved Then
myItem.Subject = "CDE - " & Range("j2") & " 0" & Range("k6") & " - " &
Range("b10") & " " & Range("h7") 'Objet"
myItem.DueDate = Range("e12") 'échéance
myItem.ReminderTime = True 'Rappel
myItem.Display
myItem.Send
End If
End Sub

Avant de partir dans les détails, j'explique ce que je cherche à faire :

Je cherche ce code pour l'intégrer à un fichier Excel afin de pouvoir créer
des rappels à partir d'éléments définis de ma feuille de calcul.

Sur le forum excel, on m'avait déja donné un code qui fonctionne trés bien
pour créer des tâches sur mon poste, donc je voudrais pouvoir faire la même
chose, sauf que ce serait pour assigner des taches à mon colègue.

Le code que j'utilise pour me créer des taches est le suivant :

Sub Creer_TacheOutlook()
' Dimensionner l'objet Outlook
Dim oOutlook As Outlook.Application
' Dimensionner la tâche
Dim oTache As TaskItem
If Range("m12") Then
' Initialiser l'objet Outlook
Set oOutlook = CreateObject("Outlook.Application")
' Créer la tâche
Set oTache = oOutlook.CreateItem(olTaskItem)
' Affecter les propriétés à la tâche
With oTache
.DueDate = Range("n3") ' Echéance
.Subject = "CDE - " & Range("j2") & " 0" & Range("k6") & " - " &
Range("b10") & " " & Range("h7") 'Objet
LeTexte = ""
For i = 16 To 67
If Range("c" & i) <> "" Then LeTexte = LeTexte & Range("c" & i) & "
" & Range("d" & i) & " -> " & Range("j" & i) & " €" & vbNewLine
Next
.Body = LeTexte & vbNewLine & Range("j68") & " " & Range("k68") & "
€" & vbNewLine & vbNewLine & vbNewLine & vbNewLine & Range("n2") ' texte
explicatif"
.ReminderSet = True
.Save ' Enregistrer la nouvelle tâche
End With
' vider les objets pour libérer la mémoire
Set oTache = Nothing
Set oOutlook = Nothing
End If
End Sub

Or, je ne comprends pas tout dans le code que tu m'as fourni par rapport à
celui que je possède :

Par exemple, quel est la différence entre ces 2 paramêtres?

myItem.DueDate = Range("e12") 'échéance
myItem.ReminderTime = True 'Rappel

car je voudrais simplement qu'un rappel s'active le jour défini par
myItem.DueDate, je pensais que myItem.ReminderTime permettait d'activer ce
rappel à une date, mais apparement ça ne fonctionne pas.

D'autre part, est-il possible d'assigner la tâche sans avoir le message
d'avertissement 'un autre programme tente d'accéder...etc...' et devoir
cliquer dans plusieurs boites de dialogue avant l'envoi de celle-ci? De façon
à ce que lorsqu'on exécute la macro, la tache parte directement sans aucun
avertissement? (j'ai fait des recherches dans les archives, et j'ai trouvé un
sujet qui expliquait que pour les emails, en remplacant CreateObject par
GetObject; ça pouvait éviter ces boites de dialogue; est-ce applicable ici?

Et comment faire pour appliquer les éléments de la 1ère macro à la 2ème?
(pour le 'myItem.subject' de la tache par exemple, car à partir de 'Le texte
= "" ' de la 1ère macro, je ne suis pas arrivé à l'adapter à celle que tu
m'as fourni).

En fait, je me demande si il ne serait pas plus simple d'adapter la 1ère
macro de façon à pouvoir l'utiliser pour assigner des tâches à d'autres
personnes, ça ne serait pas plus facile?

D'avance, merci!