Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Bonjour,
voila j'ai créer un bouton de commande envoi mail dans une feuille excel;je cherche une macro vba pour envoyer par mail une feuille excel que je souhaite convertir en pdf.
Est ce que quelqu'un peut m'aider?
cdt
J'ai quelque chose pour envoyer via outlook un onglet d'un classeur excel, cependant il ne le met pas au format pdf.
voici le code :
Sub envoi_Feuille()
Dim msg As MailItem
Dim Cel As Range
Application.ScreenUpdating = False
répertoireAppli = ActiveWorkbook.Path ' Penser à Outils/Références/Outlook à rajouter (fichier msoutl.olb, dans C/pgmfiles/microsoft office /office 12)
Sheets("BL").Copy ' crée un classeur avec la feuille résultats
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs répertoireAppli & "\" & Feuil2.[E21].Value & ".xls", FileFormat:=-4143
ActiveWindow.Close
'--- Envoi par mail
Dim olapp As Outlook.Application
With Sheets("MAIL et Base")
For Each Cel In .Range("E11:E" & .[E18].End(xlUp).Row)
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = Cel.Value
msg.Subject = .Range("E2").Value
msg.Body = .Range("E5").Value & Chr(13) & Chr(13) & .Range("E8").Value & Chr(13) & Chr(13)
msg.Attachments.Add Source:=répertoireAppli & "\" & Feuil2.[E21].Value & ".xls"
msg.Send
Next Cel
End With
End Sub
re,
merci pour ton aide. il y a un ptit que je n'ai pas compris Sheets("BL").Copy BL represente la feuille que tu vas envoyer c koi exactement.
et aussi ActiveWorkbook.SaveAs répertoireAppli & "\" & Feuil2.[E21].Value & ".xls", FileFormat:=-4143 ca veut dire koi
merci
Bonjour,
Ci-joint une macro que j'utilise, A adapter selon tes besoins notamment la partie impression pdf.
perso j'utilise sowedoo pdf, apparement pas tres rependu.
Mon conseil : enregistre une macro avec l'enregistreur de macro pour la partie impression pdf et recupere le code pour l'inserer dans la macro.
Sinon, explication de la macro :
- Renomme l'onglet avec le nom du fichier source + Date et Copie l'onglet dans un nouveau fichier du meme nom.
- Lance impression en pdf de ce fichier le nomme de façon identique et le stock dans le repertoire par defaut de l'imprimante pdf.(dans mon cas D:\Data\)
- Copie ce fichier Pdf dans le repertoire du fichier xls de départ.
- Supprimes le fichier temporaire xls créer pour l'impression pdf
- Supprimes le fichier temporaire pdf créer dans le repertoire par defaut de l'imprimante pdf
- affiche un message pour choix d'envoi vers mail ou non
- ouvre messagerie(outlook) avec message pré-rempli et signature et le fichier pdf en piece jointe.
Toutefois mes competences en macros etant relativement limité, je te laisse voir avec les PROS pour toute modification, car je crois que je serais incapable de moidifier ce code.
Par mesure de précaution à tester sur fichier sans importance (attention le classeur doit avoir été enregistrer pour que la macro fonctionne)
Code:
Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
Cette fonction (getboiler) est censée récupérer ta signature outlook
Code:
Sub testo()
'ws In Worksheets
'Dim ws As Variant
'ws.Select
'ActiveWorkbook.Name.Copy
'ActiveSheet.Paste
Dim sigstring As String
Dim signature As String
sigstring = "C:\documents and settings\" & Environ("username") & "\application data\microsoft\signatures\signature.txt"
ActiveSheet.Name = ActiveWorkbook.Name
mystr = Format(Date, "dd-mm-yyyy")
Sheets(Array(ActiveSheet.Name)).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.ActivePrinter = "Sowedoo PDF 4 sur Ne00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Sowedoo PDF 4 sur Ne00:"
ActiveWindow.Close
FileCopy "D:\Data\" & ActiveSheet.Name & " " & mystr & ".pdf", ActiveWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".pdf"
Kill ("C:\" & ActiveSheet.Name & " " & mystr & ".xls") ', FileFormat:= _"
Kill ("D:\Data\" & ActiveSheet.Name & " " & mystr & ".pdf")
'Demande si envoi par mail
ActiveWindow.Activate
dde = "Voulez vous envoyer le fichier pdf par mail ?"
reponse = MsgBox(dde, vbYesNo, "*** Hello Man, Comment vas tu ? ***")
If reponse = vbYes Then
Set monoutlook = CreateObject("outlook.application")
Set monmessage = monoutlook.createitem(0)
With monmessage
'ad = ""
'If ad <> "" Then .to = ad
signature = GetBoiler(sigstring)
.to = ""
.Subject = "PV D'ESSAIS"
.Body = "Bonjour," & vbCrLf & vbCrLf & "Veuillez trouver ci-joint ……etc……..etc……….." & vbCrLf & vbCrLf & signature
.attachments.Add ActiveWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".pdf"
.display
End With
End If
'fin de la partie envoi par mail
Application.DisplayAlerts = True
End Sub
BL (bon de livraison) est le nom de l'onglet que j'envoie par mail (je ne veux pas envoyer tout le classeur seulement cet onglet, j'en fais donc une copie (de l'onglet) que je vais enregistrer (au format excel) pour pouvoir l'envoyer en PJ
et aussi ActiveWorkbook.SaveAs répertoireAppli & "\" & Feuil2.[E21].Value & ".xls", FileFormat:=-4143 ca veut dire koi
merci
ca c'est l'enregistrement de mon onglet en tant que fichier. Pour des raisons pratique je donnais un nom à chaque "onglet" que j'envoie (feuil2.e21 c'est une date pour pouvoir classer les bon de livraison par date de livraison dans mon fichier). Pour le file format je me souviens plus très bien il me semble que c'est pour que mon fichier soit enregistré en format compatible avec les différentes versions excel (2003 et 2007).
voila j'ai créer un bouton de commande envoi mail dans une feuille excel;je cherche une macro vba pour envoyer par mail une feuille excel que je souhaite convertir en pdf.
Est ce que quelqu'un peut m'aider?
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.