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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <Herwin@discussions.microsoft.com> a écrit dans le message de
news:000DAE7C-797E-4258-8943-0767388D2ED7@microsoft.com...
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.
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.