Envoi mail a partir d'un planning

Bonjour à tous,

Je suis nouveau ici et dans le monde du VBA, j'essaye de m'y mettre pour me faciliter la vie sur des taches redondantes au boulot.

Seulement voilà, pour l'instant je ne me facilite pas grand chose. Ça fait un petit moment que je bloque sur le code que je voulais créer et je crois que je vais avoir besoin d'un peu d'aide.

C'est un code destiné a envoyer un mail sur Thunderbird à partir d'un planning d'utilisation de salles, aux utilisateurs, un mois avant leur venue.

Dans Workbook:

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In Worksheets
    With ws
    If (DateDiff("m", Now, Cells(3, 3)) = 1) Then
    If (Range("A1").Value = "0") Then
    Call MailingAuto
    Range("A1").Value = "1"
End If
End If

End With

     Next ws
End Sub

On vérifie la date sur la cellule C3 (lundi) et en faisant la différence avec la date du jour, on voit si ca fait un mois.

Puis on vérifie que les mails n'ont pas été déjà envoyés (pour éviter que les mails ne s'envoient 10 fois si son ouvre 10 fois le classeur) grace a un chiffre caché en haut à gauche sur la feuille (1 ou 0).

On appelle le code de mailing automatique et on mets la valeur du marqueur a 1 pour signifier que les mails ont été déjà envoyés et que la prochaine fois le programme n'aura pas a le faire.

Seulement le code ne fonctionne pas, une âme charitable pourrait me corriger?

Merci d'avance!

Bonjour UncleBens et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum

Concernant votre demande, je pense que ça ira mieux avec ce genre de code, sinon merci de joindre un fichier

Private Sub Workbook_Open()
  Dim ws As Worksheet

  For Each ws In Worksheets
    If (DateDiff("m", Now, ws.Cells(3, 3)) = 1) Then
      If ws.Range("A1").Value = 0 Then
        Call MailingAuto
        ws.Range("A1").Value = 1
      End If
    End If
  Next ws
End Sub

Merci de votre participation

Cordialement

Bonjour BrunoM45,

Et merci beaucoup pour votre réponse.

C'est en effet bien mieux!

Si je peux me permettre une question de plus, j'aimerai vous demander si vous avez une idée pour un code qui puisse intégrer les différents hyperliens d'une feuille dans une variable avant de l'utiliser comme adresse mail?

Sub MailingAuto()

Dim thund As String
Dim email As String
Dim cc As String
Dim bcc As String
Dim subj As String
Dim body As String

email = AdresseMail
cc = "mon.adresse@organisation.fr"
bcc = ""
subj = Range("D16").Value
body = "Bonjour," & vbCrLf & "Ceci est un message automatique pour vous rappeler que ..." & vbCrLf & "Cordialement ,"

thund = "C:\Program Files\Mozilla Thunderbird\thunderbird.exe" & _
        " -compose " & """" & _
        "to='" & email & "'," & _
        "cc='" & cc & "'," & _
        "bcc='" & bcc & "'," & _
        "subject='" & subj & "'," & _
        "body='" & body & "'" & """"

Call Shell(thund, vbNormalFocus)
Application.Wait (Now + TimeValue("0:00:03"))
SendKeys "^{ENTER}", True

   End Sub

Ici j'aimerais faire une boucle pour trouver les adresses mail en hyperliens dans la feuille, envoyer le mail a cette adresse et continuer pour autant qu'il y ait d'autres adresses sur la feuille.

En vous remerciant par avance

Bonjour,

Une adresse mail dans une cellule est avant tout une donnée, pour moi il suffit de récupérer cette donnée

Si l'adresse mail est dans A1

email = Range("A1").Value

A+

Bien sur, mais il faut peut être que je détaille un peu plus mon fichier.

Je ne vais pas le poster car il contient des infos personnelles alors je vais vous le décrire.

C'est un planning d'utilisation de salles dans lequel une feuille représente une semaine, elle comporte en gros 5 colonnes doubles (matin et après-midi) pour chaque jour de la semaine.

Quand une salle va être occupée, je remplis les cases avec notamment le nom des utilisateurs et en hyperlien leur adresse mail pour pouvoir les contacter facilement par la suite.

L'occupation des salles dépend des semaines, parfois on fait le plein, parfois il n'y a personne, etc.

Le remplissage du calendrier est donc "aléatoire" et j'aimerais que le programme aille chercher les adresses mail s'il y en a et envoie un mail automatique a la personne.

Sachant qu'il y a souvent plusieurs utilisateurs sur une même semaine j'aurais aimé mettre ça dans une boucle pour répéter le processus pour chaque utilisateur.

Merci encore pour le temps que vous prenez a me répondre!

Rechercher des sujets similaires à "envoi mail partir planning"