Je pense que ce sujet a été traité mille fois, dans tous les sens. Mais je ne trouve pas mon bonheur ou comment formuler ma recherche.
Nous avons un fichier excel (pas besoin de le joindre, c juste la philosophie) reprenant une base de données : nom, prénom, adresse, email...
Ce fichier sert à faire des invitations depuis word (fusion) mais nous voudrions n'envoyer des invitations qu'aux personnes (en cochant une case par exemple) qui n'ont pas d'email. Jusque là on sait faire (requête : si pas présence d'email).
Pour faire donc des économies substantielles, nous voudrions parallèlement, envoyer cette invitation en pièce jointe (ou dans le corps de l'email) par mail aux seules personnes disposant d'une adresse email.
Nous avons trouvé la parade en faisant une liste de distribution outlook, mais cela suppose la mise à jour de deux fichiers : excel et outlook. Si on pouvait cliquer dans le fichier excel sur un bouton et que ca déclenche un mail outlook en reprenant les boîtes aux lettres présentes dans la colonne "email", ce serait fabuleux.
Je précise qu'envoyer une des feuilles d'un classeur par mail, on sait le faire, j'ai mis un bouton dans un autre classeur et quand je clique ca ouvre outlook, ca joint le fichier : mais il faut que je tape les emails...
Code:
Sub MacroMail()
Dim AccuseReception As Boolean
Dim Sujet As String
'
ActiveWorkbook.Windows(1).SelectedSheets.Copy
AccuseReception = True
Sujet = "Titre au choix"
ActiveWorkbook.SendMail "", Sujet, AccuseReception
ActiveWorkbook.Close False
End Sub
Donc c une combinaison de tout ca qui nous intéresserait.
Voilà quelques précisions pour dompter la bête: (* cf zoo )
Dans la fonction: Function SendMail(strSMTP)
Code:
With oMail
'.To = strSMTP[COLOR=Green] ' si tu décommentes : A sera actif[/COLOR]
.CC = strSMTP [COLOR=Green]'ici CC pour Carbon Copy[/COLOR]
.Subject = "Compte-rendu de la dernière réunion"
'[COLOR=Green]ici le corps du message[/COLOR]
.Body = CustomerMessage
'[COLOR=Green]ici pièce jointe ou pas[/COLOR]
'.Attachments.Add
.Display
Donc avec ces modifs, A sera activé
mais chaque destinaire verra l'adresse des autres destinataires
.To = strSMTP
'.CC = strSMTP
Ah ok si j'ai tout compris, avec ta macro, si j'envoie en mettant dans cc, personne ne verra l'adresse de personne ? trop fort... TROP FORT... Merci, ca roule impecc... Me reste à copier le code pour le mettre dans le classeur de ma copine et tout et tout, ca, c pas gagné vu mes compétences.
Pour faire ca je dois recopier tout ce que tu as mis :
- dans FL dans la vraie feuille de son fichier ? (le nom a de l'importance "FL" ?)
- dans Declarations (comment on fait : c un module renommé ?)
- dans procEMAIL (idem, un module renommé ? le nom est important ?)
Je suis une quiche, d'où mes questions.
Et donc si je mets la macro ci dessous qq part (mais ou exactement) pour pouvoir faire que au lieu de se mettre dans cc (si ma collègue s'en fichait que les gens se voient) ca se mette dans "A" ?
Encore une question, je peux ? c normal que tout soit blanc sous le fichier rempli, il faut ca ou pas ?
Ok, mais je viens d'essayer en mettant mon adresse, et l'une des deux a rien reçu... la première (qui est en fait celle qui envoie, remarque bien... donc), mais sinon sur la deuxième, j'ai vu les emails des autres... ET j'avais pas changé le code.
Salut, sinon il y a Ron's Excel Tips à visiter, particulierement solutions via CDO qui tourne sous OExpress et OutLook.il se peut également d'avoir besoin de ClickYes, Redemption
Merci kiki, mais staple a fait un boulot énorme, enfin je pense qu'il m'a écrit tout ce code... et on touche au bout, donc si on peut, on va aller au bout, hein jeanmarie.
Plus que le souci :
1. de garantir la confidentialité (car là je confirme, on voit tout le monde)
2. mettre tout ce code dans le fichier (et ca c pas de la tarte pour une quiche comme moi, hi hi)
Function SendMail(strSMTP)
Dim strEmail
Dim strMsg
Dim oLook
Dim oMail
Set WshShell = CreateObject("WScript.Shell")
Set oLook = CreateObject("Outlook.Application")
Set oMail = oLook.CreateItem(0)
With oMail
'.To = strSMTP
'.CC = strSMTP
[B].BCC = strSMTP[/B]
.Subject = "Compte-rendu de la dernière réunion"
.Body = CustomerMessage
'.Attachments.Add
.Display
WshShell.SendKeys "%y"
End With
Set oMail = Nothing
Set oLook = Nothing
End Function
---> Brigitte
Sacré boulot, d'autant plus si t'as l'esprit embué par l'alcool (pas bien ça, prends pas la route).
Je reviens pour aller dans le sens de Staple1600 le fichier joint dans la colonne J (Message) mettre soit un "X" destinataire soit "C" Copie soit "I" invisible (en majuscule).
Le fichier est joint si besoin pour adapter à ton fichier n'hésite pas.