Envoi d'un tableau avec mise en forme ligne

Bonjour tout le monde

Je suis totalement désespéré!!!!

Je souhaiterais faire un envoi par mail de données contenues dans la feuille 1 plus précisément des colonnes A B C D E et P Q R avec les entêtes.

mais je veux que la macro ne copie que les données des clients pour lesquels il reste moins de 30 jours avant la date d'échéance contenue dans la cellule M

en Sachant que les entêtes sont en ligne 4 et les données commencent en ligne 5

J'avais réussi a faire entrer les données dans le corps du mail même mais mon chef m'a dit qu'il voulait qu'elles apparaissent avec les traits et autres donc mise en forme excel

Donc j'ai pensé à faire créer à la macro un nouveau fichier dans lequel il mettrait ce que j'ai expliqué plus haut ce fichier sera joint au mail puis supprimer après envoi.

je bloque complètement sur ce point

Voilà je ne sais pas si ce que j'ai dit est compréhensible ou si je joint un fichier exemple

Merci de votre aide


Je Précise que je travaille sur lotus et j'ai déjà mis en place la macro d'envoi du mail d'alerte

Merciii!!

Bonjour,

L'ajout d'un fichier nous permettrais une meilleure compréhension ainsi qu'une plus grande facilité à traiter votre demande.

Merci d'avance

Bonjour....Dans une autre vie...Si un chef me demande ce qu'il vous a demandé, je l'invite cordialement a aller voir DIRECTEMENT & SANS PLUS ATTENDRE au zimbaboué si j'y suis...

Le temps que vous allez passé à creer une macro pour envoyer un fichier excel par mail parce que Monsieur veut des cases en couleur c'est du temps que vous ne passerai pas pour régler des problèmes très certainement bien plus important..Mais surtout ce que j'espère, afin que je ne parte pas moi même au zimbaboué, c'est que votre chef travaille à des centaines de km de votre bureau parce que si vous travaillez sur le même site à quelques bureau d'écart, c'est même pas au zimbaboué que je pars, mais c'est dans les abyss du fond de la mer !

Enfin bon ceci ne nous...regarde pas !

Bonsoir,

Désolé du retard, nous sommes en période de rush donc 1000 choses à faire en même temps!

ci joint un fichier exemple

Merci d'avance de votre aide!

15evemple.xlsx (9.73 Ko)
Force rouge a écrit :

Bonjour....Dans une autre vie...Si un chef me demande ce qu'il vous a demandé, je l'invite cordialement a aller voir DIRECTEMENT & SANS PLUS ATTENDRE au zimbaboué si j'y suis...

Le temps que vous allez passé à creer une macro pour envoyer un fichier excel par mail parce que Monsieur veut des cases en couleur c'est du temps que vous ne passerai pas pour régler des problèmes très certainement bien plus important..Mais surtout ce que j'espère, afin que je ne parte pas moi même au zimbaboué, c'est que votre chef travaille à des centaines de km de votre bureau parce que si vous travaillez sur le même site à quelques bureau d'écart, c'est même pas au zimbaboué que je pars, mais c'est dans les abyss du fond de la mer !

Enfin bon ceci ne nous...regarde pas !

Dans une autre vie je l'aurais surement fait à part bien sure si dans cette vie je gagne au loto! ce qui est très peu probable !

donc pour le moment je me creuse le cerveau!

PS: Vérifiez dans les bureaux voisins je pourrais ne pas être bien loin

Mais sinon vous savez que depuis excel vous pouvez envoyer directement un email ? Oui je crois que dans des vies anterieures nos chefs recoivent des sacrés coups de savate ses bestioles là..

Force rouge a écrit :

http://jacxl.free.fr/cours_xl/cours_xl_jac.html#copie_onglet

c'est un bon début je vais le compléter avec tout le tralala de condition dont j'ai besoin et voir Si ça fonctionne.

je posterai la macro que j'ai déjà écrite aussi mais qui ne fonctionne MALHEUREUSEMENT pas!

A propos de l'envoi d'un email via excel oui j'ai l'obligation d'utiliser Lotus Note donc j'ai bidouillé un programme qui me permet d'envoyer le mail automatiquement avec les données qui m’intéressaient directement dans le corps du mail en utilisant lotus il fonctionnait très bien jusqu'au moment fatidique où mon chef m'a demandé de modifier

Merci

ah oui le chef...hum.

voila la macro que j'ai mis en place mais le fichier n’apparaît pas. il est un peu brouillon

Private Sub CommandButton2_Click()

'Set up the objects required for Automation into lotus notes

Dim Maildb As Object 'The mail database

Dim UserName As String 'The current users notes name

Dim MailDbName As String 'THe current users notes mail database name

Dim MailDoc As Object 'The mail document itself

Dim noAttachment As Object

Dim stAttachment As String 'The attachment richtextfile object

Dim Session As Object 'The notes session

Dim EmbedObj As Object 'The embedded object (Attachment)

Dim Plage As Range, R As Range 'Target As Range

Dim ListeMails As String

Dim recipient As Variant

Dim objNotesField As Object

'Dim cells As Range

'Dim Row As Range

Dim i, j As Integer

Dim erow As Long

Dim xFile As String

Dim xFormat As Long

Dim Wb As Workbook

Dim Wb2 As Workbook

Dim FilePath As String

Dim FileName As String

On Error Resume Next

With Application

.ScreenUpdating = False

.DisplayAlerts = False

End With

Set Wb = Application.ActiveWorkbook

ActiveSheet.Select

'S'il reste moins de 30 jours entre la date d'échéance et aujourd'hui, copie sur une nouvelle feuille de données

Lastrow = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row

For i = 5 To Lastrow

'For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)

'If Cells(i, 21).Value < 30 And _

'LCase(Cells(Cells(i, 11)).Value) = "non_commencé" Or Cells(i, 11) = "En_cours_de_réalisation" Then

If Cells(i, 11) = "non_commencé" Or Cells(i, 11) = "En_cours_de_réalisation" Then

'Copy the active sheet to a new temporarily workbook

ActiveSheet.Range(Cells(i, 2), Cells(i, 3), Cells(i, 4), Cells(i, 5), Cells(i, 16), Cells(i, 17), Cells(i, 18)).Select

Selection.Copy

Dim p As Integer, q As Integer

p = Worksheets.Count

For q = 1 To p

Set Wb2 = Application.ActiveWorkbook

Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Infoclientconcerné"

If ActiveWorkbook.Worksheet(q).Name = "Infoclientconcerné" Then

Worksheets("Infoclientconcerné").Select

End If

Next q

erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Rows

ActiveSheet.Cells(erow, 1).Select

ActiveSheet.Paste

'Save and close the temporarily workbook.

Select Case Wb.FileFormat

Case xlOpenXMLWorkbook:

xFile = ".xlsx"

xFormat = xlOpenXMLWorkbook

Case xlOpenXMLWorkbookMacroEnabled:

If Wb2.HasVBProject Then

xFile = ".xlsm"

xFormat = xlOpenXMLWorkbookMacroEnabled

Else

xFile = ".xlsx"

xFormat = xlOpenXMLWorkbook

End If

End Select

'FilePath = Environ$("temp") & "\"

FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")

'Retrieve the path and filename of the active workbook.

'Save and close the temporarily workbook.

With Wb2

'.SaveAs stAttachment = stPath & FileName & xFile, FileFormat:=xFormat

.SaveAs stAttachment = stPath & FileName & xFile, FileFormat:=xFormat

.Close

End With

Application.CutCopyMode = False

'TO SELECTION THE EMAIL ADRESS IN A LIST

'Collect cells where there is a cross in column E

Set Plage = Range("S5:S5000,T5:T5000").SpecialCells(xlCellTypeConstants, 2)

'For each cell collected

For Each R In Plage

'take back the Email Adress in before column

ListeMails = ListeMails & IIf(Len(ListeMails) > 0, ";", "") & R.Offset(0, -1).Text

Next R

'Start a session to notes

Set Session = CreateObject("Notes.NotesSession")

'Get the sessions username and then calculate the mail file name

'You may not need this as for MailDBname with some systems you

'can pass an empty string

UserName = Session.UserName

MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

'Open the mail database in notes

Set Maildb = Session.GETDATABASE("", "Mail01 - ga1")

If Maildb.IsOpen = True Then

'Already open for mail

Else

Maildb.OPENMAIL

End If

'Set up the new mail document

Set MailDoc = Maildb.CREATEDOCUMENT

'Retrieve the path and filename of the active workbook.

'Attachment1 = "D:\common\data\excel\Attachment1.xls" '"C:\YourFile.xls" ' Required File Name

If stAttachment <> "" Then

On Error Resume Next

Set noAttachment = MailDoc.CreateRichTextItem("stAttachment")

Set EmbedObj = noAttachment.EmbedObj(1454, , stAttachment, "stAttachment")

On Error Resume Next

End If

MailDoc.Form = "Memo"

recipient = ListeMails

MailDoc.SendTo = recipient

MailDoc.Subject = "Alerte retard client (TEST)"

' Construction of the message body

Set objNotesField = MailDoc.CreateRichTextItem("Body")

With objNotesField

.AppendText ""

.AddNewLine 2

.AppendText ""

.AppendText ""

.AddNewLine 2

.AppendText ""

.AddNewLine 3

.AppendText ""

.AddNewLine 3

.AppendText ""

.AddNewLine 3

.AppendText " "

End With

MailDoc.SaveMessageOnSend = True

'Send the document

MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder

MailDoc.Send 0, recipient

'Delete the temporarily workbook

Kill stAttachment

'Clean Up

Set Maildb = Nothing

Set MailDoc = Nothing

Set Session = Nothing

Set EmbedObj = Nothing

Set noAttachment = Nothing

Set objNotesField = Nothing

End If

Next

MsgBox "The e-mail has successfully been created and distributed", vbInformation

With Application

.ScreenUpdating = True

.DisplayAlerts = True

End With

End Sub

Rechercher des sujets similaires à "envoi tableau mise forme ligne"