OVH Cloud OVH Cloud

résultat incohérent

1 réponse
Avatar
Herwin
Je souhaite filtrer un tableau Excel, sans utiliser les filtres automatiques.

Mon tableau Excel contient 2 colonnes Dates. La colonne C pour les dates de
début
La colonne D pour les dates de fin.

En infiquant dans une textbox une date, je souhaite ne visualiser que les
lignes
dont la date de début et la date de fin comprenne cette date. Cad
daterecherchée > date debut et < à date fin.
Toutes les lignes ne comportant pas cette dates doivent être masquer par la
commande feuil1.rows(num de la ligne).hidden = true


Pour l'instant, les lignes masquées semblent aléatoires, en tout cas pas
cohérentes avec ma date recherchée.

Voici donc mon boit de code, avis aux ammateurs !
DimMyDateDebut, MyDateFin As Date
MyDateDebut = Feuil1.Textbox1.value

' definition de la plage dates fin
plageFin = range("d2:d9")

' definition de la plage dates debut
plageDebut = range("c2:c9")

' declaration des tableaux contenant mes colonnes de dates
Dim MyTColonneDebut(10), MyTColonneFin(10) As 10

i = 1
' parcours de la colonne des dates fin, stockage ds 1 tableau des diff valeurs
for each cellulecolonneFin In plageFin
MyTColonneFin(i) = cellulecolonneFin
i = i + 1
Next


j = 1
' parcours de la colonne des dates debut, stockage ds 1 tableau des diff
valeurs
for each cellulecolonneDebut In plageDebut
MyTColonneDebut(j) = cellulecolonneDebut

'*********** FILTRAGE DES RESULTATS **********
If MyDateDebut >= MyTColonneDebut(j) AND MyDateDebut <= MyTColonneFin(j)
Then
MsgBox("Ca marche !")
Else
Feuil1.Rows(j).Hidden = True
End If

j = j + 1
Next


Voilà. Et les lignes masquées le sont sans aucune cohérence.

1 réponse

Avatar
papou
Bonjour
Sans trop rentrer dans le détail :
1 - La déclaration suivante ne définit que MyDateFin en tant que date,
est-ce normal ?
DimMyDateDebut, MyDateFin As Date
2 - as-tu testé la cohérence de la valeur renvoyée par ceci :

MyDateDebut = Feuil1.Textbox1.value ?
Je suggère plutôt MyDateDebut = CDate(Feuil1.Textbox1.value)

3 - Où es définie la valeur de MyDateFin ?

Cordialement
Pascal

"Herwin" a écrit dans le message de
news:
Je souhaite filtrer un tableau Excel, sans utiliser les filtres
automatiques.


Mon tableau Excel contient 2 colonnes Dates. La colonne C pour les dates
de

début
La colonne D pour les dates de fin.

En infiquant dans une textbox une date, je souhaite ne visualiser que les
lignes
dont la date de début et la date de fin comprenne cette date. Cad
daterecherchée > date debut et < à date fin.
Toutes les lignes ne comportant pas cette dates doivent être masquer par
la

commande feuil1.rows(num de la ligne).hidden = true


Pour l'instant, les lignes masquées semblent aléatoires, en tout cas pas
cohérentes avec ma date recherchée.

Voici donc mon boit de code, avis aux ammateurs !
DimMyDateDebut, MyDateFin As Date
MyDateDebut = Feuil1.Textbox1.value

' definition de la plage dates fin
plageFin = range("d2:d9")

' definition de la plage dates debut
plageDebut = range("c2:c9")

' declaration des tableaux contenant mes colonnes de dates
Dim MyTColonneDebut(10), MyTColonneFin(10) As 10

i = 1
' parcours de la colonne des dates fin, stockage ds 1 tableau des diff
valeurs

for each cellulecolonneFin In plageFin
MyTColonneFin(i) = cellulecolonneFin
i = i + 1
Next


j = 1
' parcours de la colonne des dates debut, stockage ds 1 tableau des diff
valeurs
for each cellulecolonneDebut In plageDebut
MyTColonneDebut(j) = cellulecolonneDebut

'*********** FILTRAGE DES RESULTATS **********
If MyDateDebut >= MyTColonneDebut(j) AND MyDateDebut <= MyTColonneFin(j)
Then
MsgBox("Ca marche !")
Else
Feuil1.Rows(j).Hidden = True
End If

j = j + 1
Next


Voilà. Et les lignes masquées le sont sans aucune cohérence.