Bonjour mes meilleurs voux à toutes et à tous
Voici un bout d'application qui fonctionne bien .
Il recherche une date classer dans le sens décroissant se
trouvant dans la colonne C.
Lorsqu'il n'a pas trouvé la date il recherche la date
suivante.
Le seul petit problème lorsqu'il n'y a plus de date dans
la colonne.
i = i + i continue de compter.
--------------------------------------
Sub CherDatFinFS() ' Ok
Dim Dat2, Dat3, Arr2, Pos2 As Variant, i&
' Dat2 = InputBox("indiquez la date" & _ 'ligne pour
essai
' Chr(10) & "de fin à rechercher (dat2) :" & Chr
(10) & " JJ/MM/AA")
Dat2 = DatFin
If Dat2 = "" Or Not IsDate(Dat2) Then
' MsgBox "ERREUR Dat2"
eRRe = "ERREUR"
Exit Sub
Else
Dat2 = DateValue(Dat2)
Arr2 = _
Range("C1:C" & Cells(Rows.Count, "C").End
(xlUp).Row).Value2
If Not IsError(Application.Match(CLng(Dat2), Arr2, 0))
Then
Pos2 = Application.Match(CLng(Dat2), Arr2, 0)
i = Pos2
Do
i = i + 1
If Cells(i, "C").Value = Dat2 Then _
Pos2 = Cells(i, "C").Row
Loop Until i = Cells(Rows.Count, "C").End(xlUp).Row
' MsgBox "Le " & Dat2 & Chr(10) & " a été trouvé en
C" & Pos2
Else
If Dat2 > Application.Max(Arr2) Then 'Or Dat2 <
Application.Min(Arr2) Then
MsgBox "Le " & Dat2 & " n'a pas été trouvé et " & _
"aucune date suivante n'existe."
eRRe = "ERREUR"
Exit Sub
End If
Do
Dat2 = Dat2 + 1
Pos2 = Application.Match(CLng(Dat2), Arr2, 0)
Loop Until Not IsError(Pos2)
i = Pos2
Do
i = i + 1
If Cells(i, "C").Value = Dat2 Then _
Pos2 = Cells(i, "C").Row 'erreur 1004
Loop Until i = Cells(Rows.Count, "C").End(xlUp).Row
' MsgBox "Date suivante la plus proche : " & _
Chr(10) & Dat2 & " en C" & Pos2
End If
End If
LigDatFin = Pos2
' MsgBox "Valide ERREUR " & eRRe
End Sub 'FS
----------------------------------------
Merci a ceux qui me donneraient la solution pour arrêter
le comptage de i lorsque la colonne date devient vide et
me donne la dernière date de la colonne.
Slt à plus
Marc