Import tache Outlook depuis Excel

d.deneys

XLDnaute Junior
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
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

Merci Staple1600
J'ai déjà parcouru beaucoup de ces FAQ mais c'est bien souvent personnalisé a ce que les gens veulent en faire,
Je ne sais pas comment attribuer les données des cellules au bon emplacement des tâches outlook et comment les nommer (en vba).

je crois que le début de code ca doit être:
en ajoutant une référence à
Microsoft Outlook Object Library

Sub AjoutTache()
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
Set myItem = myolApp.CreateItem(olTaskItem) '3
myItem.Subject = "Tache N° 1"
myItem.DueDate = Now
myItem.Assign
Set myItem = Nothing
Set myolApp = Nothing
End Sub

Mais comment faire référence a la start date, l'objet, la note, le lieu etc.
C'est surtout ça que je ne sais pas.
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

ok donc je suis bon sur mon début de code
Sub AjoutTache()
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
Set myItem = myolApp.CreateItem(olTaskItem) '3
myItem.Subject = "Tache N° 1"
myItem.DueDate = Now
myItem.Assign
Set myItem = Nothing
Set myolApp = Nothing
End Sub

Mais comment dire en vba que
les objets des taches ce trouvent en colonne b a partir de b4 jusqu'a b550
les start date ce trouvent en colonne c a partir de c4 jusqu'à c550
et que le contenu de la colonne H a partir de h4 jusqu'à h550 doit aller dans Note

C'est vraiment surtout çà que je n'arrive pas a faire

J'ai pres de 150 taches qui sont sous forme csv que je doit incorporé dans outlook, je fait tout ca manuellement et je voudrais trouver le moyen d'automatiser tout ça.
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

j'ai essayer avec:
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("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 Sub

Mais échec lol
 

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re

EDITION: Ton dernier code soumis cherche à inscrire des taches existantes dans Outlook dans des plages de cellules.
(alors que toi tu veux créer des nouvelles taches dans Outlook à partir de plages de celules)


Il te faudra créer un boucle qui parcourt tes cellules, un truc du genre
Code:
'Mais comment dire en vba que
'les objets des taches ce trouvent en colonne b a partir de b4 jusqu'a b550
'les start date ce trouvent en colonne c a partir de c4 jusqu'à c550
'et que le contenu de la colonne H a partir de h4 jusqu'à h550 doit aller dans Note
Sub test()
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 Sub
Je te laisse essayer d'adapter ce code de test avec le code VBA de Sub AjoutTache()
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re


Je te rappelle que je ne peux pas tester mais au jugé, ceci devrait produire quelque chose
Je te laisse tester.
Code:
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 Sub
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

le code
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 Sub

Fonctionne, reste plus qu'a trouver comment l’attribuer a outlook au lieu de text box.
Je cherche, je cherche lol
Merci bcp en tout cas
 
Dernière édition:

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

Mes excuses mon internet me fait défaut aujourd'hui.
Le code ne fonctionne pas, rien n'est importé dans Outlook.
 

Pièces jointes

  • Test Outlook import.xlsm
    34.5 KB · Affichages: 161
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re


Tu as bien coché la référence à Outlook dans VBE?
Essaies cette simple macro (il faut que tu ais des valeurs en B4 et C4)
Est-ce qu'une tâche est crée dans Outlook?
Code:
Sub AjoutTacheTEST()
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

Set myItem = myolApp.CreateItem(olTaskItem) '3
myItem.Subject = Cells(4, "B")
myItem.DueDate = Cells(4, "C")
myItem.Assign

Set myItem = Nothing
Set myolApp = Nothing
End Sub
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

J'ai trouver:
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
myItem.ReminderSet = False
myItem.Save
Next i
Set myolApp = Nothing
End Sub

Par contre il reste quelques petites choses a modifier:
La date de création ce met a aujourd'hui et ne fait pas référence a myItem.DueDate = Cells(i, "C")
Le Texte en colonne H ne ce met pas dans Note
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
294

Statistiques des forums

Discussions
312 447
Messages
2 088 496
Membres
103 871
dernier inscrit
julienleburton