Bonjour,
Voici le problème qui m'amenne ici :
Je veux trouver dans une colonne la première et la dernière occurence d'une date.
Concrètement, il s'agit de l'historique de cotation du cac40 depuis le 1er janvier 2011 minute par minute.
Je veux donc trouver pour jour 1 : ligne 1 à 200, jour 2: ligne 201 à 350 etc...
Mon code est le suivant :
Il marche très bien... dans certains cas. Je m'explique, le 1er jour de recherche est le 03/01/2011.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Sub toto() Dim BORNE_P As Range, BORNE_N As Range, BORNE_9H As Range Dim i As Double, j As Double Dim DL As Double DL = 0 Set WS_SOURCE = Sheets("Travail") Dim CharDate As Date With WS_SOURCE DL = .Columns(1).End(xlDown).Row ' Trouve la derniere ligne de la colonne Debug.Print "Derniere ligne : " & DL For i = 2 To DL CharDate = CDate(.Cells(i, 1).Value) ' Valeur recherchée Set BORNE_P = .Columns(1).Find(CharDate) ' 1ere occurence Set BORNE_N = .Columns(1).Find(CharDate, SearchDirection:=xlPrevious) ' Dernière occurence Debug.Print BORNE_P.Row & " : " & BORNE_N.Row i = BORNE_N.Row + 1 ' Passe à la journée suivante Set BORNE_P = Nothing Set BORNE_N = Nothing Next i End With End Sub
Si je lance le code j'obtient : http://imageshack.us/f/526/66798249.png/
Je n'arrive pas à comprendre pourquoi, le programme butte sur la date 03/11/2011 et me l'indique comme étant le 03/01/2011.
En effet du moment que je supprime toutes les valeurs pour le 03/11/2011 :
http://imageshack.us/f/339/10914709.png/
Tout marche comme sur des roulettes...
J'avoue être un peu perdu sur le sens des choses...
Je me suis permis de le mettre sur RS, car il est trop lourd pour le mettre en PJ (8mo) et est au format xlsm.
Merci d'avance pour votre aide !
Partager