Macro pour envoyer un fichier via outlouok à une mailing list excel

davef

XLDnaute Nouveau
Bonjour à tous,

Après plusieurs recherche sur le net, je me tourne vers vous car je ne suis pas parvenu à trouver une réponse me satisfaisant.

Je cherche à créer une macro Excel:
Je dispose d'une liste de mail Excel ( colonne A = Prénom; colonne B = Nom; colonne C = Mail )
Je voudrais avoir un bouton qui après click afficherait une fenêtre qui :
-me demanderai d'entrer un titre
-puis d'entrer mon corps de mail
-puis de sélectionner le fichier à joindre

Après ça la macro enverrait à tous mes contact un mail en Bcc (copie cachée ie mes contacts ne voient pas à qui d'autre j'ai envoyé mon mail).

Merci d'avance à tous
 
C

Compte Supprimé 979

Guest
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Salut Davef

Tu te trompe de lieu ... ici nous ne sommes pas au supermarché :mad:

Tu t'inscrit tu ne te présentes même pas
Merci de faire un tour par Lien supprimé c'est très instructif

De plus des codes il en existe pleins
Ce lien n'existe plus

Tu as également des tutos sur le site pour faire des boite de dialogue

Maintenant, à toi de faire les premiers pas et de nous joindre un fichier avec le code que tu auras fais

A bon entendeur ;)
 
Dernière modification par un modérateur:

davef

XLDnaute Nouveau
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Merci Bruno pour ta réponse

Merci pour ta réponse.
Je suis nouveau sur ce forum mais je suis membre d'autres forum dans lesquels j'ai aidé beaucoup de gens dans le domaine mathématiques.
J'ai, avant de poster ma question, regarder sur le forum pour voir si je pouvais trouver ma réponse. Malheureusement non !

C'est vrai que je n'ai pas beaucoup alimenter mon profil et tu as raison je vais le faire...

Je n'ai pas envoyé mon ébauche de code car je suis vraiment pas très fort en VBA et je ne sais pas si ca va pouvoir aider qqun...


Sub SendEMail()
Dim Email As String, Subj As String
Dim Msg As String, URL As String
Dim r As Integer, x As Double
Dim NbLigne As Integer

' Select the first sheet line
Range("A1").Select

' Count the number of no empty lines
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop

For r = 2 To NbLigne 'data in rows 2-nbr de ligne
' Get the email address
Email = Cells(r, 3)

' Message subject
Subj = "Market Operations Notice"

' Compose the message
Msg = ""
Msg = Msg & "Dear " & Cells(r, 1) & " " & Cells(r, 2) & "," & vbCrLf & vbCrLf
Msg = Msg & "I am pleased to inform you that your annual bonus is "

Msg = Msg & Cells(r, 3).Text & "." & vbCrLf & vbCrLf
Msg = Msg & "Galaxy Team"

' Replace spaces with %20 (hex)
Subj = Application.WorksheetFunction.Substitute(Subj, " ", "%20")
Msg = Application.WorksheetFunction.Substitute(Msg, " ", "%20")

' Replace carriage returns with %0D%0A (hex)
Msg = Application.WorksheetFunction.Substitute(Msg, vbCrLf, "%0D%0A")

' Create the URL
URL = "mailto:" & Email & "?subject=" & Subj & "&body=" & Msg

' Execute the URL (start the email client)
ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus

' No Wait before sending keystrokes
Application.Wait (Now + TimeValue("0:00:02"))
Application.SendKeys "%s"
Next r
End Sub
 

davef

XLDnaute Nouveau
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Rebonjour Bruno,

Voici le code que j'ai réussi à faire mais je ne parviens pas à mettre la derniere touche : mettre la piece jointe dans le mail.
Je l'ai selectionner, le code marche mais je butte sur cette derniere étape.
Je souhaite m'excuser encore une fois pour mon manque de politesse plus tot dans la journée.

Voici mon code si tu veux bien m'aider :

Code:
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub SendEmail()
    Dim Email As String, Subj As String
    Dim Msg As String, URL As String
    Dim r As Integer, x As Double
    Dim NbLigne As Integer
    Dim Core As String
    Dim Filename As Variant
    
    
'       Select the first sheet line
        Range("A1").Select

'       Count the number of no empty lines
    Do While Not (IsEmpty(ActiveCell))
        NbLigne = NbLigne + 1
        Selection.Offset(1, 0).Select
    Loop
    
'       Message subject
        Subj = InputBox("What is the Subject ?", "Subject")
        
'       Message Core
        Core = InputBox("What is the Core of your Mail ?", "Core")
        
'       Attach your file
        Filename = Application _
        .GetOpenFilename("Pdf Files (*.pdf), *.pdf")
        If fileToOpen <> False Then
        MsgBox "Open " & fileToOpen
        End If
        

    For r = 2 To NbLigne

'       Get the email address
        Email = Cells(r, 3)


'       Compose the message
        Msg = ""
        Msg = Msg & "Dear " & Cells(r, 1) & " " & Cells(r, 2) & "," & vbCrLf & vbCrLf
        Msg = Msg & Core & vbCrLf & vbCrLf
        Msg = Msg & "Galaxy Team"
        
'       Replace spaces with %20 (hex)
        Subj = Application.WorksheetFunction.Substitute(Subj, " ", "%20")
        Msg = Application.WorksheetFunction.Substitute(Msg, " ", "%20")
                       
'       Replace carriage returns with %0D%0A (hex)
        Msg = Application.WorksheetFunction.Substitute(Msg, vbCrLf, "%0D%0A")
        

'       Create the URL
        URL = "mailto:" & Email & "?subject=" & Subj & "&body=" & Msg
        Attached = Filename

'       Execute the URL (start the email client)
        ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus

'       No Wait before sending keystrokes
        Application.Wait (Now + TimeValue("0:00:02"))
        Application.SendKeys "%s"
        SendKeys "%I" & "p" & Filename & "~" & "%s"
    
    Next r
    
End Sub
 

david84

XLDnaute Barbatruc
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Bonjour davef et bienvenu sur XLD, salut Bruno:),
davef, comme suggéré par Bruno dans son message, il nous manque un fichier exemple avec quelques données explicites et les explications qui vont bien pour pouvoir t'aider.
A+
 
C

Compte Supprimé 979

Guest
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

re,
Salut David84

@David, il suffit d'ajouter une adresse mail dans la cellule A2 avec une entête en A1 ;)

@davef, le problème est que tu utilises le shell pour créer un nouveau mail, c'est ok
sauf pour les pièces jointes, à ma connaissance c'est impossible

A+
 
C

Compte Supprimé 979

Guest
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Re,

Des possibilités, tu en as au moins 2 : soit via Outlook si tu as, soit via CDO (Collaborative Data Objects)

Tu as un tas de sujets traitant ces 2 exemples, il suffit de chercher un peu sur google en mettant : "VBA Excel"
devant ta demande

A+
 

david84

XLDnaute Barbatruc
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Re
Je ne comprends pas de quelles donées tu aurais besoin de plus que mon code
Parce que tu dis
Je dispose d'une liste de mail Excel ( colonne A = Prénom; colonne B = Nom; colonne C = Mail )
Donc le plus simple (outre le fait que c'est au demandeur de fournir un fichier) est de placer un fichier exemple explicite pour pouvoir tester les solutions proposées.
Bon courage pour la suite.
A+
 

davef

XLDnaute Nouveau
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Bonjour,

Merci Bruno pour ta réponse je vais essayer de trouver qqch.

Désole David je n'avais pas vu que l'on pouvait inserer son fichier Excel.
Je pense qu'il est trop tard et qu'il faut le faire quand on poste le message.

A+
 

david84

XLDnaute Barbatruc
Re : Macro pour envoyer un fichier via outlouok à une mailing list excel

Re
Désole David je n'avais pas vu que l'on pouvait inserer son fichier Excel.
Je pense qu'il est trop tard et qu'il faut le faire quand on poste le message.
Non, tu peux le faire quand tu veux : aller en mode avancé=>gérer les pièces jointes=>parcourir=>choisir le fichier=>envoyer.
Un fichier exemple explicite et anonymisé avec une dizaine de lignes maximum suffit.
A+
 

Discussions similaires

Réponses
12
Affichages
247

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal