Masquer les lignes d'un tableau dans le corps d'un mail

Bonjour,

Je me permets de vous solliciter sur un problème de macro VBA.

j'ai réalisé un tableau de bord sur des tâches qui par un clic bouton s'envoie par mail directement par excel à des utilisateurs. Dans le mail, le tableau apparaît dans le corps du message sous forme d'image du tableau. Mon problème, c'est que mon tableau est filtré en fonction des tâches à réaliser par tel ou tel utilisateur, dans le mail, le tableau apparaît au complet, les lignes masquées sont à vides. Je souhaiterais que les lignes masquées ne soient pas présentes dans le corps du mail.

Avez-vous une astuce?

Voici mon code:

Sub SendEmail_Tab()
Application.DisplayAlerts = False
Dim outlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim Cell As Range
Dim Project, EmailAddr, Msg, Subj As String
Dim TEXTE_AVANT, TEXTE_APRES As String
Dim NbLigne As Integer

TEXTE_AVANT = "Merci de travailler les tâches suivantes."
TEXTE_APRES = "Ci_dessous le tableau des tâches :"
EmailAddr = Sheets("Base_Saisie").Range("e3")
cCAddr = Sheets("Base_saisie").Range("e4")

Sheets("Base_Saisie").Select
Set outlookApp = New Outlook.Application
Subj = "Situations à investiguer pour " & Range("d3")

Msg = Msg & TEXTE_AVANT
NbLigne = Sheets("Base_Saisie").Range("A" & Application.Rows.Count).End(xlUp).Row
Sheets("Base_Saisie").Range("A2:f" & NbLigne).Select

ActiveWorkbook.EnvelopeVisible = True
Selection.Copy
Msg = Msg & vbCrLf
Msg = Msg & TEXTE_APRES & vbCrLf
Msg = Msg & vbCrLf

With ActiveSheet.MailEnvelope

.Introduction = Msg
.Item.To = EmailAddr
.Item.CC = cCAddr
.Item.Subject = Subj
.Item.Send

End With
MsgBox "Votre Mail a été envoyé.", vbInformation + vbOKOnly, "CONFIRMATION ENVOI MAIL"
Set MItem = outlookApp.CreateItem(olMailItem)
Application.DisplayAlerts = True

End Sub

Je vous remercie par avance.

Nawel

Bonjour

Essayez en définissant la plage à copier plutôt que d'utiliser Selection.copy

Dim plage as range
Set plage = Selection.SpecialCells(xlCellTypeVisible)

ou comme ceci --> Ce qui vous permet de supprimer les deux lignes Selection.copy et la ligne Sheets("Base_saisie").........select

Dim plage as range
Set Plage = Sheets("Base_Saisie").Range("A2:f" & NbLigne).SpecialCells(xlCellTypeVisible)

je n'ai pas testé mais il ne vous manque pas .item.body dans votre code ?

Cordialement

Merci pour votre réponse rapide mais cela ne fonction toujours pas.

J'ai toujours les lignes vides, et quand je n'envoie pas direct le message, et que je passe par Display, je reçois ce message:

image

Un grand merci pour votre aide.

Bien cordialement,

Nawel

Rechercher des sujets similaires à "masquer lignes tableau corps mail"