Macro pour envoi d'un onglet par mail
Résolu/Fermé
Nounours_Poilu
Nounours_Poilu
- Messages postés
- 4
- Date d'inscription
- dimanche 24 mai 2015
- Statut
- Membre
- Dernière intervention
- 26 mai 2015
Nounours_Poilu
- Messages postés
- 4
- Date d'inscription
- dimanche 24 mai 2015
- Statut
- Membre
- Dernière intervention
- 26 mai 2015
A voir également:
- Envoyer une feuille excel par mail vba
- Macro pour envoi d'un onglet par mail ✓ - Forum - Excel
- Macro outlook envoi mail automatique - Forum - Excel
- Macro excel envoi mail avec pièce jointe pdf - Forum - Excel
- Macro excel envoi mail avec pièce jointe ✓ - Forum - VB / VBA
- Macro excel envoi mail avec fichier joint ✓ - Forum - Excel
5 réponses
ozone_
24 mai 2015 à 13:46
- Messages postés
- 1431
- Date d'inscription
- lundi 13 juillet 2009
- Statut
- Membre
- Dernière intervention
- 18 mars 2022
24 mai 2015 à 13:46
Salut,
C'est possible si par exemple tu utilise outlook comme messagerie.
Il faudra procéder comme ci :
https://www.developpez.net/forums/d1189093/logiciels/microsoft-office/excel/macros-vba-excel/macro-excel-envoi-mail-pj-corps-texte/
Après si tu veux un exemple plus précis on aura besoin d'avoir un exemple de ton fichier posté sur https://www.cjoint.com/ par exemple.
C'est possible si par exemple tu utilise outlook comme messagerie.
Il faudra procéder comme ci :
https://www.developpez.net/forums/d1189093/logiciels/microsoft-office/excel/macros-vba-excel/macro-excel-envoi-mail-pj-corps-texte/
Après si tu veux un exemple plus précis on aura besoin d'avoir un exemple de ton fichier posté sur https://www.cjoint.com/ par exemple.
ozone_
Modifié par ozone_ le 24/05/2015 à 18:15
- Messages postés
- 1431
- Date d'inscription
- lundi 13 juillet 2009
- Statut
- Membre
- Dernière intervention
- 18 mars 2022
Modifié par ozone_ le 24/05/2015 à 18:15
Re,
Alors voilà ce que j'ai pu faire :
ça fonctionne très bien chez moi mais il faut qu'Outlook soit ouvert sinon ça coince.
Ton fichier avec tout ce qui va bien est ici :
https://www.cjoint.com/c/EEysmjt4Pk2
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
Alors voilà ce que j'ai pu faire :
Sub SendEmail() Dim olApp As Outlook.Application Set olApp = CreateObject("outlook.application") Dim LWorkbook As Workbook Dim LFileName As String Dim i As Integer: i = 1 Do Dim olMail As Outlook.MailItem Set olMail = olApp.CreateItem(olMailItem) With olMail .Recipients.Add (Sheets("Bilan").Range("B" & i).Value) .Subject = "Fiche personnelle" Sheets(Sheets("Bilan").Range("A" & i).Value).Copy Set LWorkbook = ActiveWorkbook LFileName = LWorkbook.Worksheets(1).Name LWorkbook.SaveAs Filename:=LFileName .Body = "Bonjour," & vbCrLf _ & vbCrLf _ & "Vous trouverez ci joint votre fiche personnelle." & vbCrLf _ & vbCrLf _ & "Cordialement" & vbCrLf _ & vbCrLf & vbCrLf _ & "NOM PRENOM" ' Ton nom à mettre ici ! .Attachments.Add LWorkbook.FullName .Display .Send LWorkbook.ChangeFileAccess Mode:=xlReadOnly Kill LWorkbook.FullName LWorkbook.Close SaveChanges:=False End With i = i + 1 Loop While Sheets("Bilan").Range("A" & i).Value <> "" End Sub
ça fonctionne très bien chez moi mais il faut qu'Outlook soit ouvert sinon ça coince.
Ton fichier avec tout ce qui va bien est ici :
https://www.cjoint.com/c/EEysmjt4Pk2
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
Nounours_Poilu
Modifié par Nounours_Poilu le 24/05/2015 à 15:28
- Messages postés
- 4
- Date d'inscription
- dimanche 24 mai 2015
- Statut
- Membre
- Dernière intervention
- 26 mai 2015
Modifié par Nounours_Poilu le 24/05/2015 à 15:28
Bonjour Ozone, merci de t'être penché sur mon problème.
D'après le lien que tu m'envoies, je pencherais pour un codage avec une boucle For/Next sur i pour lister toutes les pages.
Maintenant je ne sais pas si l'expression "Sheets(i)" est prise en compte par Excel, ainsi que la plage "Range(A1:F18).Value"
Voilà ce que ça donnerait comme bout de code:
Je joins un fichier exemple au format *.xls mais créé avec Libre Office (pas taper! pas taper!)
je n'ai pas Excel ici à la maison, il faudra attendre mardi (week-end à rallonge oblige) pour que je teste ça au bureau sur Excel.
Voici un fichier dépersonnalisé:
https://www.cjoint.com/c/EEypegAIWs5
L'onglet "Bilan" regroupe toutes les adresses mail des agents.
Merci beaucoup,
Cordialement
Nounours
D'après le lien que tu m'envoies, je pencherais pour un codage avec une boucle For/Next sur i pour lister toutes les pages.
Maintenant je ne sais pas si l'expression "Sheets(i)" est prise en compte par Excel, ainsi que la plage "Range(A1:F18).Value"
Voilà ce que ça donnerait comme bout de code:
With NewMail
For i = 1 to 4
.Recipients.Add (Sheets(i).Range("A1:F18").Value)
'Sujet :
.Subject = "sujet"
'Copies
.CC = "chef@test.com;adjoint@test.com"
'Corps du mail :
.Body = "Bonjour," & vbCrLf _
& vbCrLf _
& "Vous trouverez ci joint le " & Sheets(i).Range("A1").Value & vbCrLf _
& vbCrLf _
& "Cordialement" & vbCrLf _
& vbCrLf & vbCrLf _
& "pseudo"
.Attachments.Add ActiveWorkbook.FullName
.Display
'Envoi :
.Send
Next
End With
Je joins un fichier exemple au format *.xls mais créé avec Libre Office (pas taper! pas taper!)
je n'ai pas Excel ici à la maison, il faudra attendre mardi (week-end à rallonge oblige) pour que je teste ça au bureau sur Excel.
Voici un fichier dépersonnalisé:
https://www.cjoint.com/c/EEypegAIWs5
L'onglet "Bilan" regroupe toutes les adresses mail des agents.
Merci beaucoup,
Cordialement
Nounours
Nounours_Poilu
24 mai 2015 à 19:54
- Messages postés
- 4
- Date d'inscription
- dimanche 24 mai 2015
- Statut
- Membre
- Dernière intervention
- 26 mai 2015
24 mai 2015 à 19:54
Merci Ozone_ tu es au top!
Alors je n'ai pas encore pu tester ca (puisque pas Excel chez moi) mais je te tiendrai au jus si il y a un souci dès mardi.
Encore merci ;)
Nounours
Alors je n'ai pas encore pu tester ca (puisque pas Excel chez moi) mais je te tiendrai au jus si il y a un souci dès mardi.
Encore merci ;)
Nounours
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nounours_Poilu
26 mai 2015 à 18:33
- Messages postés
- 4
- Date d'inscription
- dimanche 24 mai 2015
- Statut
- Membre
- Dernière intervention
- 26 mai 2015
26 mai 2015 à 18:33
Bonjour à tous, je reviens de nouveau vers vous car... mon service de messagerie n'est pas Outlook mais Mozilla Thunderbird et effectivement, ça coince. Par quelle commande dois-je déclarer Thunderbird ? Ca bug dès la ligne 3...
D'avance merci et bonne journée ;)
Cordialement
Nounours
D'avance merci et bonne journée ;)
Cordialement
Nounours