VBA envoi TCD dans le corps d'un email
Résolu
agathe182
Messages postés
49
Statut
Membre
-
agathe182 Messages postés 49 Statut Membre -
agathe182 Messages postés 49 Statut Membre -
Bonjour,
Je suis en train d'essayer d'envoyer un tableau croisé dynamique par e-mail. Il y a un slicer sur le tableau qui peut filtrer par marché et je souhaiterai envoyer à chaque marché le tableau croisé dynamique par mail dans le corps du mail et pas en pièce jointe.
J'ai fait plusieurs tests mais je ne parviens pas à insérer le tableau croisé dynamique comme je le souhaiterai. J'ai essayé de copier le tableau dans une nouvelle feuille, d'envoyer cette feuille par e-mail et ensuite de supprimer la feuille avec le code suivant :
Malheureusement cela ne correspond pas au résultat que je souhaite obtenir... Je n'arrive pas à insérer le tableau en question..
Est-ce que quelqu'un pourait m'aider à résoudre mon problème ?
Je suis en train d'essayer d'envoyer un tableau croisé dynamique par e-mail. Il y a un slicer sur le tableau qui peut filtrer par marché et je souhaiterai envoyer à chaque marché le tableau croisé dynamique par mail dans le corps du mail et pas en pièce jointe.
J'ai fait plusieurs tests mais je ne parviens pas à insérer le tableau croisé dynamique comme je le souhaiterai. J'ai essayé de copier le tableau dans une nouvelle feuille, d'envoyer cette feuille par e-mail et ensuite de supprimer la feuille avec le code suivant :
Sub Envoi_Email(what_adress As String, subject_line As String, mail_body As String, piece_jointe As String)
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)
olMail.To = what_adress
olMail.Subject = subject_line
olMail.Body = mail_body
olMail.Attachments.Add = piece_jointe
olMail.Send
End Sub
Sub CreateTCD()
'Création du tableau à envoyer
Sheets("Overview").Select
With ActiveWorkbook.SlicerCaches("Slicer_Market")
.SlicerItems("AUT").Selected = True
.SlicerItems("BNL").Selected = False
.SlicerItems("CEN").Selected = False
.SlicerItems("DEU").Selected = False
.SlicerItems("IBE").Selected = False
.SlicerItems("NOR").Selected = False
End With
ActiveSheet.PivotTables("PivotTable1").PivotSelect "", xlDataAndLabel, True
Selection.Copy
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
Selection.Columns.AutoFit
Selection.Rows.AutoFit
Range("D7").Select
ActiveSheet.Name = "The Overview"
End Sub
Sub Envoi_Email_Market()
'Variables
Dim full_name As String
Dim mail_body_message As String
Dim tableau_piece_jointe As String
Call CreateTCD
row_number = 1
Do
DoEvents
row_number = row_number + 1
mail_body_message = Sheets("emails").Range("J2")
full_name = Sheets("emails").Range("B" & row_number)
mail_body_message = Replace(mail_body_message, "replace_name_here", full_name)
tableau_piece_jointe = Sheets("The Overview").PivotTables(1)
MsgBox mail_body_message
Call Envoi_Email(Sheets("emails").Range("A" & row_number), "Launch Status", mail_body_message, tableau_piece_jointe)
Loop Until row_number = 6
Call DeleteTCD
End Sub
Sub DeleteTCD()
'suppresion de la feuille
Sheets("The Overview").Select
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Sheets("Overview").Select
MsgBox "The summary was sent", vbOKOnly, FIY
Range("E16").Select
'Boite de message
MsgBox "Your e-mail(s) have been successfully sent", vbOKOnly, "FIY"
End Sub
Malheureusement cela ne correspond pas au résultat que je souhaite obtenir... Je n'arrive pas à insérer le tableau en question..
Est-ce que quelqu'un pourait m'aider à résoudre mon problème ?
A voir également:
- VBA envoi TCD dans le corps d'un email
- Comment creer un compte email - Guide
- Tcd excel - Guide
- Programmer l'envoi d'un sms - Guide
- Créer un compte email gratuit hotmail - Guide
- Messenger envoi impossible - Forum Facebook Messenger
2 réponses
Bonjour,
site a voir:
https://www.rondebruin.nl/win/s1/outlook/bmail2.htm
site a voir:
https://www.rondebruin.nl/win/s1/outlook/bmail2.htm
Bonjour,
Oui, votre soucis est de selectionner votre TCD pour la fonction
je souhaiterai envoyer à chaque marché le tableau croisé dynamique
Vous voulez faire les choix en automatique et envoyer un @Mail a chaque "marche", mais vous n'avez dans votre code qu'une seule adresse destinataire
Serait-il possible d'aoir votre fichier sans donnees sensibles ???
Oui, votre soucis est de selectionner votre TCD pour la fonction
Function RangetoHTML(Rng As Range)
je souhaiterai envoyer à chaque marché le tableau croisé dynamique
Vous voulez faire les choix en automatique et envoyer un @Mail a chaque "marche", mais vous n'avez dans votre code qu'une seule adresse destinataire
Serait-il possible d'aoir votre fichier sans donnees sensibles ???
Voici le lien du document Cjoint http://www.cjoint.com/c/FIwikLAftZM
En fait j'aimerais envoyer le TCD dans la feuille Overview à chaque marché (AUT, BNL, ...) par rapport à la liste d'e-mails rentrés dans la feuille emails avec comme sélection de statut tout sauf forecast ok.
Je sais comment leur envoyer la feuille entière mais pas comment leur envoyer le tableau dans le corps du mail avec un texte...
En fait j'aimerais envoyer le TCD dans la feuille Overview à chaque marché (AUT, BNL, ...) par rapport à la liste d'e-mails rentrés dans la feuille emails avec comme sélection de statut tout sauf forecast ok.
Je sais comment leur envoyer la feuille entière mais pas comment leur envoyer le tableau dans le corps du mail avec un texte...