VBA envoi mail via outlook [Résolu/Fermé]

Signaler
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
-
Joss062
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
-
Bonjour,
Est-ce que quelqu'un peut m'aider, voila mon problème, j'ai créé un bouton sur une feuille excel (nommée "FC" qui me permet d'envoyer par message électronique des infos sur cette feuille...
Je propose la possibilité d'envoyer ce message (via une boite msgbox) en copie, ou pas et à la fin de la procédure, après l'envoie du message, je souhaite revenir sur une une autre feuille nommée "Janvier"

Le problème c'est que le condition est bien respecter si le choix est "NON", mais quand on clic sur "OUI", le feuille "Janvier" est réactivée avant l'envoi du message... c'est ça mon souci, le sheets("Janvier").activate est à mon avis mal placé... je ne trouve pas la solution. voici le code :

[Sub Bouton9_Clic()
If MsgBox("Y-a-t-il des Agents en copie ?", vbYesNo, "Message en copie") = vbYes Then
ActiveSheet.Range("A1:M40").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Introduction = "Acceuil de la Maison de l'Autonomie"
.Item.To = Range("A42")
.Item.Display
End With
Else
ActiveSheet.Range("A1:M40").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Introduction = "Acceuil de la Maison de l'Autonomie"
.Item.To = Range("A42")
.Item.CC = " "
.Item.Send
End With
Sheets("Janvier").Activate
End If
End Sub]


Merci d'avance...
Joss

4 réponses

Messages postés
2173
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
21 février 2020
942
Bonjour,

Dans le cas ou tu clique sur oui , ton mail n'est pas envoyé.
Ta méthode .Send est dans ton Else.
Essaie de rajouter un .Send avant ton premier "End With" ceci:

If (// ton msgbox )
   With ActiveSheet.MailEnvelope 
      .Introduction = "Acceuil de la Maison de l'Autonomie" 
      .Item.To = Range("A42") 
      .Item.Display
      .Item.Send 
   End With 
Else 
   ActiveSheet.Range("A1:M40").Select ' la plage de cellules à envoyer 
   ActiveWorkbook.EnvelopeVisible = True 

   With ActiveSheet.MailEnvelope 
      .Introduction = "Acceuil de la Maison de l'Autonomie" 
      .Item.To = Range("A42") 
      .Item.CC = " " 
      .Item.Send 
   End With  
End If 
Sheets("Janvier").Activate 
End Sub

Et comme tu peux voir , essais aussi en activant Ta feuille "Janvier" à la toute fin de ta procédure.

Tiens moi au courant.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 87004 internautes nous ont dit merci ce mois-ci

Joss062
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
2
J'avais essayé exactement comme ça, le .dend après le .display et l'activavation de la feuille après le end if, le problème c'est que si le condition est "Yes", il reste en fin de procédure sur le feuille en cours (donc "FC") et ne revient pas sur "Janvier"
donc c'est presque ça !
Joss062
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
2
.send pardon.....
Messages postés
2173
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
21 février 2020
942
Quand vous appuyez sur "non" dans votre msgbox le mail s'envois bien ?
Si oui , essayer d'enlever le display dans le cas Yes, le mail s'enverra automatiquement normalement
Joss062
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
2
Chose faite, toujours pareil... si "non" il envoie bien le mail automatiquement et revient comme prévu sur la feuille "janvier" si "oui", il me laisse compléter le CC: (donc tout va bien), j'envoie, par contre il reste sur le feuille "FC" en cours... et ne reviens pas sur "Janvier"
Messages postés
2173
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
21 février 2020
942
Cela te dérangerais de mettre un input plutôt que d'ouvrir Outlook Afin de compléter les CC?

exemple:
if(yes)
mailAgent= inputBox("Saisissez les Mail des agents a mettre en copie(Séparé par des Point virgule):)


Puis rajouter dans ta création d'email
.Item.CC=mailAgent

Et envoyer ton mail Via le .Send ( Sans utiliser le Display)
Joss062
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
2
Ca me parait pas mal !!! j'essaie et te tiens au courant !!!
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
2
Je dois faire des erreurs dans le code... toujours pareil... je te le remets avec tes propositions...



Sub Bouton9_Clic()
If MsgBox("Y-a-t-il des Agents en copie ?", vbYesNo, "Message en copie") = vbYes Then
Mailagent = InputBox("Saisissez les Mail des agents a mettre en copie(Séparé par des Point virgule")

ActiveSheet.Range("A1:M40").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Introduction = "Acceuil de la Maison de l'Autonomie"
.Item.to = Range("A42")
.Item.CC = Mailagent
.Item.send
End With
Else
ActiveSheet.Range("A1:M40").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Introduction = "Acceuil de la Maison de l'Autonomie"
.Item.to = Range("A42")
.Item.CC = " "
.Item.send
End With
Sheets("Janvier").Activate
End If
End Sub
Joss062
Messages postés
36
Date d'inscription
vendredi 7 novembre 2014
Statut
Membre
Dernière intervention
12 mai 2016
2
et au lieu d'une imputbox, peut-on mettre une listbox pour faire choisir des agents dans une liste ??? dans ce cas là, comment je dois m'y prendre ?