cherche une macro envoie mail

kettou

XLDnaute Junior
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
 

pierrequimousse

XLDnaute Junior
Re : cherche une macro envoie mail

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

En espérant que ça puisse t'aider...

bien cordialement,
Pierre
 
Dernière édition:

kettou

XLDnaute Junior
Re : cherche une macro envoie mail

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
 
Dernière édition:

JBOBO

XLDnaute Accro
Re : cherche une macro envoie mail

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
 

pierrequimousse

XLDnaute Junior
Re : cherche une macro envoie mail

Salut !

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.

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).

Voili voilou, bonne soirée

Pierre
 

MJ13

XLDnaute Barbatruc
Re : cherche une macro envoie mail

Bonjour

De kettou
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?

Voici le genre de post qui manque de précisions.

Il faudrait connaître le type de messagerie et le type de logiciel pour créer les PDFs.

En plus en faisant une recherche sur le forum, ce n'est pas ce qui manque pour envoyer un mail.
 

Discussions similaires

Réponses
16
Affichages
646
Réponses
1
Affichages
279
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 629
Messages
2 090 321
Membres
104 491
dernier inscrit
anthony2812