Importer des tâches Outlook via Excel
Bonsoir,
pour commencer je souhaiterait savoir s'il est possible d'importer des taches dans Outlook sous base d'un tableau croisé dynamique excel ou un tableau?
J'utilise l'agenda Outlook pour planifier les interventions de mon technicien.
Les demandes d'interventions ce font via un gestionnaire en ligne et son exportable sous forme csv
Je souhaite importée les demande sous forme de "tâche" dans Outlook et les classé par catégorie de leur statut: (les mettre sous catégorie en fonction du statut:
Statut Créé: -> "SAV à PLANIFIER"
Statut En attente du client -> "SAV EN ATTENTE DU CLIENT"
Statut Confirmé: -> "SAV EN ATTENTE DE MARCHANDISE"
Les autres catégories ne m’intéressent pas (pour le moment)
L'export CSV me donne beaucoup d'info que je n'ai pas besoin, voici ce dont j'ai besoin et ce a quoi cela correspond dans la liste des tâche d'Outlook :
Colonne B il y a le statut qui doit correspondre au catégorie dans Outlook.
Colonne E il y a la Priorité qui doit correspondre a Priorité dans Outlook
Colonne F il y a le sujet qui doit correspondre a Objet de la tâche dans Outlook
Colonne P il y a Créé qui doit correspondre a Créé le dans Outlook
Colonne W il y a Secteur qui doit correspondre a Secteur dans Outlook
Colonne Y il y a Ville du chantier qui doit correspondre a Ville dans Outlook
Colonne AX il y a Description qui correspond a Note dans Outlook
Merci de me dire si ça parait réalisable dans un premier temps et si quelqu'un est prêt à me filer un coup de pouce sur le code VBA je ferai parvenir un fichier exemple a la demande.
Bav et merci d'avance
Bonsoir,
C'est tout à fait réalisable, voici en partie le code
Sub ImportTaches()
Dim myolApp As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myTasks As Outlook.MAPIFolder
Dim myFolder As Outlook.MAPIFolder
Dim Item As TaskItem
Dim NLig As Long
Dim LimitePassee, LimiteFuture
' Définir les variables objet
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myTasks = myNamespace.Folders(1).Folders(9)
' constantes
LimitePassee = Date - 365 ' un an en arrière
LimiteFuture = Date + 3 * 365 ' 3 ans en avant
For Each Item In myTasks.Items
If (Item.StartDate > LimitePassee) And (Item.StartDate < LimiteFuture) _
And (Not Item.Complete) Then
NLig = Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Row
' Inscrire les éléments
Range("B" & NLig).Value = Item.categories
Range("E" & NLig).Value = Item.Importance
Range("F" & NLig).Value = Item.Subject
Range("P" & NLig).Value = Item.CreationTime
Range("Y" & NLig).Value = "Item" 'point Quelquechose
Range("AX" & NLig).Value = "Item" 'point Quelquechose
End If
Next Item 'MsgBox (compte)
End SubCertains éléments restent à trouver
A+
merci de ton aide mais je ne souhaite pas importer des taches d'outlook vers excel mais le contraire , j'essaye avec
Sub AjoutTache()
Dim myolApp As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myTasks As Outlook.MAPIFolder
Dim myFolder As Outlook.MAPIFolder
Dim Item As TaskItem
Dim NLig As Long
Dim LimitePassee, LimiteFuture
' Définir les variables objet
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myTasks = myNamespace.Folders(1).Folders(9)
' constantes
LimitePassee = Date - 365 ' un an en arrière
LimiteFuture = Date + 3 * 365 ' 3 ans en avant
For Each Item In myTasks.Items
If (Item.StartDate > LimitePassee) And (Item.StartDate < LimiteFuture) _
And (Not Item.Complete) Then
NLig = Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Row
' Inscrire les éléments
Range("D1:E" & Range("D250").Value = Item.Categories
Range("E1:E" & Range("E250").Value = Item.Importance
Range("B1:B" & Range("B250").Value = Item.Subject
Range("C1:C" & Range("C250").Value = Item.CreationTime
End If
Next Item 'MsgBox (compte)
End SubMais ca marche pas :'(
Sub AjoutTache()
Dim myolApp As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myTasks As Outlook.MAPIFolder
Dim myFolder As Outlook.MAPIFolder
Dim Item As TaskItem
Dim dl&
dl = Cells(Rows.Count, 2).End(xlUp).Row
For i = 4 To dl
MsgBox "objet= " & Cells(i, "B")
MsgBox "stardate= " & Cells(i, "C")
MsgBox "stNote= " & Cells(i, "H")
Next i
End SubCe code me créé bien les boucles mais il me les vérifie juste en text box, il manque la partie qui les envoies vers les taches outlook, si quelqu'un pourrais m'aider.
Merci
Je crois que je dois pas etre loin:
Sub AjoutTacheII()
Dim myolApp As New Outlook.Application
Dim myItem As Outlook.TaskItem
Dim objName As Outlook.Namespace
Dim objFolder
Set objName = myolApp.GetNamespace("MAPI")
Set objFolder = objName.GetDefaultFolder(olFolderTasks) '13
Dim dl&
dl = Cells(Rows.Count, 2).End(xlUp).Row
For i = 4 To dl
Set myItem = myolApp.CreateItem(olTaskItem) '3
myItem.Subject = Cells(i, "B")
myItem.DueDate = Cells(i, "C")
myItem.Assign
Set myItem = Nothing
Next i
Set myolApp = Nothing
End SubMais rien ne ce passe dans Outlook...
Quelqu'un a une idée ?
Bonjour,
désolé, je n'avais pas compris le sens puisque tu parle d'importer des tâches
Alors que tu le fait d'Excel et c'est donc EXPORTER dans Outlook
Pour ce qui est de ton dernier code, tu ne crées pas l'instance d'Outlook
d.deneys a écrit :Je crois que je dois pas etre loin:
Sub AjoutTacheII() Dim myolApp As New Outlook.Application Dim myItem As Outlook.TaskItem Dim objName As Outlook.Namespace Dim objFolder Set objName = myolApp.GetNamespace("MAPI") Set objFolder = objName.GetDefaultFolder(olFolderTasks) '13 Dim dl& dl = Cells(Rows.Count, 2).End(xlUp).Row For i = 4 To dl Set myItem = myolApp.CreateItem(olTaskItem) '3 myItem.Subject = Cells(i, "B") myItem.DueDate = Cells(i, "C") myItem.Assign Set myItem = Nothing Next i Set myolApp = Nothing End SubMais rien ne ce passe dans Outlook...
Quelqu'un a une idée ?
Essaye avec
Set myolApp = New Outlook.Applicationau début de ton code après les DIM
A+