Filtre avec critères variable : récupération de données de 23:50:00 à 00:50:00 ?
Moun49800
Messages postés6Date d'inscriptionjeudi 31 mai 2012StatutMembreDernière intervention29 juin 2012
-
29 juin 2012 à 15:11
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
29 juin 2012 à 18:49
Bonjour tous le monde,
Mon problème est le suivant : J'exécute un filtre pour récupérer des données d'un colonne sur un feuille. Le filtre traitent des HEURES, jusqu'ici aucun problème: Si l'on prend comme premier critère >= 22:30:00 et deuxième critère <=23:30:00 (les données de 22:30:00 jusqu’à 23:30:00 sont récupérées)
Seulement si l'on prend comme premier critère >=23:30:00 et deuxième critère >=00:10:00 (les données récupérées s’arrêtent à 23:59:59)
Voici mon programme pour plus de clarté :
Private Sub CommandButton3_Click()
Dim NbrCases
Dim lig_fin
Dim HeureDeFin As Date
Dim HeureDebut As Date
Dim Plage As Date
Dim i
Dim UN As Date
Dim TopDépart As Date
Dim HeureDebutMesure As Date
Dim HeureFinMesure As Date
Dim DateDébut As Date
Dim Dif1 As Date
Dim M As Date
Dim Uneseconde As Date
For i = 1 To 8
If i = 1 Then
UN = "00:30:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR70 "
ElseIf i = 2 Then
UN = "00:45:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR50 "
ElseIf i = 3 Then
UN = "01:00:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR50 "
ElseIf i = 4 Then
UN = "01:15:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR50 "
ElseIf i = 5 Then
UN = "01:30:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR50 "
ElseIf i = 6 Then
UN = "02:00:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR50 "
ElseIf i = 7 Then
UN = "02:30:00"
Sheets(6).Select
Range("H7").FormulaR1C1 = "Test T20 HR50 "
ElseIf i = 8 Then Exit Sub
End If
Sheets(1).Select
TopDépart = Range("B2").FormulaR1C1 ' N°1 : ex 14:33:20
HeureDebutMesure TopDépart + UN ' N°1+ N°2 "HeureDebutTop" prend pour valeur TopDépart additionner à UN> 15:03:20
Plage ComboBox2.Text '"Plage" prend pour valeur ComboBox2 (00:10:00 , 00:20:00, 00:30:00, ....> le temps de récupération)
DateDébut = Range("A2").Value 'Inutil !!
M = "23:59:59"
Uneseconde = "00:00:01"
If HeureDebutMesure > "23:59:59" Then 'Pour mettre en forme HeureDebutMesure si elle est supérieur a 23:59:59
Dif1 = HeureDebutMesure - M
HeureDebutMesure = Dif1 - Uneseconde
DateDébut = DateAdd("d", 1, DateDébut)
End If
HeureFinMesure = HeureDebutMesure + Plage
If HeureFinMesure > "23:59:59" Then
Dif1 = HeureFinMesure - M
HeureFinMesure = Dif1 - Uneseconde
Range("B1").Select
Selection.AutoFilter Field:=2, Criteria1:=">=" & HeureDebutMesure, Operator:=xlAnd, _
Criteria2:=">=" & HeureFinMesure
Else: Range("B1").Select
Selection.AutoFilter Field:=2, Criteria1:=">=" & HeureDebutMesure, Operator:=xlAnd, _
Criteria2:="<=" & HeureFinMesure
End If
Next i
End Sub
Merci d'avance si je me suis mal exprimer n'hésiter pas à faire des remarques
A voir également:
Filtre avec critères variable : récupération de données de 23:50:00 à 00:50:00 ?
NHenry
Messages postés15114Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 mai 2024159 29 juin 2012 à 18:32
Bonjour,
En clair, si :
5<x<10
ça passe, mais si :
5<x
et
10<x
critère >=23:30:00 et deuxième critère >=00:10:00
c'est pas bon ?
C'est logique non.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 29 juin 2012 à 18:49
Bonjour,
Moi, "j'adore" tous ces select ... (bien sûr ...)
Mais "j'adore" encore plus une boucle de 1 à 8 que l'on quitte à 8 avec un exit sub (je me demande quelle est la logique d'un tel "mécanisme"
Je crois que j'ai besoin de repos
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ