Copier/coller de Excel vers Outlook

boisverny Messages postés 2 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 7 novembre 2008 - 4 nov. 2008 à 10:30
boisverny Messages postés 2 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 7 novembre 2008 - 7 nov. 2008 à 09:46
Bonjour,
Je suis en Office 2003 (et VBA 6.3) et je veux faire un copier/coller en VBA excel de cellules Excel vers un message Outlook, en conservant la mise en forme des cellules (présentées en tableau, avec couleurs, font,...). Ca marche bien si je fais CTRL/C-CTRL-V à la main, et je voudrais l'automatiser :



Extrait du code :
...
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.createitem(0)
MonMessage.Subject = "mon objet" 


'copie dans le presse papier (exemple test)
Range("A1:B5").Select
Selection.Copy

' Récupérer la zone copiée dans le mail ???

Ce code marche, mais je ne récupère que le contenu en format texte, sans mise en forme
'Dim MyData As DataObject
'Set MyData = New DataObject
'MyData.GetFromClipboard
'MonMessage.htmlbody = MyData.GetText(1)
'MonMessage.Display

J'ai essayé çà :
    If (Clipboard.ContainsText(TextDataFormat.HTML)) Then
        returnHtmlText = Clipboard.GetText(TextDataFormat.HTML)
    End If

mais j'ai une erreur 424 : objet requis
Même erreur avec l'instruction Clipboard.clear, juste pour voir si je peux manipuler le Clipboard

Est-ce la bonne piste? Mais qu'est ce qui ne va pas ?     
Faut-il déclarer une librairie manquante pour utiliser l'objet Clipboard ? Laquelle?
Merci de votre aide

1 réponse

boisverny Messages postés 2 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 7 novembre 2008
7 nov. 2008 à 09:46
Bonjour,
Aucune réponse, tout le monde sèche ???
J'ai continué à chercher seul. J'ai trouvé (presque) la solution : utiliser Word2003 comme éditeur de mail. On peut alors faire un .Paste dans l'objet mail déclaré comme Word.Document. Et çà marche...

Sauf que ce sera utilisé par plusieurs personnes, qui n'ont pas forcément Word comme éditeur de mail par défaut. Je veux donc par macro VBA, mettre Word 2003 comme éditeur par défaut le tps de générer le mail, et remettre ensuite la valeur initiale.
A la main, c'est dans Outils/Option/Format de Courrier "Utiliser Word 2003 pour modifier les messages"
Je n'arrive pas à positionner cette option par macro

Une idée ?

Merci.
0
Rejoignez-nous