Bonsoir à tous,
Après multiples recherches et pleins d'exemples intéressant, je reste coincé sur ma procédure suivante.
1-Je cherche à récupérer la valeur (adresse mail) correspondant à la cellule de la première ligne et de la colonne "O" dans ma plage filtrée.
2-Je cherche à entrer la date du jour (sans heure) dans toutes les cellules de la colonne "U" de ma plage filtrée.
A savoir que le code suivant me renvoie systématiquement une erreur (14, 13, ou 9) et qu'après des heures de modifications et de recherches sur internet, je reste loin du résultat escompté.
En vous remerciant de votre aide par avance,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub EnvoiMailRelanceTvx() Dim OutlookApp As Object Dim OutlookMail As Object Dim adresse As String Dim message As String Dim sujet As String Dim appOutlook As Outlook.Application Dim TCD As Range, Cell As Range Dim Plage As Range Dim Var As String 'Si une erreur survient, on va à la ligne "errorHandler" On Error GoTo errorHandler If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData Set TCD = Range("B3:V" & Range("B65536").End(xlUp).Row) TCD.AutoFilter Field:=14, Criteria1:="=CTM" 'Tri sur destinataire = CTM TCD.AutoFilter Field:=13, Criteria1:="=" 'Tri sur date de réalisation non renseignée TCD.AutoFilter Field:=12, Criteria1:="<" & Format(Date, "mm/dd/yy") 'Tri sur date de fin d'exécution prévisionnelle dépassée Set Plage = Range("a3:v" & Range("a65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For i = 3 To Plage("a" & Rows.Count).End(xlUp).Row 'Définition de la plage de test (de la 3ème ligne jusqu'à première cellule vide de la colonne b) Range("u" & i).Value = Format(Now(), "dd/mm/yyyy") 'lorsqu 'un mail a été envoyé, la cellule en u est remplie avec la date d'envoi du mail afin d'éviter l'envoi de plusieurs mails Var = Range("o" & i).Value Next i Set appOutlook = CreateObject("Outlook.Application") If Not (appOutlook Is Nothing) Then sujet = "URGENT : dates prévisionnelles d'interventions dépassées !" 'Définition du sujet du mail adresse = Var 'Recherche l'adresse mail du destinataire 'Définition du message message = "Bonjour, " & vbCrLf & vbCrLf & _ "Nous vous informons que blablabla ... " & vbCrLf & _ "Le sécrétariat." 'Paramètres de l'application mail Set OutlookApp = CreateObject("outlook.application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .Subject = sujet .To = adresse .body = message .send 'Envoi du mail End With End If errorHandler: If Err.Number <> 0 Then MsgBox "Envoi msg : " & Err.Number '"Impossible d'effectuer cette opération !" & vbCrLf & "Merci de vérifier que Microsoft Outlook est bien ouvert !" & vbCrLf & _ '"Aucun mail n'a été envoyé !", vbCritical, "Attention !" End If End Sub
Cordialement.








Répondre avec citation





Partager