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!
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 !
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
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