mail avec Microsoft-Office Outlook 2003

Piboulet

XLDnaute Nouveau
Bonjour le Forum
J’ai 1 problème avec une macro qui marchait très bien sur mon micro et celui d’un collègue via un dossier partagé avec :
Microsoft Outlook 2002 SP3
Je dois maintenant la faire fonctionner (suite changement de matos et logiciel) sur le micro de ce collègue doté maintenant de :
Microsoft-Office Outlook 2003
Mais moi je ne change pas!!
En fouillant sur le forum, j’ai essayé ce qui suit, mais je veux faire partir dans le corps du message une partie du tableau excel A2 :I22
La boite Email s’ouvre, mais je ne sais pas joindre cette zone selectionnée pour expédier
Sub monmail()
Dim Retour As Integer
Dim MonOutlook As New Outlook.Application, MonMessage As Object

Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(0)
ThisWorkbook.Sheets("Saisie").Activate
ActiveSheet.Range("A2:I22").Select ' la plage de cellules à envoyer
With MonMessage
.To = Range("M8")
.cc = Range("O8")
.Subject = ThisWorkbook.Sheets("Paramètres").Range("C7") & ThisWorkbook.Sheets("Saisie").Range("C3") ''& " au " & Date & "."
.Body = ThisWorkbook.Sheets("Paramètres").Range("C8") & vbLf _
& ThisWorkbook.Sheets("Paramètres").Range("C9") & Date & "." & vbLf _
& ThisWorkbook.Sheets("Paramètres").Range("C10")
.Display ' on affiche juste le message
End With
Set MonMessage = Nothing
Set MonOutlook = Nothing
End Sub

Deuxième PB : De plus, une fois le fichier utilisé (en réseau) par mon collègue, cela ne fonctionne plus du tout sur mon micro, même la partie sans Email. Je diagnostique un pb de bibliothèque que je ne sais pas résoudre.(Manquant : Microsoft Outlook 11.0 Object Library)
Si quelqu’un peut m’aider…MERCI
 

ledzepfred

XLDnaute Impliqué
Re : mail avec Microsoft-Office Outlook 2003

bonsoir,

déjà dans un premier temps on va résoudre ton pb de référence manquante qui génère une erreur de compilation : tu cliques sur Outils références dans l'éditeur VBA (Alt+F11) :
- la référence microsoft outlook 11 object library est cochée mais identifiée comme manquante : tu la recherches parmi les références cochées et il suffit de décocher cette référence et de cliquer sur OK.

Vois par la suite si ton code fonctionne et si le tableau est bien généré dans le corps du message.

A+
 

Piboulet

XLDnaute Nouveau
Re : mail avec Microsoft-Office Outlook 2003

Merci ledzepfred. Je teste cela dés demain car à la maison j'ai outlook express!
Merci Hasco, je tenterai de l'adapter, mais j'ai des doutes car les versions xl ont l'air trés proches, à défaut d'être absolument idenique. Quoique, l'activation de la library 11.0 cartonne la 10.0, alors le pb rejailli dans excel alors qu'au départ c'est office Outlook 2003. Tout cela est il méli mélo?
En ce qui concerne la plage que je souhaite importer dans le corps du message, certes je la sélectionne, mais je ne dis pas à la macro de la coller dans le corps et je ne sais pas le faire.
Encore merci
 

ledzepfred

XLDnaute Impliqué
Re : mail avec Microsoft-Office Outlook 2003

re...

Pour l'envoi par email de plage de cellule je sais que c'est possible avec outlook express voir code de RolandM que je salue au passage dans ce fil :https://www.excel-downloads.com/threads/formater-le-texte-de-outlook-express-par-excel.107327/.
A adapter à Outlook 2003

Il y a d'autres exemples sur ce forum, fais une recherche avec les mots clés envoi email plage cellule et tu trouveras peut-etre ton bonheur.

A+
 

ledzepfred

XLDnaute Impliqué
Re : mail avec Microsoft-Office Outlook 2003

re...

Pour l'envoi de la plage de données, essayes ceci:

Sub monmail()
Dim Retour As Integer
Dim MonOutlook As New Outlook.Application, MonMessage As Object

Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(0)
ThisWorkbook.Sheets("Saisie").Activate
ActiveSheet.Range("A2:I22").copy ' la plage de cellules à envoyer
With MonMessage
.To = Range("M8")
.cc = Range("O8")
.Subject = ThisWorkbook.Sheets("Paramètres").Range("C7") & ThisWorkbook.Sheets("Saisie").Range("C3") ''& " au " & Date & "."
.Body = ThisWorkbook.Sheets("Paramètres").Range("C8") & vbLf _
& ThisWorkbook.Sheets("Paramètres").Range("C9") & Date & "." & vbLf _
& ThisWorkbook.Sheets("Paramètres").Range("C10")
.Display ' on affiche juste le message, sur le message clic droit et coller puis envoyer
End With
Set MonMessage = Nothing
Set MonOutlook = Nothing
End Sub

a+
 

Piboulet

XLDnaute Nouveau
Re : mail avec Microsoft-Office Outlook 2003

Bonjour
Pour Hasco : Reste à adapter le code à mon cas.
Pour Ledzepfred; cela a l'air pas mal. Reste à tester sur site.
Toutefois, si quelqu'un a une idée pour éviter de faire "coller" manuellement, je suis preneur.
 

Piboulet

XLDnaute Nouveau
Re : mail avec Microsoft-Office Outlook 2003

Hasco, j'utilisais les éléments conseillés avec outlook 2002 avec succés depuis 1 an, mais cela ne fonctionne pas avec Microsoft Office Outlook 2003;
J'ai tenté de rajouter les éléments ci après , mais cela ne fait ni chaud ni froid à mamacro. Déjà, cela ne bloque pas!
Dim email As String
email = ActiveSheet.Range("A2:I23")
.Recipients.Add (email)
Bonne journée

si je mets :
.Body=email, cela marche mais en définissant des cellules isolées éventuellement concaténées dans le genre : email = ActiveSheet.Range("A2")&ActiveSheet.Range("A3") etc..
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : mail avec Microsoft-Office Outlook 2003

bonour piboulet hasco, le forum

a priori pas d'autres solutions que celle que je te propose (sauf ajouter les valeurs de la plage dans une variable qui définit une part du corps de message mais bon pas de mise en forme comme un tableau)

As-tu essayé la méthode sendkeys proposé par RolandM dans le fil dont je t'ai fourni le lien?

A+
 

Piboulet

XLDnaute Nouveau
Re : mail avec Microsoft-Office Outlook 2003

Bonjour ledzepfred, le Forum
Comme tu me l'as conseillé, j'ai creusé la procédure SendKeys. Cela fonctionne assez bien, mais je voudrais avoir le texte du .Body avant le collage de la plage excel.
Si j'inverse les lignes de procédure, la plage ne se colle pas.
Si tu as une idée (ou le Forum) , ce sera parfait!
Merci pour tous ces efforts.
With MonMessage
.To = Range("M8")
.cc = Range("O8")
.Subject = ThisWorkbook.Sheets("Paramètres").Range("C7") & ThisWorkbook.Sheets("Saisie").Range("C3") & " au " & Date & "."
.Body = ThisWorkbook.Sheets("Paramètres").Range("C8") & vbLf _
& ThisWorkbook.Sheets("Paramètres").Range("C9") & Date & "." & vbLf _
& ThisWorkbook.Sheets("Paramètres").Range("C10") & vbLf & vbLf
.Display ' on affiche juste le message
Application.CutCopyMode = False
Sheets("Saisie").Range("A2:I23").Copy
'{TAB 4} redescend le curseur de Adresse sur le Message
'+{INSERT} MAJ+INSERT insertion données dans le Message
DoEvents '
SendKeys "{TAB 1}+{INSERT}", False
DoEvents
Application.CutCopyMode = True
End With
 

Piboulet

XLDnaute Nouveau
Re : envoi plage dans mail avec Microsoft-Office Outlook 2003

Bonjour ledzepfred, le Forum
A défaut de trouver exactement ce que je cherchais, j' ai adapté le texte au résultat obtenu . Je l'ai "livré" comme cela à l'utilisateur et il a l'air satisfait, alors....
Je surveillerai de temps en temps pour voir s'il y a mieux
Encore merci pour ton implication.
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 910
Membres
103 983
dernier inscrit
AlbertCouillard