1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| Sub EnvoiMail()
Dim ObjOutlook As Object, Worksheet As Object, txt As String, cel As Range
Set ObjOutlook = CreateObject("outlook.application")
Set Worksheet = Sheets()
Dim Resultat As String, Feuille As Long, Envoi As Boolean
Feuille = 0
Résultat = "Rien"
Envoi = False
Do While Envoi = False
Do While Feuille = 0
Resultat = InputBox("Pour quel mois voulez-vous envoyer les attestations pôle emploi ?", "Sélection du mois")
If Resultat = "Janvier" Then
Feuille = 1
ElseIf Resultat = "Février" Then
Feuille = 2
ElseIf Resultat = "Mars" Then
Feuille = 3
ElseIf Resultat = "Avril" Then
Feuille = 4
ElseIf Resultat = "Mai" Then
Feuille = 5
ElseIf Resultat = "Juin" Then
Feuille = 6
ElseIf Resultat = "Juillet" Then
Feuille = 7
ElseIf Resultat = "Août" Then
Feuille = 8
ElseIf Resultat = "Septembre" Then
Feuille = 9
ElseIf Resultat = "Octobre" Then
Feuille = 10
ElseIf Resultat = "Novembre" Then
Feuille = 11
ElseIf Resultat = "Décembre" Then
Feuille = 12
Else: MsgBox "Le mois sélectionné n'est pas bon, veuillez réessayer." & Chr(10) & Chr(10) & "Attention : Il faut inscrire l'orthographe exact, en commençant par une majuscule et en plaçant les accents.", vbOKOnly, "Erreur"
GoTo LastLine
End If
Loop
MsgBox "Le mois sélectionné est " & Resultat & ".", vbOKOnly, Confirmation
If Worksheet(Feuille).Cells(1, 2) = "" Then
MsgBox "Attention la 1ère ligne est vide, elle doit comporter les en-têtes du tableau." & Chr(10) & Chr(10) & "Veuillez rectifier le tableau ou vérifier que vous avez sélectionné le bon mois." & Chr(10) & Chr(10) & "Information : Le mois sélectionné actuellement est " & Resultat, vbOKOnly, "Erreur"
ElseIf Worksheet(Feuille).Cells(2, 1) = "" Then
MsgBox "Attention la 1ère colonne est vide" & Chr(10) & Chr(10) & "Veuillez rectifier le tableau ou vérifier que vous avez sélectionné le bon mois." & Chr(10) & Chr(10) & "Information : Le mois sélectionné actuellement est " & Resultat, vbOKOnly, "Erreur"
Else 'Bloc permettant de vérifier qu'il y a un tableau et qu'il est bien positionné
Envoi = True
End If
Loop
If MsgBox("L'envoi des mails pour le mois de " & Resultat & " va commencer." & Chr(10) & Chr(10) & "Confirmez-vous ?", vbOKCancel, "Confirmation") = vbCancel Then
GoTo LastLine
Else
Worksheet(Feuille).Cells(1, 11) = "Pièce jointe"
End If
For i = 2 To Worksheet(Feuille).Cells(Rows.Count, 1).End(xlUp).Row
If i = 10 Or i = 20 Or i = 30 Or i = 40 Or i = 0 Or i = 60 Or i = 70 Or i = 80 Then
MsgBox "Appuyez sur Ok pour préparer les 10 prochaines mails", vbOKOnly, "Confirmation" 'Boite de dialogue permettant de faire des paliers de création de 10 mails max
End If
Worksheet(Feuille).Cells(i, 2) = UCase(Worksheet(Feuille).Cells(i, 2))
If Worksheet(Feuille).Cells(i, 2).Interior.ColorIndex <> 2 Then
With Worksheet(Feuille).Cells(i, 11)
.Hyperlinks.Add Anchor:=Worksheet(Feuille).Cells(i, 11), Address:="Publipostage\Test\Attestation Pôle Emploi - " & Resultat & " 2020 - " & Worksheet(Feuille).Cells(i, 2) & " " & Worksheet(Feuille).Cells(i, 3) & ".pdf"
End With 'Création d'une colonne supplémentaire contenant le lien hypertexte correspondant
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.Display
.To = Worksheet(Feuille).Cells(i, 8).Value
.CC = "" 'copie
.Subject = "Votre attestation Pôle Emploi - " & Resultat 'titre
.Body = Worksheet(13).TextBoxes(1).Text 'message
'pièces jointes
.Attachments.Add "Chemin d'accès\Publipostage\Test\Attestation Pôle Emploi - " & Resultat & " 2020 - " & Worksheet(Feuille).Cells(i, 2) & " " & Worksheet(Feuille).Cells(i, 3) & ".pdf"
'au choix l'une des trois lignes suivantes
.Display 'pour afficher le message dans outlook
'.Save 'pour le sauver dans les brouillons
'.send 'pour l'envoyer
End With
Else
End If
Next i
MsgBox "Tous les mails ont été envoyés.", vbOKOnly, "Terminé"
LastLine: End Sub |