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
 

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re


Allez je suis dans un bonjour
Retires les mains du cambouis et testes ceci
Et ne me dis pas que cela ne marche pas (j'ai testé sur mon notebook) ;)
Chausse juste tes lunettes et lis tout attentivement
Code:
Sub ExportToOutlook()
    Dim OL As Outlook.Application
    Dim olAppt As TaskItem
    Dim NS As Outlook.Namespace
    Dim colItems As Outlook.Items
    Dim olApptSearch As TaskItem
    Dim r As Long, sSubject As String, sBody As String, sCateg As String
    Dim dStartDate As Date, dDueDate As Date
    Dim sSearch As String, bOLOpen As Boolean
    Dim dl&
   On Error Resume Next
    Set OL = GetObject(, "Outlook.Application")
    bOLOpen = True
    If OL Is Nothing Then
        Set OL = CreateObject("Outlook.Application")
        bOLOpen = False
    End If
    Set NS = OL.GetNamespace("MAPI")
    Set colItems = NS.GetDefaultFolder(olFolderTasks).Items
    dl = Cells(Rows.Count, "B").End(xlUp).Row
    For r = 4 To dl
        sSubject = Cells(r, "B").Value
        dStartDate = Cells(r, "C").Value
        sCateg = Cells(r, "D").Value
        sBody = Cells(r, "E").Value & Chr(10) & Cells(r, "F").Value & Chr(10) _
        & Cells(r, "G").Value & Chr(10) & Cells(r, "H").Value
        sSearch = "[Subject] = " & sQuote(sSubject)
        Set olApptSearch = colItems.Find(sSearch)
        If olApptSearch Is Nothing Then
            Set olAppt = OL.CreateItem(olTaskItem)
            olAppt.Subject = sSubject
            olAppt.Categories = sCateg
            olAppt.StartDate = dStartDate
            olAppt.Body = sBody
            olAppt.Close olSave
        End If
    Next r
    If bOLOpen = False Then OL.Quit
End Sub
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

sSubject = Cells(r, "B").Value
dStartDate = Cells(r, "C").Value
sBody = Cells(r, "H").Value
sCategories = Cells(r, "D").Value
sSearch = "[Subject] = " & sQuote(sSubject)
Set olApptSearch = colItems.Find(sSearch)
If olApptSearch Is Nothing Then
Set olAppt = OL.CreateItem(olTaskItem)
olAppt.Subject = sSubject
olAppt.StartDate = dStartDate
olAppt.Body = sBody
olAppt.Categories = sCategories
olAppt.Close olSave

Je venais juste de trouver pour les catégories :D
 

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

Sans titre.jpg

:'( Et si, chez moi pas marche lol
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    76.7 KB · Affichages: 139
  • Sans titre.jpg
    Sans titre.jpg
    76.7 KB · Affichages: 133

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re


Encore une fois sois attentif!
Je n'ai modifié que la macro nommée ExportToOutlook, non?
Mais il me semble qu'il y a avait une fonction dans le code initial...
Voir le message #27

Donc encore un fois, concentration et lunettes sont de mises ici. ;)

EDITION: Tu n'as pas compris à quoi correspond dl?
dl=dernière ligne de la colonne B
Donc si tu as quelquechose en B250 alors dl sera égale à 250
Et si un jour, ton fichier est à jour et qu'il y a quelque chose en B500
alors dl=500
etc. etc..
 
Dernière édition:

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

trouver:
Code:
Sub ExportToOutlook()

Dim OL As Outlook.Application
Dim olAppt As TaskItem
Dim NS As Outlook.Namespace
Dim colItems As Outlook.Items
Dim olApptSearch As TaskItem
Dim r As Long, sSubject As String, sBody As String
Dim dStartDate As Date, dDueDate As Date
Dim sSearch As String, bOLOpen As Boolean

On Error Resume Next
Set OL = GetObject(, "Outlook.Application")
bOLOpen = True
If OL Is Nothing Then
Set OL = CreateObject("Outlook.Application")
bOLOpen = False
End If
Set NS = OL.GetNamespace("MAPI")
Set colItems = NS.GetDefaultFolder(olFolderTasks).Items
For r = 4 To 8 'ici adaptes selon la configuration de ton fichier
sSubject = Cells(r, "B").Value
dStartDate = Cells(r, "C").Value
sBody = Cells(r, "E").Value & Chr(10) & Cells(r, "F").Value & Chr(10) _
        & Cells(r, "G").Value & Chr(10) & Cells(r, "H").Value
sCategories = Cells(r, "D").Value
sSearch = "[Subject] = " & sQuote(sSubject)
Set olApptSearch = colItems.Find(sSearch)
If olApptSearch Is Nothing Then
Set olAppt = OL.CreateItem(olTaskItem)
olAppt.Subject = sSubject
olAppt.StartDate = dStartDate
olAppt.Body = sBody
olAppt.Categories = sCategories
olAppt.Close olSave
End If
Next r
If bOLOpen = False Then OL.Quit
End Sub

Function sQuote(sTextToQuote)
sQuote = Chr(34) & sTextToQuote & Chr(34)
End Function

Par contre le fait que la tache est en rouge, c'est pcq l'échéance est a la même date que la dStartDate, pour que ca ne sois pas en rouge il faut qu'il n'y ai pas d'échéance je crois
 

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re

Je recapépéte ;)

Relis tes messages (notamment celui que j'ai mis en lien dans mon précédent message)
Il n'y aurait pas des dates en colonnes C, par hasard ? :rolleyes:
Je dis cela parce que tu écrivais dans ce message...
Set myItem = myolApp.CreateItem(olTaskItem) '3
myItem.Subject = Cells(i, "B")
myItem.DueDate = Cells(i, "C")
Donc il suffit d'adapter le dernier code en conséquence, non ?

(en colonne B on a StartDate et en colonne C DueDate)
 
Dernière édition:

d.deneys

XLDnaute Junior
Re : Import tache Outlook depuis Excel

il n'y a pas de date dans la colonne B, c'est juste la référence de la tache,
Comme date dans excel il y a juste la date a laquelle la demande a été faite, mais cela ne veux pas dire que c'est la date a laquelle elle vas être exécutée. car s'il y avait une date d'exécution il n'y aurait pas de tache, mais celle ci serait dans l'agenda. Pour moi tout repose dans le fait que il ne faut pas qu'il y ai de date dans l echeance ou de start date, mais je crois qu'il y a un champ qui s'appelle créer le, c'est la qu'il faudrait faire apparaître la date qui est en colonne C et aucune autre date reste a trouver comment vba nomme ce champ. Je cherche avec mes zieux qui ne tiennent plus qu a moitier ouvert xd
 

Staple1600

XLDnaute Barbatruc
Re : Import tache Outlook depuis Excel

Re


Exact.:eek:
Moi aussi j'ai les yeux qui flanchent. Je vais donc au dodo
Essaies néanmoins ceci.
Et bonne nuit sans tâches ;)
Code:
Sub ExportToOutlook
'remettre le code initial
Set olApptSearch = colItems.Find(sSearch)
        If olApptSearch Is Nothing Then
            Set olAppt = OL.CreateItem(olTaskItem)
            olAppt.Subject = sSubject
            olAppt.Categories = sCateg
            olAppt.StartDate = dStartDate
            olAppt.DueDate = dStartDate + 1'ici la modif
            olAppt.Body = sBody
            olAppt.Close olSave
        End If
'remettre le code initial
End Sub
 

Regueiro

XLDnaute Impliqué
Re : Import tache Outlook depuis Excel

Bonsoir à Tous.
J'ai suivie votre discussion avec un grand intérêt.
En PJ une solution pour les dates, échéances, etc.
Je continue de mon côté et on peux regarder demain.
Bonne soirée
A+
 

Pièces jointes

  • EXCEL TACHES OUTLOOK JRE V01.xlsm
    41.1 KB · Affichages: 127

Discussions similaires

Réponses
2
Affichages
241

Statistiques des forums

Discussions
312 231
Messages
2 086 452
Membres
103 215
dernier inscrit
anass moufik