Envoyer feuil par mail.

Proz

XLDnaute Occasionnel
;) Bonjour à tous,

Sauriez vous comment faire pour envoyer une feuil ou son contenu par mail. Juste la Feuil ou son son contenu, pas le classeur si c'est possible.:D
 

Cousinhub

XLDnaute Barbatruc
Re : Envoyer feuil par mail.

Re-,
dans le code de la feuille :

Code:
Private Sub CommandButton1_Click()
Call envoi_mail
End Sub

et dans un module standard :

Code:
Sub envoi_mail()
répertoireAppli = ActiveWorkbook.Path
Sheets("TDGM").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs répertoireAppli & "\Absences Mosson-Hôp Fac.xls"
ActiveWindow.Close
'--- Envoi par mail
Dim olapp As Outlook.Application
Sheets("destinataires").Select
Range("A11").Select
Do While Not IsEmpty(ActiveCell)
Dim msg As MailItem
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = ActiveCell.Value
msg.Subject = Range("A2").Value
msg.Body = Range("A5").Value & Chr(13) & Chr(13) & Range("A8").Value & Chr(13) & Chr(13)
msg.Attachments.Add Source:=répertoireAppli & "\Absences Mosson-Hôp Fac.xls"
msg.Send
ActiveCell.Offset(1, 0).Select
Loop
End Sub
 

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

;)

C'était d'une simplicité que j'aurais cherché pendant des heures, je n'aurais pas trouver. Tout fonctionne.
Pourquoi faire simple quand on peut faire compliqué;)

Sinon j'ai une dernière question peut-on cacher la feuil destinataire et envoyer le mail? J'ai essayé mais fonctionne pas.
Et enfin le message d'alerte qui dit le programme essaye d'envoyer......, peut on éviter l'affichage tout en validant l'envoie?:rolleyes: Ca fait 2 en fait?:eek:
 

Cousinhub

XLDnaute Barbatruc
Re : Envoyer feuil par mail.

Re-,

1/pour cacher la feuille destinataires, pas de soucis :

dans le code du classeur, à l'ouverture, la feuille sera masquée :

Code:
Private Sub Workbook_Open()
Sheets("Destinataires").Visible = False
End Sub

dans le code de la macro :
en début :

Code:
Sub envoi_mail()
Application.ScreenUpdating = False
Sheets("Destinataires").Visible = True
.....
.....
Sheets("Destinataires").Visible = False
Application.ScreenUpdating = True

Pour ce qui est de la confirmation de l'envoi du mail, je crois qu'il existe un petit utilitaire, nommé ClicYes, mais ne l'ayant jamais utilisé, je ne saurais te dire plus..
Peut-être que quelqu'un pourrait venir à ton secours
 

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

:confused:

Pour les deux premieres lignes cé ok mais les 2 dernières, j'ai sauté deux lignes mais marche pas

Code:
Sub envoi_mail()
Application.ScreenUpdating = False
Sheets("Destinataires").Visible = True
.....
.....
Sheets("Destinataires").Visible = False
Application.ScreenUpdating = True
 

Cousinhub

XLDnaute Barbatruc
Re : Envoyer feuil par mail.

Re-,
j'avais pas bien expliqué....:eek:
Tu colles les deux premières en début de code, et les deux dernières juste avant le End Sub (les points signifient ton code)

Code:
Sub envoi_mail()
Application.ScreenUpdating = False
Sheets("Destinataires").Visible = True
.....
.....
....
ActiveCell.Offset(1, 0).Select
Loop
Sheets("Destinataires").Visible = False
Application.ScreenUpdating = True
End Sub
 

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

:D

Désolé, pas assez attentif.
En tout cas je te remercie pour ce code, ton aide et ta patience (car je sais qu'il en a fallu);)

Bon, reste l'inconvénient de ce message d'alerte, car il l'envoie à 8 pers, alors imaginez le gars en face qui n'a pas de patience (il prend la machine et pette un plomb...).

Sinon bhbh, je te remercie pour tout encore une fois...:D
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Envoyer feuil par mail.

imaginez le gars en face qui n'a pas de patience (il prend la machine et pette un plomb...).

Et en plus, le gars pour qui tu fais cela n'aurait pas de patience....:D
Il n'a plus qu'à appuyer sur un bouton, puis 8 fois sur le message d'alerte, quand je trouve un boulot comme ça, je signe.......:D:D

Plus sérieusement, recherche dans gogeule le mot ClickYes, il y a un petit utilitaire pour faire son boulot à sa place.....;)
 

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

:)

Ca fonctionne pas et depuis que je l'ai installé outlook me dit que je n'ai pas les autorisations nécessaires...Enfin bref, je l'ai desinstallé mais tjrs ce fichu message.

Edit: no panique, il fallait juste redémarrer le PC.
Sinon, je suis allé faire un tour sur google et il dise qu'il faut un code et l'adapté à ce petit utilitaire ou en fonction du moins.
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Envoyer feuil par mail.

Re-,
ci joint un autre exemple d'envoi mail via Outlook, qui, normalement, ne devrait pas générer de message de la part d'Outlook.
Si tu peux tester, car pour ma part, je n'utilise pas Outlook, et donc, je ne peux garantir le résultat.
Code issu d'un mix entre la procédure de jboigontier, et d'un autre code trouvé sur le site de MSOutlook.
Teste et dis-moi
 

Pièces jointes

  • envoi mail excel.zip
    13.9 KB · Affichages: 40

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

:D

Salut,

Edit:
Et sur le mien ça bloque ici
If FichierXls.Saved = True Then
Fichier = FichierXls.FullName
FichierXls.Close
Sheets("destinataires").Select

Il m'affiche La méthode select de la classe Worksheet a échoué.

Et depuis le commandbutton, il me dit fonction ou sub non définit

Je suppose qu'il faut modifier l'appel depuis le commandbutton mais comment?
 
Dernière édition:

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

:)
Salut bhbh,

Avec feuil demasquée, ca bloque ici:
Code:
-----------------
Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional BodyHTML As String, _
Optional Cc As String, _
Optional Bcc As String, _
Optional Attach1 As String)
Dim Cdo_Message As New CDO.Message
-------------------

Edit: a partir du bouton cela bloque ici:
Private Sub CommandButton1_Click()
Call envoi_mail
End Sub
Quel appel dois je faire?
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Envoyer feuil par mail.

Bonjour,
je suppose que le message d'erreur est :

Code:
Erreur de compilation
Type défini par l'utilisateur non défini

Si ce message, c'est que tu n'as pas ajouté la référence "Microsoft CDO for Windows 2000 Library" comme préconisé dans le fichier.
Si ce n'est pas cela, quel message d'erreur?
 

Proz

XLDnaute Occasionnel
Re : Envoyer feuil par mail.

:D

Exact, impardonable je suis. J'ai activé.
Ca bloque à ce niveau:
Code:
--------------------------
, "Fichier à Attacher introuvable !"
            End If
        End If
  [B][COLOR="Red"]  .Send[/COLOR][/B] -------------------------> ici bloque, affiche message
End With
-------------------------
 
Dernière édition:

Discussions similaires