OVH Cloud OVH Cloud

Problème avec macro pour créer des taches dans Outlook

12 réponses
Avatar
géjoun.
Bonjour,

Dans les archives, j'ai trouvé cette macro proposé par Pierre Fauconnier
pour créer des taches dans Outlook à partir d'Excel (message original
http://minilien.com/?RlD9dH7sQ3).


Sub Creer_TacheOutlook()
' Dimensionner l'objet Outlook
Dim oOutlook As Outlook.Application
' Dimensionner la tâche
Dim oTache As TaskItem

' 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("a1") ' Echéance
.Subject = Range("b1") ' Objet
.Body = Range("c1") ' texte explicatif
.Save ' Enregistrer la nouvelle tâche
End With
' vider les objets pour libérer la mémoire
Set oTache = Nothing
Set oOutlook = Nothing
End Sub


Et apparement, la personne qui cherchait le moyen de faire ça y est arrivé
avec cette macro; alors que moi, dès que j'essaie de l'exécuter, ça
m'affiche une erreur de compilation 'Type défini par l'utilisateur non
défini' avec en surbrillance cette ligne 'oOutlook As Outlook.Application';
et lorsque je clique sur 'OK', ça me fait apparaitre la première ligne 'Sub
Creer TacheOutlook()' en surbrillance...

Petites précisons... Je suis sous office XP, j'ai bien rajouté à mes
références dans l'éditeur VBE 'Microsoft Office 10.0 Object Library'; et,
par contre, comparé à la macro originale, j'ai rajouté un underscore _ entre
Creer et TacheOutlook à la 1ère ligne, parce qu'autrement, excel me détecte
pas la macro (il m'affiche la 1ère ligne en rouge; mais j'y connais pas
grand chose en VBA non plus, alors c'est peut être une boulette de faire
ça); et pour finir, mais je suppose que là, j'ai quand même juste, c'est
dans un module standard que j'ai collé la macro.

Si quelqu'un peut éclairer ma lanterne...

Merci!

--
__________________________
Géjoun.
dam-mail2004@ifrance.com
····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

10 réponses

1 2
Avatar
Nicolas B.
Salut géjoun,

Cocher la référence Office ne suiffit pas. Il faut aussi cocher :
Microsoft Outlook N Object Library


A+
Nicolas B.


géjoun. wrote:
Bonjour,

Dans les archives, j'ai trouvé cette macro proposé par Pierre Fauconnier
pour créer des taches dans Outlook à partir d'Excel (message original
http://minilien.com/?RlD9dH7sQ3).


Sub Creer_TacheOutlook()
' Dimensionner l'objet Outlook
Dim oOutlook As Outlook.Application
' Dimensionner la tâche
Dim oTache As TaskItem

' 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("a1") ' Echéance
.Subject = Range("b1") ' Objet
.Body = Range("c1") ' texte explicatif
.Save ' Enregistrer la nouvelle tâche
End With
' vider les objets pour libérer la mémoire
Set oTache = Nothing
Set oOutlook = Nothing
End Sub


Et apparement, la personne qui cherchait le moyen de faire ça y est arrivé
avec cette macro; alors que moi, dès que j'essaie de l'exécuter, ça
m'affiche une erreur de compilation 'Type défini par l'utilisateur non
défini' avec en surbrillance cette ligne 'oOutlook As Outlook.Application';
et lorsque je clique sur 'OK', ça me fait apparaitre la première ligne 'Sub
Creer TacheOutlook()' en surbrillance...

Petites précisons... Je suis sous office XP, j'ai bien rajouté à mes
références dans l'éditeur VBE 'Microsoft Office 10.0 Object Library'; et,
par contre, comparé à la macro originale, j'ai rajouté un underscore _ entre
Creer et TacheOutlook à la 1ère ligne, parce qu'autrement, excel me détecte
pas la macro (il m'affiche la 1ère ligne en rouge; mais j'y connais pas
grand chose en VBA non plus, alors c'est peut être une boulette de faire
ça); et pour finir, mais je suppose que là, j'ai quand même juste, c'est
dans un module standard que j'ai collé la macro.

Si quelqu'un peut éclairer ma lanterne...

Merci!



Avatar
géjoun.
De ces petits doigts, Nicolas B. [] a
tapoté:

OK, tu m'as devancé, mais à force de chercher, je m'en suis aperçu, et j'ai
aussi coché l'autre, et là, la macro fonctionne!
Par contre, je n'arrive pas à trouver (si c'est possible???) comment
affecter 2 cellules pour l'objet dans la macro.
Par exemple, je voudrais que la ligne objet me renvoie le contenu de la
cellule B1 et le contenu de la cellule D4 aussi, avec un espace entre les 2
si possible.
J'ai essayé en tapant ça dans la macro

Subject = Range("b1"&""&"d4") ' Objet

mais ça ne fonctionne pas, alors, est ce possible en VBA? (sur le même
principe que dans excel, on peut renvoyer le contenu de plusieurs cellules
dans la même en faisant ="b1"&""&"d4"

De plus, j'ai trouvé comment activer le rappel (par la ligne .ReminderSet True) mais je ne sais pas comment définir le jour du rappel et son heure,
alors si on pouvait me renseigner sur ça...

Merci!


--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

|| Salut géjoun,
||
|| Cocher la référence Office ne suiffit pas. Il faut aussi cocher :
|| Microsoft Outlook N Object Library
||
||
|| A+
|| Nicolas B.
Avatar
Nicolas B.
Pour la première question, il suffit de manipuler les chaînes de
caractères :
Subject = Range("b1") & " " & range("d4")


A+
Nicolas B.

géjoun. wrote:
De ces petits doigts, Nicolas B. [] a
tapoté:

OK, tu m'as devancé, mais à force de chercher, je m'en suis aperçu, et j'ai
aussi coché l'autre, et là, la macro fonctionne!
Par contre, je n'arrive pas à trouver (si c'est possible???) comment
affecter 2 cellules pour l'objet dans la macro.
Par exemple, je voudrais que la ligne objet me renvoie le contenu de la
cellule B1 et le contenu de la cellule D4 aussi, avec un espace entre les 2
si possible.
J'ai essayé en tapant ça dans la macro

Subject = Range("b1"&""&"d4") ' Objet

mais ça ne fonctionne pas, alors, est ce possible en VBA? (sur le même
principe que dans excel, on peut renvoyer le contenu de plusieurs cellules
dans la même en faisant ="b1"&""&"d4"

De plus, j'ai trouvé comment activer le rappel (par la ligne .ReminderSet > True) mais je ne sais pas comment définir le jour du rappel et son heure,
alors si on pouvait me renseigner sur ça...

Merci!




Avatar
ru-th
Salut

pas testé

Subject = Range("b1").text & " " & range("d4").text
ou
Subject = [b1] & " " & [d4]

a+
rural thierry
géjoun." a écrit dans le message de news:
#
De ces petits doigts, Nicolas B. [] a
tapoté:

OK, tu m'as devancé, mais à force de chercher, je m'en suis aperçu, et
j'ai

aussi coché l'autre, et là, la macro fonctionne!
Par contre, je n'arrive pas à trouver (si c'est possible???) comment
affecter 2 cellules pour l'objet dans la macro.
Par exemple, je voudrais que la ligne objet me renvoie le contenu de la
cellule B1 et le contenu de la cellule D4 aussi, avec un espace entre les
2

si possible.
J'ai essayé en tapant ça dans la macro

Subject = Range("b1"&""&"d4") ' Objet

mais ça ne fonctionne pas, alors, est ce possible en VBA? (sur le même
principe que dans excel, on peut renvoyer le contenu de plusieurs cellules
dans la même en faisant ="b1"&""&"d4"

De plus, j'ai trouvé comment activer le rappel (par la ligne .ReminderSet
True) mais je ne sais pas comment définir le jour du rappel et son heure,
alors si on pouvait me renseigner sur ça...

Merci!


--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

|| Salut géjoun,
||
|| Cocher la référence Office ne suiffit pas. Il faut aussi cocher :
|| Microsoft Outlook N Object Library
||
||
|| A+
|| Nicolas B.





Avatar
Philippe.R
Bonjour,
Essaye :
Subject = Range("b1").value & " " & Range("d4").value
ou
Subject = [b1] & " " & [d4]
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"géjoun." a écrit dans le message de
news:%
De ces petits doigts, Nicolas B. [] a
tapoté:

OK, tu m'as devancé, mais à force de chercher, je m'en suis aperçu, et j'ai
aussi coché l'autre, et là, la macro fonctionne!
Par contre, je n'arrive pas à trouver (si c'est possible???) comment
affecter 2 cellules pour l'objet dans la macro.
Par exemple, je voudrais que la ligne objet me renvoie le contenu de la
cellule B1 et le contenu de la cellule D4 aussi, avec un espace entre les 2
si possible.
J'ai essayé en tapant ça dans la macro

Subject = Range("b1"&""&"d4") ' Objet

mais ça ne fonctionne pas, alors, est ce possible en VBA? (sur le même
principe que dans excel, on peut renvoyer le contenu de plusieurs cellules
dans la même en faisant ="b1"&""&"d4"

De plus, j'ai trouvé comment activer le rappel (par la ligne .ReminderSet > True) mais je ne sais pas comment définir le jour du rappel et son heure,
alors si on pouvait me renseigner sur ça...

Merci!


--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

|| Salut géjoun,
||
|| Cocher la référence Office ne suiffit pas. Il faut aussi cocher :
|| Microsoft Outlook N Object Library
||
||
|| A+
|| Nicolas B.





Avatar
Nicolas B.
Et pour le reminder, les dates sont à affecter à ReminderTime sous forme
de numérique comme dans Excel. Exemple pour déclencher l'alerte une
heure après la création de la tâche :
.ReminderTime = Now + 1 / 24
.ReminderSet = True


A+
Nicolas B.


géjoun. wrote:
De ces petits doigts, Nicolas B. [] a
tapoté:

OK, tu m'as devancé, mais à force de chercher, je m'en suis aperçu, et j'ai
aussi coché l'autre, et là, la macro fonctionne!
Par contre, je n'arrive pas à trouver (si c'est possible???) comment
affecter 2 cellules pour l'objet dans la macro.
Par exemple, je voudrais que la ligne objet me renvoie le contenu de la
cellule B1 et le contenu de la cellule D4 aussi, avec un espace entre les 2
si possible.
J'ai essayé en tapant ça dans la macro

Subject = Range("b1"&""&"d4") ' Objet

mais ça ne fonctionne pas, alors, est ce possible en VBA? (sur le même
principe que dans excel, on peut renvoyer le contenu de plusieurs cellules
dans la même en faisant ="b1"&""&"d4"

De plus, j'ai trouvé comment activer le rappel (par la ligne .ReminderSet > True) mais je ne sais pas comment définir le jour du rappel et son heure,
alors si on pouvait me renseigner sur ça...

Merci!




Avatar
géjoun.
De ces petits doigts, Nicolas B. [] a
tapoté:

OK, merci à tous pour ces précisions, ça fonctionne!
Encore un dernier détail, est-ce possible dans le texte explicatif de
renvoyer une zone de cellules comme dans excel on peut faire a1:a12?
Par exemple:

.Body = Range("c1:c20") ' texte explicatif

Merci!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


|| Pour la première question, il suffit de manipuler les chaînes de
|| caractères :
|| Subject = Range("b1") & " " & range("d4")
||
||
|| A+
|| Nicolas B.
Avatar
géjoun.
De ces petits doigts, géjoun. [] a tapoté:


Personne ne sait si c'est possible de définir une plage de cellules plutôt
qu'une ou plusieurs cellules?

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|| OK, merci à tous pour ces précisions, ça fonctionne!
|| Encore un dernier détail, est-ce possible dans le texte explicatif de
|| renvoyer une zone de cellules comme dans excel on peut faire a1:a12?
|| Par exemple:
||
|| .Body = Range("c1:c20") ' texte explicatif
||
|| Merci!
Avatar
JpPradier
Bonjour Géjoun

Il doit y avoir un exemple sur excelabo :

www.excelabo.net

j-p
Avatar
JpPradier
Tiens, plus précis :-))

http://www.excelabo.net/xl/sortir.php#excelversmail

j-p
1 2