XL 2010 Envoi automatique mails outlook

Fibule86

XLDnaute Nouveau
Bonjour à tous,

Je poste car je ne trouve pas ma réponse sur le forum ou plutôt je n'arrive pas à adapter les réponses à mon problème étant donné que je suis une très jeune novice :rolleyes:dans le vba.

Je vous explique mon problème. J'ai un tableau qui va me servir de suivi durant au moins 6 mois. Je vais y saisir de nombreuses candidatures et j'ai besoin d'envoyer des mails automatiques à des moments différents.
- lors de la candidatures pour accuser réception de celle-ci et cocher la case pour ne pas lui renvoyer un autre mail
- lors de l'affectation pour lui indiquer son lieu et heure de travail et cocher la case pour montrer que j'ai envoyé le mail

Je voudrais me servir de ce tableau pour d'autres envois automatiques mais je ne vais pas tout demander en une seule fois et peut être que je pourrais me débrouiller plus ou moins seule pour le reste. J'ai besoin que vous me mettiez sur les rails.....

Comme vous pouvez le voir, j'ai écrit un embryon de code ( qui fonctionne) mais je cale pour l'envoi du mail automatique si j'ai plus de 2 adresses mail.... je n'arrive pas à comprendre comment lui dire que je souhaite envoyer le mail à toutes les adresses de la colonne J. Et puis surtout, je ne sais pas comment lui de cocher la case "R" si il est envoyé et de ne pas envoyé si "R" coché.....

J'espère avoir été explicite, si non n'hésitez pas à revenir vers moi.

Merci à ceux qui pourront m'aider
 

Pièces jointes

  • envoi_mail.xlsm
    33.7 KB · Affichages: 11

kaozuin

XLDnaute Nouveau
Salut,

Pour envoyer le mail en automatique il te suffit juste d'avoir le code comme ci dessous (rajouter le ''.send'') :

VB:
Private Sub CommandButton1_Click()
Dim Mail As Variant
Dim ligne As Integer

Set Mail = CreateObject("Outlook.Application")

For ligne = 2 To 4



With Mail.CreateItem(olMailItem)
    .Subject = "Candidature " & Range("j" & ligne)
    .To = Sheets("candidatures").Range("J" & ligne)
    .Body = Sheets("textes").Range("B2")
    .Display
    
    .send
    
End With
Next ligne
End Sub

Après je pense qu'il faudrait une varriable qui compte le nombre de ligne ainsi qu'une autre qui renseigne une cellules en même temps !
 

Dim.Reichart

XLDnaute Occasionnel
Bonjour,
Je compte commencer une macro du même ordre, mais de l'autre coté, celui du chercheur d'emploi, et je pense que nos outils devraient se ressembler dans la forme, à ceci près que je compte ajouter un bouton pour chercher les offres d'emploi d'abord.
J'effectuerais manuellement la recherche des adresses, je pense. Il y a trop de risque d'obtenir une adresse incorrecte ou inappropriée.
C'est une sorte de défi pour moi, et une bonne occasion de progresser en VBA.

Bonjour @kaozuin ,
Pour éviter les doublons, je pensais effectuer une recherche dans les mails envoyés, mais je pense qu'avec ta méthode, je devrais pouvoir ajouter la date d'envoi dans la colonne suivante.
 

Fibule86

XLDnaute Nouveau
Salut,

Pour envoyer le mail en automatique il te suffit juste d'avoir le code comme ci dessous (rajouter le ''.send'') :

VB:
Private Sub CommandButton1_Click()
Dim Mail As Variant
Dim ligne As Integer

Set Mail = CreateObject("Outlook.Application")

For ligne = 2 To 4



With Mail.CreateItem(olMailItem)
    .Subject = "Candidature " & Range("j" & ligne)
    .To = Sheets("candidatures").Range("J" & ligne)
    .Body = Sheets("textes").Range("B2")
    .Display
   
    .send
   
End With
Next ligne
End Sub

Après je pense qu'il faudrait une varriable qui compte le nombre de ligne ainsi qu'une autre qui renseigne une cellules en même temps !

Merci pour ce copier/coller de mon code, mais je ne veux pas envoyer mon mail directement mais pouvoir le visualiser et l'envoyer manuellement si tout va bien
 

zebanx

XLDnaute Accro
Bonjour Fibule86, le forum

Comme vous pouvez le voir, j'ai écrit un embryon de code ( qui fonctionne) mais je cale pour l'envoi du mail automatique si j'ai plus de 2 adresses mail.... je n'arrive pas à comprendre comment lui dire que je souhaite envoyer le mail à toutes les adresses de la colonne J. Et puis surtout, je ne sais pas comment lui de cocher la case "R" si il est envoyé et de ne pas envoyé si "R" coché.....

Non testé et peut-être pas tout compris mais cela te donnera des précisions dans la construction de ton code.

@+

VB:
Private Sub CommandButton1_Click()
Dim Mail As Variant
Dim ligne As Integer

Set Mail = CreateObject("Outlook.Application")

Set shc = Sheets("candidatures")
derligne = shc.Cells(1, 1).End(4).Row

For ligne = 2 To derligne
If Cells(ligne, "R") = "" Then  '-- si la cellule est vide
    With Mail.CreateItem(olMailItem)
        .Subject = "Candidature " & Range("j" & ligne)
        .To = Sheets("candidatures").Range("J" & ligne)
        .Body = Sheets("textes").Range("B2")
        .Display
        '.Send
      End With
    Cells(ligne, "R") = Now   '-affiche date et heure
End If
Next ligne

End Sub
 

Pièces jointes

  • envoi_mail.xlsm
    31 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
315 095
Messages
2 116 167
Membres
112 675
dernier inscrit
Tazra_IMOU