[Excel VBA] Comparaison de date

Fermé
Foufou - 9 mars 2009 à 11:10
 Foufou - 9 mars 2009 à 11:54
Bonjour,

Je possède un listing de tache à effectuer avec des dates. Ce listing est trié chronologiquement.
Je dois programmer une macro VBA pour Excel me permettant de selectionner la ligne correspondant à une date ou, si cette date n'est pas dans la liste, la ligne du jour d'après. (ou le jour le plus proche après)

Après avoir cherché un peu sur les forums, j'ai fini par ecrire un code, mais je ne vois pas où est le problème...

Dim i As Variant
i = 0
Dim L As Variant
L = 1

Dim A As Date
Dim B As Date

'détermine la dernière ligne remplie
Worksheets("feuil1").Range("H4").Value = Worksheets("active").Range("A65536").End(xlUp).Row

While i < (Range("H4").Value + 1) And L <> 0

'convertit et compare les valeurs de case en date.
A = FormatDateTime(Worksheets("active").Range("K" & i).Value, 1) **************LIGNE DE L'ERREUR
B = FormatDateTime(Worksheets("feuil1").Range("I17").Value, 1)
If A < B Then
i = i + 1
Else
L = Range("K" & i).Row - 1
End If
Wend

'Inscrit la valeur de la ligne correspondant à la date recherchée
Worksheets("feuil1").Range("I20").Value = L


A vot' bon coeur !! ;)

Foufou
A voir également:

1 réponse

Mon code est imbitable désolé...


Dim i As Variant   'l'index d'incrementation
Dim L As Variant  'le numéro de la ligne retenu
Dim A As Date     'la date de recherche
Dim B As Date     'la date d'index

L = 1 
i = 0 

Worksheets("feuil1").Range("H4").Value = Worksheets("active").Range("A65536").End(xlUp).Row 

While i < (Range("H4").Value + 1) And L <> 0 

       A = FormatDateTime(Worksheets("active").Range("K" & i).Value, 1) ***LIGNE DE L'ERREUR 
       B = FormatDateTime(Worksheets("feuil1").Range("I17").Value, 1) 

       If A < B Then 
              i = i + 1 
              Else 
              L = Range("K" & i).Row - 1 
       End If 
Wend 

Worksheets("feuil1").Range("I20").Value = L
1