Quelqu'un de doué en macro ??

Fermé
rom - Modifié par baladur13 le 18/08/2016 à 22:41
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 25 août 2016 à 10:28
Bonjour,

après de nombreuses recherches, je n'ai rien trouvé de détaillé a propos des macro assez complexes

en gros:

j'ai un classeur excel avec les noms (mr xxx) et adresses mail (***@***)
a chaque nom je dois envoyer un mail unique (m1) et une pièce jointes (pj1) dans un dossier.

est-ce réalisable svp ?

milles merci vous me feriez gagner énormément de temps !!!
A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
20 août 2016 à 12:08
Bonjour,

Voici ton classeur avec la macro d'envoi de tes mails

https://www.cjoint.com/c/FHukgGDbfDl

Il faut bien sûr mettre des adresses correctes.
1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
22 août 2016 à 09:52
Bonjour,

est-il possible de me faire une "traduction" de la macro svp ?
Les macros s'écrivent en anglais et je ne vois pas l'intérêt de la mettre en français car tu ne pourras pas t'en servir.

changer le format de la pj à envoyer, par en xls. ?

Je t'avais demandé quel était le suffixe et tu ne l'as pas précisé !!!!
Call env_courriel(elm.Value, [emet].Value, [objt].Value, rep & _
elm.Offset(0, -6).Value & elm.Offset(0, -5).Value & [fich].Value & ".xls" _
, elm.Offset(0, 1).Value) 


doit-on écrire ou modifier l'adresse à la main ?
Je t'ai mis les fonctions qui permettent de les retrouver en fonction de ce que tu as mentionné
l'ensemble des PJ sont située dans mes document/ mail
et maintenant
exemple nouveau dossier de recherche : document/ artistes / ndf / juillet / réglées / envoyées ??

Si c'est autrement qu'il faut faire faudrait une boule de cristal mais ce n'est plus de l'informatique. ;-)

voici une copie de la macro :
Des fois que je ne la connaisse pas ?
Pour la rendre lisible, il y a des balises appropriées sinon personne ne l'a lit ;-)

Lorsque l'on pose une question macro, il faut être très précis sinon c'est impossible qu'elle soit adaptée et manifestement ton organisation n'est pas celle que tu as évoquée. Si tu donnes des éléments précis et concrets, il sera possible de coller à ton problème.
1
Quand je parlais de traduction, c'est pas du littéral, mais explication (DIm = nouvelle action)
comme le changement de dossier, ce n'est juste pour avoir plusieurs variables, et faire cette macro dans différentes circonstances.

pour créer cette marco, tu as fait enregistré macro puis effectué la manip ? il n'existe pas une sorte de registre de macro, avec les fonction de chacune ?

Pour la configuration d'envoi via outlook 2013, il faut activer l'option OUTLOOKLIBRARY dans propriété de la macro. mais je ne trouve pas ces propriété ...??


Merci beaucoup de ton aide,
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709 > rom
25 août 2016 à 10:28
Bonjour,

explication (DIm = nouvelle action)
Le VBA posséde une aide très bien faite et là je pense qu'il vaut mieux l'utiliser car elle est fiable plutôt que de glaner sur internet des infos non vérifiées.

tu as fait enregistré macro puis effectué la manip ?
Surtout pas ! Cette procédure est fournie par Microsoft pour l'envoi des mail et je l'ai seulement adaptée à ton classeur.

envoi via outlook 2013
C'est une toute autre procédure que personnellement je n'utilise pas.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
18 août 2016 à 22:38
Bonjour,

est-ce réalisable svp ?
Oui, c'est possible avec excel mais pour coder une macro il faut savoir ce que tu veux envoyer, dans quelles conditions et bien sûr connaitre l'organisation du classeur.

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
0
http://www.cjoint.com/c/FHtgYjtdocu
0
bonjour,


voici le lien de mon classeur.
pour les pièces jointes a à faire suivre à chaque des destinataires, le nom de la PJ est celui du destinataire.
l'ensemble des PJ sont située dans mes document/ mail

milles merci pour votre aide !!!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
Modifié par gbinforme le 19/08/2016 à 09:26
le nom de la PJ est celui du destinataire.
C'est-à-dire ?
nomprenom ?
Sans espace et avec quel suffixe ?
Tu veux envoyer tout ton classeur d'un coup ?
Internet n'est pas encore assez sophistiqué pour communiquer en subliminal tes idées !
0
rom > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
19 août 2016 à 09:42
nom du fichier à joindre : NOMPRENOMndfjuillet16 (ndfjuillet16 est identique à tous les destinataires)

j'ai dix destinataires dans mon classeur, avec 10 PJ à joindre (une différente à chaque destinataire).
les PJ à envoyées sont des notes de frais propre à chacun, même cas que pour des fiches de salaires.

Le top serai de pouvoir envoyer les PJ à chaque destinataires du classeur (+ si possible rajouter un texte du genre : "voici vos ndf du mois de juillet 16, à signer au plus vite".
(je pense que cette phrase doit être rajoutée dans mon classeur de données, en face de NOM par exemple ? )


ce serai une sorte de publipostage, qui envoi à chaque destinataire mail une PJ nominative.

internet est un lieu d'échange extraordinaire. encore merci pour votre altruisme !!
0
merci beaucoup pour vos réponses !!


aussi, est-il possible de me faire une "traduction" de la macro svp ? histoire que je puisse m'y retrouver.

Pour l'adresse du fichier à rechercher, je n'arrive pas à la changer, entre le (), "", ...
et changer le format de la pj à envoyer, par en xls. ?

doit-on écrire ou modifier l'adresse à la main ?


exemple nouveau dossier de recherche : document/ artistes / ndf / juillet / réglées / envoyées ??


merci d'avance !!!

voici une copie de la macro :


ub Envoyer()
Dim elm As Range
Dim rep As String
Dim Wsh As Object
Dim Sys As Object
Set Wsh = CreateObject("WScript.Shell")
Set Sys = Wsh.Environment("SYSTEM")
rep = Wsh.SpecialFolders("MyDocuments") & "\mail\"
Set Sys = Nothing
Set Wsh = Nothing
For Each elm In ActiveSheet.UsedRange.Columns("G").Cells
If InStr(1, elm.Value, "@") > 0 Then
Call env_courriel(elm.Value, [emet].Value, [objt].Value, rep & _
elm.Offset(0, -6).Value & elm.Offset(0, -5).Value & [fich].Value & ".pdf" _
, elm.Offset(0, 1).Value)
End If
Next elm
End Sub

Public Sub env_courriel(des, eme, obj, fic, mes)
Dim omg As Object
Dim msg As String
Dim tcl As Long
Dim t_p(), rep
On Error GoTo fin
Set omg = CreateObject("CDO.Message")
With omg
.Subject = obj ' sujet
.From = eme ' adresse mail de l'expéditeur n'est pas obligatoire
.To = des ' Email du destinataire doit-être correct ici
.TextBody = mes
With .Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp." & Mid(eme, InStr(1, eme, "@") + 1)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 ' 587 25 ?
'----- Dans le cas où le serveur de mail demande une authentification
' .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"
' .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = eme
' .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mon mot de passe"
' ----- avec "SSL"
' .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
'----------------
.Update
End With
.AddAttachment (fic)
.Send
End With
Set omg = Nothing
MsgBox "Envoi courriel bien effectué"
fin: ' si erreur on sort de la procédure : description de l'erreur survenue
If Err.Number <> 0 Then MsgBox "Anomalie détectée" & vbLf & vbLf & Err.Description & fic
End Sub
0