mail selon choix dans combobox

ploz

XLDnaute Occasionnel
Bonsoir à tous

je recherche de l'aide pour l'envoie par mail de ma feuille en pdf suivant le choix effectuer dans ma combobox

un exemple. Si dans la combobox, je clique sur Departement 1, en cliquant sur sur le bouton "Enregister", j'enverrai un mail à Monsieur X + monsieur A + Monsieur B, si dans la combobox, je clique sur departement 2, en cliquant sur le bouton "envoyer", j'enverrai un mail à Monsieur Y + monsieur A et monsieur B

a savoir que ma combobox se déroule comme cela

Code:
With monsieur_metier
    .AddItem "monsieur X"
    .AddItem "Y"
    .AddItem "A"
    .AddItem "B"
End With


j'ai déjà un bout de code pour outlook qui et fonctionnel =) pour la perte d'un mdp

le voici

'permet de recevoir un mail avec le mdp
Sub recup_mdp_valider_Click()

Dim ol As Object
Dim ArticleDeCourrier As Outlook.MailItem
Dim strMessage As String
Dim lMatch As Variant

lMatch = Application.Match(Me.champ_mail.Text, Worksheets("Admin").Range("C:C"), False)

If IsError(lMatch) Then
MsgBox "L'adresse E-mail saisie ne figure pas dans notre base de données"
Exit Sub
End If

strMessage = "Bonjour, " & Worksheets("Admin").Range("A:A").Cells(lMatch).Value & Chr(10)
strMessage = strMessage & "Ceci est un message interne généré automatiquement." & Chr(10)
strMessage = strMessage & "Votre mot de passe va vous parvenir par mail d'ici quelques minutes" & Chr(10)
strMessage = strMessage & "Cordialement" & Chr(10)

If MsgBox(strMessage & Chr(10) & Chr(10) & "", vbConfirmerNo) = vbNo Then Exit Sub

Set ol = CreateObject("outlook.application")
Set ArticleDeCourrier = ol.CreateItem(olMailItem)
ArticleDeCourrier.To = Worksheets("Admin").Range("C:C").Cells(lMatch).Value
ArticleDeCourrier.Subject = "Mot de passe oubliée"
strMessage = "Bonjour, " & Worksheets("Admin").Range("A:A").Cells(lMatch).Value & Chr(10)
strMessage = strMessage & "Ceci est un e-mail généré automatiquement." & Chr(10)
strMessage = strMessage & "Voici votre mot de passe: " & Worksheets("Admin").Range("B:B").Cells(lMatch).Value & Chr(10)
strMessage = strMessage & "Cordialement"
ArticleDeCourrier.Body = strMessage
ArticleDeCourrier.Send

Set ol = Nothing

End Sub

Merci d'avance pour votre aide
 

Lone-wolf

XLDnaute Barbatruc
Re : mail selon choix dans combobox

Bonjour ploz,

si tu as fait un test avec mon fichier, tu as dû voir que le pdf viens se mettre en pièce jointe. Maintenant quand tu clique su Envoyer la PJ vas partir automatiquement avec le message.


A+ :cool:
 

ploz

XLDnaute Occasionnel
Re : mail selon choix dans combobox

Bonjour,

oui oui c'est du bon boulot, cependant le mieux je voudrais que mes adresse mail soit directement dans le code sa me permettrais de me repérer mieux enfin je pense, du genre
IF XXX = "Departement 1" THEN destinataires=" Monsieur X;monsieur A;Monsieur B"
IF XXX = "departement 2" THEN destinataires = "Monsieur Y;monsieur A;monsieur B"

voici la deuxieme idée

Regarde la pièce jointe Classeur1.xlsm le descriptif est a l'interieur

merci de ton aide en tout cas c'est gentil de venir en aide à un débutant =)
 

Pièces jointes

  • Classeur1.xlsm
    123.3 KB · Affichages: 35

Lone-wolf

XLDnaute Barbatruc
Re : mail selon choix dans combobox

Re ploz,

j'ai repris la macro de mon fichier pour le bouton Envoyer, je pense que l'exemple sera plus compréhensible.


Code:
Dim Exp, PersA, PersB, Couple, Chemin As String, Fin as Boolean

Private Sub CmdEnvoyer_Click()
Dim olApp, objMail
Dim olmail As MailItem
           
      'Pour les 3 Nom complet & Adresse email
Exp = TextBox8.Value & "<" & TextBox10.Value & ">"
PersA = TextBox2.Value & "<" & TextBox4.Value & ">"
PersB = TextBox5.Value & "<" & TextBox7.Value & ">"

Couple = PersA & ";" & PersB

Chemin = Application.GetOpenFilename("Fichier pdf,  *.pdf*")
ChDrive "D:"
ChDir ("D:\Pdf-doc\")  'DD et Chemin à modifier.
    
    Set olApp = CreateObject("Outlook.Application")
    Set objMail = olApp.CreateItem(olMailItem)
    
    With objMail
    .To = Exp
    .CC = Couple
    .Subject = "Test"
    .Body = "Bonjour !"
    .Display
    End With

On Error GoTo Fin
If VarType(Chemin) <> 11 Then
objMail.Attachments.Add Chemin
End If
Fin:
Application.DisplayAlerts = False
Exit Sub
End Sub

comme tu peux le voir ici, il te suffit de rajouter d'abord les variables (PersC-PersD-PersE), puis faire comme l'exemple donné.



A+ :cool:
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : mail selon choix dans combobox

Re ploz,

Il faut que tu insère des colonnes entre chaque département pour y mettre le nom des correpondants, parce-que tu ne peux pas envoyer des mails sans mettre le nom complet.

colonnes.jpg

Ensuite, copie ceci dans un module

Code:
Dim Exp, Groupe, Chemin As String, Fin as Boolean

Private Sub CmdEnvoyer_Click()
Dim olApp, objMail
Dim olmail As MailItem
           
with Sheets("BD")
lig = .Range("d65536").end(xlup).row

For i = 2 to lig
Exp = .Cells(i, 1) & "<" & .Cells(i, 4)  & ">"

P1 = .Cells(i, 5) & " " & .Cells(i, 6)  
P2 = .Cells(i, 7) & " " & .Cells(i, 8)  
P3 = .Cells(i, 9) & " " & .Cells(i, 10)  
P4 = .Cells(i, 11) & " " & .Cells(i, 12)  
P5 = .Cells(i, 13) & " " & .Cells(i, 14)  
P6 = .Cells(i, 15) & " " & .Cells(i, 16)  
Next i
End With

Groupe = P1 & "; " & P2 & "; " & P3 & "; " & P4 & "; " & P5 & "; " & P6

'Chemin = Application.GetOpenFilename("Fichier pdf,  *.pdf*")
'ChDrive "D:"
'ChDir ("D:\Pdf-doc\")  'DD et Chemin à modifier.
   
    Set olApp = CreateObject("Outlook.Application")
    Set objMail = olApp.CreateItem(olMailItem)
   
    With objMail
    .To = Exp
    .CC = Trim(Groupe)
    .Subject = "Test"
    .Body = "Bonjour !"
    .Display
    End With

On Error GoTo Fin
If VarType(Chemin) <> 11 Then
objMail.Attachments.Add Chemin
End If
Fin:
Application.DisplayAlerts = False
Exit Sub
End Sub



A+ :cool:
 

Pièces jointes

  • colonnes.jpg
    colonnes.jpg
    22.2 KB · Affichages: 14
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : mail selon choix dans combobox

Re ploz,

on c'est croisés, pendant que tu copiais le code , j'ai apporté la modif. Il faut enlever les derniers crochets après P6. AA-CC-EE etc., ce sont les noms et prénoms des personnes à qui tu envoies les mails.


A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : mail selon choix dans combobox

Re ploz,

normal puisque la macro se trouve dans le module. Avant, change Private Sub CmdEnvoyer_Click()
par Sub Envoyer().

Ensuite dans le bouton Enregistrer avant End Sub tu mets Call Envoyer.

Oubien tu rajoute un bouton avec comme nom CmdEnvoyer puis,
dans Private Sub CmdEnvoyer_Click() tu copie la macro End Sub.



A+ :cool:
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 779
Messages
2 092 047
Membres
105 168
dernier inscrit
makari69