Bonjour j'ai un problème à traiter en VBA mais je ne sais pas comment m'y prendre.

J'ai un tableau Excel ressemblant à ceci:

Il y a des Réf qui proviennent parfois de plusieurs fournisseur.
Il y a des dates qui arrivent à échéance

Réf Fournisseur e-mail Date CDC Date FT Date REV
MP026 riri riri@fournis.om.com 06/01/2016 16/01/2016 19/01/2016
MP027 fifi fifi@fournis.om.com 07/01/2016 17/01/2016 20/01/2016
MP028 loulou loulou@fournis.om.com 08/01/2016 18/01/2016 21/01/2016
MP029 lulu lulu@fournis.om.com 09/01/2016 19/01/2016 22/01/2016
MP030 popo popo@fournis.om.com 10/01/2016 20/01/2016 23/01/2016
MP031 jiji jiji@fournis.om.com 11/01/2016 06/01/2016 24/01/2016
MP032 huhu huhu@fournis.om.com 12/01/2016 22/01/2016 25/01/2016
MP033 bobo bobo@fournis.om.com 13/01/2016 23/01/2016 07/01/2016
MP034 popo popo@fournis.om.com 14/01/2016 24/01/2016 27/01/2016
MP035 momo momo@fournis.om.com 15/01/2016 25/01/2016 28/01/2016
MP036 momo momo@fournis.om.com 16/01/2016 26/01/2016 29/01/2016

J'aimerai réer des alertes quand une date arrive à échéance de la façon suivante:

Faire un seul MsgBox par fournisseur disant par exemple:


- riri MP026 délai CDC arrive à échéance

ou

- jiji MP031 délai FT arrive à échéance

ou

- momo MP035 délai CDC arrive à échéance
MP036 délai CDC arrive à échéance
délai FT arrive à échéance






Voici ce que j'ai commencé mais ce n'est pas concluant car il y a des erreurs que je comprends pas et surtout je ne sais pas comment faire en sorte de ne pas traiter 2 fois la même alerte. (exemple de popo)


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
68
69
70
71
72
73
74
75
Sub ComptIdentique()
 
 
Dim Email As String
Dim DernLigne As Long
Dim T_date
Dim Message As String
Dim MessageCDC As String
Dim MessageFT As String
Dim MessageREF As String
Dim DateCDC As String
Dim DateFT As String
Dim DateREV As String
Dim Ref As String
 
Dim i As Integer
Dim j As Integer
Dim PlageEmail As Range
Dim prec As String
Dim Delai As Integer
Dim Année As Integer
 
 
 
Set PlageEmail = Worksheets("feuil1").Range("C1: C65000 ")
 
T_date = Date
Année = 3 'ans
Delai = Année * 365
 
DernLigne = Range("C1048576").End(xlUp).Row
 
 
 
 
    For i = 1 To DernLigne
 
          Email = Range("C1").Offset(i).Value
 
          For j = 1 To DernLigne
             Ref = Range("A1").Offset(j).Value
             DateCDC = Range("F1").Offset(j).Value
             DateFT = Range("H1").Offset(j).Value
             DateREV = Range("J1").Offset(j).Value
 
 
            If Range("C1").Offset(j).Value = Email Then
 
            If T_date - Delai > DateCDC Then
            MessageCDC = " délai CDC " & DateCDC & " arrive à échéance"
            End If
            If T_date - Delai > DateFT Then
            MessageFT = " délai FT " & DateFT & " arrive à échéance"
            End If
            If T_date - Delai > DateREV Then
            MessageREV = " délai REV " & DateREV & " arrive à échéance"
            End If
 
            Message = Message & Ref & vbCrLf & MessageCDC & vbCrLf & MessageFT & vbCrLf & MessageREV & vbCrLf
 
                If Message <> "" Then
                     MsgBox "Fournisseur " & Email & vbCrLf & vbCrLf & Message
                End If
 
            End If
 
 
 
         Next j
 
        Email = ""
        Message = ""
    Next i
 
End Sub


Merci pour vos idées