Bonsoir à toutes et à tous,
j'ai besoin de savoir si ma base de données comporte des entrées comprises entre telle et telle date.
Dans la feuille BASE se trouvent les lignes à "questionner" et dans la feuille PASSAGE la période de référence. En gros, avec l'exemple fourni dans le fichier joint, je cherche si la tranche du 6 janvier 2012 au 7 février 2012 figurant en PASSAGE présente des entrées dans BASE
Je pensais faire avec un countif mais je n'arrive pas à remonter le résultat (normalement, compteur devrait renvoyer 3). Que je place le résultat dans ou hors de la boucle, le compteur ne s'incrémente pas (au mieux, il renvoie 1, parfois 0 …)
Quelqu'un a-t-il une idée comment faire ? Merci d'avance pour votre aide
j'ai besoin de savoir si ma base de données comporte des entrées comprises entre telle et telle date.
Dans la feuille BASE se trouvent les lignes à "questionner" et dans la feuille PASSAGE la période de référence. En gros, avec l'exemple fourni dans le fichier joint, je cherche si la tranche du 6 janvier 2012 au 7 février 2012 figurant en PASSAGE présente des entrées dans BASE
Je pensais faire avec un countif mais je n'arrive pas à remonter le résultat (normalement, compteur devrait renvoyer 3). Que je place le résultat dans ou hors de la boucle, le compteur ne s'incrémente pas (au mieux, il renvoie 1, parfois 0 …)
Quelqu'un a-t-il une idée comment faire ? Merci d'avance pour votre aide
Code:
Sub recherche()
Dim PeriodeBase As Range
Dim PeriodePassage As Range
Dim dernligBase As Long
Dim dernligPassage As Long
Dim DatePassageDepuis As Date
Dim DatePassageJusqua As Date
Dim DateBaseDepuis As Date
Dim DateBaseJusqua As Date
dernligPassage = Sheets("Passage").Range("A" & Rows.Count).End(xlUp).Row
Set PeriodePassage = Sheets("Passage").Range("A2:A" & dernligPassage)
DatePassageDepuis = WorksheetFunction.Min(PeriodePassage)
'MsgBox "la date mini dans la feuille Passage est " & DatePassageDepuis
DatePassageJusqua = WorksheetFunction.Max(PeriodePassage)
'MsgBox "la date maxi dans la feuille Passage est " & DatePassageJusqua
dernligBase = Sheets("Base").Range("A" & Rows.Count).End(xlUp).Row
Set PeriodeBase = Sheets("Base").Range("A2:A" & dernligBase)
DateBaseDepuis = WorksheetFunction.Min(PeriodeBase)
'MsgBox "la date mini dans la feuille Base est " & DateBaseDepuis
DateBaseJusqua = WorksheetFunction.Max(PeriodeBase)
'MsgBox "la date maxi dans la feuille Base est " & DateBaseJusqua
Dim Compteur As Long
Dim Cellule As Range
For Each Cellule In PeriodePassage
Compteur = Application.WorksheetFunction.CountIf(PeriodeBase, Cellule.Value)
Next
MsgBox " il y a " & Compteur & " entrée(s)"
End Sub