Bonjour
J'ai créé une macro permettant à partir un fichier excel de créé des tache dans outlook.
Elle fonctionne, sauf quand je veux mettre deux textes de deux deux cellules (du fichier source) dans une variable pour avoir l'objet de la tache (ligne 38 du code) cela déclenche une erreur d'execution 424 objet requis.
si j’écris que : Set type_tâche = Objet_Tache 'wsSource.Cells(i, "D"), la macro fonctionne correctement. sauf que je n'ai pas toute les informations de l'objet de la tache
.
si vous avez une idée du problème ..... merci d'avance
cordialement
J'ai créé une macro permettant à partir un fichier excel de créé des tache dans outlook.
Elle fonctionne, sauf quand je veux mettre deux textes de deux deux cellules (du fichier source) dans une variable pour avoir l'objet de la tache (ligne 38 du code) cela déclenche une erreur d'execution 424 objet requis.
VB:
Option Explicit
Dim i As Integer
Dim date_tâche As Range, lib_tâche As Range, type_tâche As Range, Personne_BE As Range, date_tâche_fin As Range, Avancement As Range
Dim Objet_Tache As Range
Dim olApp As Object, tâche As Object
Dim périodicité As Object
Dim destinataire As String
' Déclarer les variables
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim wbTravail As Workbook
Dim wsTravail As Worksheet
Sub créa_tâche()
Dim derl As Long
' Initialiser Outlook
destinataire = "xxxx@xxxx.fr"
Set olApp = CreateObject("Outlook.Application")
'Set olApp = Outlook.Application
' Définir le classeur source
Set wbSource = Workbooks.Open("\\SDC18-VM-DC\general\5-Services\05-BUREAU D'ETUDES\Organisation du BE Plannification des tâches V2.xlsx") ' fichier dans le reseau Organisation du BE Plannification des tâches V2.xlsx
' Définir la feuille source
Set wsSource = wbSource.Sheets("Tâches BE")
derl = wsSource.Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne du fichier source
For i = 2 To derl
'-- affectation des champs
'Objet de la tache
Set Objet_Tache = wsSource.Cells(i, "D") & " " & wsSource.Cells(i, "G")
Set type_tâche = Objet_Tache 'wsSource.Cells(i, "D") '& " " & wsSource.Cells(i, "G") 'type_tache= Objet de la tache wsSource.Cells(i,colonne).Value verifier la position dans le classeur organisation BE + feuille tache
'Objet de la tache = N°affaire(D) + Client(F) + Machine(E) + Tache(G)
'Corps de la tache
Set lib_tâche = wsSource.Cells(i, "N") '& " Nombre d'heures à passer : " & wsSource.Cells(i, "H") 'lib_tache=Corps de la tache
'Corps de la tache = Commentaire(N) + nb heure à passer(H)
'date de debut de la tache
Set date_tâche_fin = wsSource.Cells(i, "I") 'Jour debut
'date de debut = date d'enregistrement
'date de fin (echéance .dueDATE) = Date Objectif
'Personne qui fait la tache
Set Personne_BE = wsSource.Cells(i, "B")
Set Avancement = wsSource.Cells(i, "J")
'faire un test sur "xxxxx" dans la colonne Personne BE pour pour générer la tache then
'-- génération d'une tâche selon conditions
If lib_tâche.Value <> Empty _
And Avancement.Value < 100 _
And IsDate(date_tâche_fin.Value) _
And Personne_BE.Value = "xxxxxxx" _
And Personne_BE.Comment Is Nothing Then 'verifie qu'il n'y a pas de commentaire sue la celulle du nom
'-- génération tâche avec rappel
Set tâche = olApp.CreateItem(3) '3 représente une tâche
With tâche
.Subject = type_tâche
.Body = lib_tâche
.DueDate = date_tâche_fin.Value
'.DueDate = DateAdd("ww", 1, .StartDate) 'échéance = date de début + 1 semaine
.StartDate = DateAdd("ww", -2, .DueDate) 'date début de la tâche date de fin - 2 semaines
.Status = 1 '0 = non démarré, 1 = en cours, 2 = terminé, 3 = en attente, 4 = différé
'.DateCompleted 'date de fin force status à 2
.Importance = 1 '0 = basse, 1 = normal, 2 = haute
'.contactNames
.ReminderSet = True 'activation rappel
.ReminderTime = .StartDate - 7 + TimeValue("9:00AM") 'date de rappel si activé
Set périodicité = .GetRecurrencePattern() 'récurrence tâche par défaut toutes les semaines
périodicité.NoEndDate = False 'fin de la tâche après répétitions
périodicité.Occurrences = 1 'nombre de répétitions de la tâche
.Save
End With
'-- ajout commentaire date de création de la tâche
Personne_BE.AddComment "tâche crée le " & Date
End If 'lib_tache.value ....
Next i
Set olApp = Nothing
End Sub
si j’écris que : Set type_tâche = Objet_Tache 'wsSource.Cells(i, "D"), la macro fonctionne correctement. sauf que je n'ai pas toute les informations de l'objet de la tache
.
si vous avez une idée du problème ..... merci d'avance
cordialement