Bonjour,
Etant totalement novice dans la maîtrise du VBA je vous demande un coup de pouce.
Je souhaite créer une macro VBA me permettant d'envoyer en un clic via Outlook la feuille ( feuille active) en PJ. Un bouton sera créer dans la feuille afin de déclencher la macro.
Etant donné qu'il y a un grand nombre de destinataires, les adresses mails de ces derniers seront reprises dans la colonne A de la feuille 2 de mon doc excel. La macro doit ainsi utilisée le répertoire d'adresse présent en colonne A de la feuille 2.
J'aimerais également en utilisant je suppose la fonction "range" ( je n'arrive pas à la faire marcher...) émettre une condition :
Si la cellule "E10" est inférieur à 94% la macro s'active et envoi automatiquement la feuille 1 en PJ aux adresses mails mentionnées dans la colonne B de la feuille 2 de mon classeur Excel. ( Mail qui sera envoyé qu'à une seule reprise lorsque le seuil est atteint).
Pour chacun des envois, une boite de dialogue doit apparaître afin d'alerter l'utilisateur de l'action de la macro et avec un OUI/NON lui laisser le choix d'envoyer ou non le mail.
AccuseReception = True
'Nom de la feuille (remplacer Recap par celui de la Feuille à envoyer)
ThisWorkbook.Sheets("Recap").Copy
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
End Sub
Le code ci-dessus permet cela = il fonctionne chez moi.
Ci-joint une ébauche de mon code. Cependant, il est incomplet et présente quelques doublons et anomalies...
Sub EnvoiPage()
Dim AccuseReception As Boolean
Dim ListeDest()
Dim i As Long
Dim oMsgApp As Outlook.Application
Dim oMsg As Outlook.MailItem
Dim sListDest As String
Dim sFichier As String
While i < 94
If Range("E10&i") < 94 Then
envoi mail
'au dessus j'éssaye tant bien que mal d'intégrer ma condition siE10<94% envoyer un mail aux adresses mail situées
'sur la colonne B de la feuille 2 du classeur".
Set oMsgApp = New Outlook.Application
ListeDest() = Range("tblase[Mail]")
'C'est au dessus pour la ListeDest que j'ai besoin de préciser que ma liste de destinaitaire se trouve
'colonne A de la feuille 2'
Set oMsg = oMsgApp.CreateItem(olMailItem)
With oMsg
.To = sListeDest
.Attachments.Add sFichier
.Subject = "Rapport"
.Body = "Bonjour," & Chr(10) & Chr(13) & "Ci-joint le Rapport"
.Send
AccuseReception = True
'Nom de la feuille (remplacer Recap par celui de la Feuille à envoyer)
ThisWorkbook.Sheets("Recap").Copy
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
End With
oMsgApp.Quit
Set oMsgApp = Nothing
Set oMsg = Nothing
End Sub
Voilà donc une ébauche de mon code VBA. Est-il possible de me le compléter et corriger car malheureusement j'arrive à ma limite de compétence... je stagne depuis très longtemps dessus.
Autre question, faut-il faire 2 macros, une pour l'envoi du rapport via le bouton et une autre pour l'envoi automatique lorsque la cellule E10 est inférieur à 94%?
Je vous remercie par avance !
Cordialement