[Excel VBA] Comparaison de date
Foufou
-
Foufou -
Foufou -
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
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:
- [Excel VBA] Comparaison de date
- Liste déroulante excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
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