Problème de recherche de mot clé

papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007 - 31 mai 2007 à 10:31
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Derniè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.

Merci pour votre aide

3 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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.

MPi
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
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
0
papenjoin Messages postés 17 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 4 juin 2007
4 juin 2007 à 12:38
Merci pour vos conseils le problème est résolu ;)
0
Rejoignez-nous