VBA - Macro Mail avec Tableau Copier Coller + Pièce Jointe

GuillauMittal

XLDnaute Nouveau
Bonsoir,

Je m'arrache les cheveux sur une macro pour envoyer un mail avec un copier coller d'un tableau dans le corps d'un texte + un fichier en pièce jointe. J'arrive à obtenir l'un, ou l'autre, mais pas à cumuler les 2.

Le mail avec le tableau à copier coller étant celui sur lequel j'ai le plus galéré, je vous le mets ci-dessous :

Si quelqu'un a quelques lignes de codes pour rajouter l'ActiveWorkbook en PJ, merci ! Ca a l'air super simple mais je n'y arrive pas.

Sub Mail()

ActiveSheet.Range("C3:K26").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Attachments.Add ActiveWorkbook
.Introduction = "Bonjour, voici les principales commandes "
.Item.Subject = "Commandes de la veille - " & Format(Date, "dd/mm/yy")
.Item.To = "jesuis.mauvais@enVBA.com"
.Item.Send

End With
End Sub


Cordialement
 

Lone-wolf

XLDnaute Barbatruc
Re : VBA - Macro Mail avec Tableau Copier Coller + Pièce Jointe

Bonsoir GuillauMittal, Roland


Code:
Sub Envoi_Mail()
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim strHTML As String
Dim myAttachments

Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(olMailItem)
'Set myAttachments = myItem.Attachments

Windows("Classeur1.xls").Activate
Sheets("Feuil1").Activate
    
strHTML = ""
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "Bonjour , <BR>vous trouverez ci joint le tableau demandé<BR><BR>"
strHTML = strHTML & "<TABLE BORDER>"
 
myAttachments = ("C:\Users\GuillauMittal\Desktop\Classeur1.xls")
 
For i = 1 To 32 'nombre de lignes (exemple plage A1:I32)
 
    strHTML = strHTML & "<TR halign='middle'nowrap>"
    For j = 1 To 9 'nombre de colonnes
    strHTML = strHTML & "<TD bgcolor='white'align='center'><FONT COLOR='black'SIZE=3>" _
            & Cells(i, j) & "</FONT></TD>"
    Next j
    strHTML = strHTML & "</TR>"
 
Next i
 
strHTML = strHTML & "</TABLE>"
 
strHTML = strHTML & "<BR><BR>Cordialement<BR>" & Application.UserName
strHTML = strHTML & "</BODY>"
strHTML = strHTML & ""
 With olMail
      .To = ""
      .CC = ""
      .Subject = "Votre Tableau"
      .HTMLBody = strHTML
      .Attachments.Add myAttachments
      .Display
   End With

    Set olMail = Nothing
    Set olApp = Nothing
End Sub

A+ :cool:
 
Dernière édition:

GuillauMittal

XLDnaute Nouveau
Re : VBA - Macro Mail avec Tableau Copier Coller + Pièce Jointe

Merci,

Bien fait ton fichier Roland_M, mais je ne pourrai hélas pas l'appliquer à mon cas !

Lone-wolf, j'ai essayé ton code (qui est 12 fois plus complexe que le mien en effet ^^), et l'ai adapté à mon cas, et dès la première ligne, bam :

Error.PNG

Error2.PNG

Peux-tu m'aider ?

Merci quand même sinon
 

Pièces jointes

  • Error.PNG
    Error.PNG
    10.5 KB · Affichages: 50
  • Error2.PNG
    Error2.PNG
    3.9 KB · Affichages: 46

Roland_M

XLDnaute Barbatruc
Re : VBA - Macro Mail avec Tableau Copier Coller + Pièce Jointe

bonjour

'pour éviter les erreurs de library ...
'- au lieu de faire -
'Dim MonOutlook As Outlook.Application
'- faire comme ceci et Excel va se servir de la bonne version de Outlook selon le poste
'Dim MonOutlook As Object
'Set MonOutlook = CreateObject("Outlook.Application")

sinon voir pour cocher dans les références l'application outlook !
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
679

Statistiques des forums

Discussions
312 330
Messages
2 087 342
Membres
103 524
dernier inscrit
Smile1813