Microsoft 365 Trouver Date début et date de fin

eric72

XLDnaute Accro
Bonjour à tous,
j'ai un planning avec des colonnes qui correspondent aux dates, puis j'attribue par vba des noms en dessous de ces dates, j'aimerais une formule qui, quand je saisie un nom en "M2" cela m'affiche la date de début et la date de fin de la période mais je cale!!!
j'ai essayé avec INDEX EQUIV mais sans succès
Auriez-vous une idée?
Merci beaucoup pour votre aide si précieuse.
 

Pièces jointes

  • test.xlsm
    16.4 KB · Affichages: 10

eric72

XLDnaute Accro
Essayez ça aussi :
VB:
Option Explicit
Private Dic As Dictionary, HDern As Date
Function DateDép(ByVal Nom As String, ByVal RngDon As Range, ByVal Date1 As Date)
   If HDern < Now Then InitDic RngDon, Date1
   If Dic.Exists(Nom) Then
      DateDép = Dic(Nom)(0)
   Else: DateDép = "": End If
   End Function
Function DateFin(ByVal Nom As String, ByVal RngDon As Range, ByVal Date1 As Date)
   If HDern < Now Then InitDic RngDon, Date1
   If Dic.Exists(Nom) Then
      DateFin = Dic(Nom)(1)
   Else: DateFin = "": End If
   End Function
Private Sub InitDic(ByVal RngDon As Range, ByVal Date1 As Date)
   Dim Cel As Range, Nom As String, TDat(), TDon(), L&, C%, TDF()
   Set Dic = New Dictionary
   TDon = RngDon.Value
   For L = 1 To UBound(TDon, 1)
      For C = 1 To UBound(TDon, 2)
         Nom = TDon(L, C)
         If Nom <> "" Then
            If Dic.Exists(Nom) Then
               TDF = Dic(Nom)
            Else
               TDF = Array(#12/31/9999#, 0)
               End If
            If TDF(0) > Date1 + L - 1 Then TDF(0) = Date1 + L - 1
            If TDF(1) < Date1 + L - 1 Then TDF(1) = Date1 + L - 1
            Dic(Nom) = TDF
            End If
         Next C, L
   HDern = Now + 1 / 86400
   End Sub
je veux bien essayer mais ce que tu as fait avant fonctionne tres bien
 

Discussions similaires

Réponses
15
Affichages
2 K