Envoi d'un mail depuis une liste sur excel

Brigitte

XLDnaute Barbatruc
Bonjour,

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.

Une idée ?

Merci à vous.
 

Brigitte

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Missi boucou,

Euh, avec un clic droit sur la feuille, j'ai pas : VISUALISER LE CODE...

Alors j'ai fait : ALT/F11 puis outils/références, et là ouf, ca marche, j'ai bien ce que tu me dis...

Oubliez pas de cliquer sur monzoo... hi hi tous les jours...
 

Staple1600

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Re


Une petite adaptation de mon premier fichier: Ce lien n'existe plus


Pour mettre des croix, double-cliques dans la colonne F
pour créer ta liste de diffusion.

Edition:
NB: Il faut activer ces références dans VBE
VBSOL.gif
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Re


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
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

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 ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Re



Non, le blanc c'était pour faire joli (lol)

Par contre le code ne fonctionnera que si les données ont la même structure

à savoir données dans colonne A à F

(ou alors il faut modifier le code en conséquence)
 

Brigitte

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

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.

Je t'envoie la copie écran en MP...

Normal ?
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

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)

Merci encore
 

Staple1600

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Re



Mais le staple , il a fait une méprise (pas bien ça)

A --> le destinaire
CC: copie carbone
CCI: copie carbone invisible

Là était l'erreur

Désolé
Je mets cela sur le dos de l'apéritif de ce midi :D
 

Brigitte

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Merci... Donc dans tes macros, partout où c marqué CC je remplace par CCI ?

C super en tout cas. Sacré boulot, d'autant plus si t'as l'esprit embué par l'alcool (pas bien ça, prends pas la route).
 

Staple1600

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Re

Et non pas CCI mas BCC,comme Blind Carbon Copy

Pour les autres forumeurs
Code:
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).
J'avais déjà titiller Outlook sur XLD, donc j'ai pas trop bossé
(mais j'ai bien bossé sur l'apéritif par contre.... non je rigole )

voir ici:
https://www.excel-downloads.com/thr...ande-explication-code-module-de-classe.93169/

• Source de la fonction Function SendMail(strSMTP)
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Envoi d'un mail depuis une liste sur excel

Comme jeanmarie m'a corrigé la macro en private, revoici le fichier pour ceux que ca intéresserait.

Bonne soirée et merci à toi staple. C'est vraiment nickel, reste à mettre dans le fichier.
 

Pièces jointes

  • STAPLEtestbrigitte3.xls
    36 KB · Affichages: 88

Tophe2

XLDnaute Impliqué
Re : Envoi d'un mail depuis une liste sur excel

Re le forum

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.

Cordialement
christophe.
 

Pièces jointes

  • Brigitte Mail 2.xls
    60 KB · Affichages: 99

Discussions similaires

Réponses
1
Affichages
78
Compte Supprimé 979
C