papenjoin
Messages postés17Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention 4 juin 2007
-
31 mai 2007 à 10:31
papenjoin
Messages postés17Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention 4 juin 2007
-
4 juin 2007 à 12:38
Je possède un tableau qui contient des données classées par ordre chronologique.
Donc, chaque ligne de ce tableau contient une date et une heure.
Je souhaite determiner la ligne où se trouve la donnée en fonction de sa date et de son heure. Pour cela j'ai entrer le code suivant (les variable sont des variables globales):
Sub GestionLigneDebut()
If DateDebut <> "" Then
Set trouvedatedebut = Worksheets(Ref).Cells.Find(What:=DateDebut, SearchDirection:=xlNext)
If Not trouvedatedebut Is Nothing Then
Debut = trouvedatedebut.Row
If HeureDebut <> "" Then
Sheets(Ref).Select
Cells(Debut, 3).Activate
Set trouveheuredebut = Worksheets(Ref).Cells.Find(What:=HeureDebut, After:=ActiveCell, SearchDirection:=xlNext)
If Not trouveheuredebut Is Nothing Then
Debut = trouveheuredebut.Row
End If
End If
End If
Else
Debut = 7
End If
End Sub
Avec ce code je parviens à déterminer la ligne de la première apparition de la date mais pas celle de l'heure. J'aimerai donc savoir pourquoi ma recherche de l'heure n'aboutie pas. Peut-être un problème de format mais pourtant HeureDebut est bien au format "hh:mm:ss" alors je ne vois vraiment pas.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 31 mai 2007 à 13:06
Tu écris
Sheets(Ref).Select Cells(Debut, 3).Activate Écris plutôt
Sheets(Ref).).Activate Cells(Debut, 3).).Select
Une fois que tu as trouvé la date, plutôt que d'utiliser un autre Find, utilise OffSet ou le nom de la colonne
Je ne sais pas si tes dates et tes heures sont toujours dans les mêmes colonnes (?)
Si oui, disons que les dates sont en A et les heures sont en B
If Range("B" & Debut) = HeureDebut then 'trouvé
ou
If Range(trouvedatedebut.Address).Offset(0, 1) = HeureDebut then ...
Autrement, tu pourrais trouver une heure mais qui ne serait pas sur la même ligne que la date.
Tu pourrais aussi ajouter à ton appel de Find les paramètres xlValues et xlWhole, éventuellement.
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 31 mai 2007 à 15:11
bonjour,
et de plus, tu écrit
If Not trouvedatedebut Is Nothing Then
ce qui revient à dire que si ce n'est pas vrai que trouvedatedebut est vide...
If trouvedatedebut Then serrait plus simple
A+
louis