Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1188 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  mon filtre automatique ne marche pas avec les dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mon filtre automatique ne marche pas avec les dates

n°1136081
davidan
Posté le 30-06-2005 à 15:49:21  profilanswer
 

voici un code qui me permet à l'aide d'une boite de dialogue d'effectuer ce que fait un filtre automatique:
if combobox1.value="tous" then
range("A1" ).autofilter field=1
else
range("A1" ).autofilter field=1,criteria:=combobox1.value
end if
 
malheureusement si la colonne comprend des dates ma macro n'arrive pas a les filtrer alors que ça marche lorsqu'il s'agit de texte.
je pense avoir un pb de format de date mais je ne sais pas trop.
merci d'avance.

mood
Publicité
Posté le 30-06-2005 à 15:49:21  profilanswer
 

n°1136663
Gusdabo
Posté le 01-07-2005 à 00:11:00  profilanswer
 

Essais de mettre un espion sur la combobox1.value, histoire de voir comment est stocké la valeur date.
 
Si c'est stocké sous format texte genre "01/01/20005", tu doit pouvoir le convertir et mettre ton filtre sur  
=datevalue(combobox1.value)
 
Si c'est sous la forme '38353' (pour le 01/01/2005), ou un truc comme ca, tu mets le filtre sur  
=cdate(combobox1.value)
 
Sinon, il reste la possibilité de stocker cette valeur dans une cellule non utilisée et de filtrer sur cette cellule...  
Pas très propre, mais bon!


Message édité par Gusdabo le 01-07-2005 à 01:03:59
n°1136904
davidan
Posté le 01-07-2005 à 10:49:50  profilanswer
 

bonjour
effectivement mes dates se mettent sous la forme 38353 mais ta solution ne marche pas
je n'arrive pas à m'en sortir
merci pour ton aide

n°1137043
Gusdabo
Posté le 01-07-2005 à 11:57:36  profilanswer
 

et le coup de mettre dans une cellule sur ta feuille de calcul ne marche pas non plus??

n°1137164
davidan
Posté le 01-07-2005 à 13:47:53  profilanswer
 

c'est à dire
je ne comprend pas

n°1137636
Gusdabo
Posté le 01-07-2005 à 18:41:28  profilanswer
 

Si tu prend une cellule non utilisée de ton tableau et tu colle la valeur de ta combo box dedans.
 
genre, si Z1 est vide
range("z1" ).value= combobox1.value
range("A1" ).autofilter field=1,criteria:=range("z1" )
Let range("z1" ).value=""
 
 
Mais quand même, t'es sûr que:
range("A1" ).autofilter field=1,criteria:=cdate(combobox1.value )
ne marche pas??
 
Peut être avec une variable intermédiaire?
 
let varint = combobox1.value  
range("A1" ).autofilter field=1,criteria:=cdate(varint)


Message édité par Gusdabo le 01-07-2005 à 18:44:07
n°1141855
davidan
Posté le 06-07-2005 à 11:54:09  profilanswer
 

non malheureusement je suis dans l'impasse
je cherche mais je ne trouve pas
le filtre auto semble avoir du mal avec les date lorsqu'on passe par une combobox
je cherche mais rien y fait
merci de ton aide
si t'as une autre info je suis preneur

n°1141860
Gusdabo
Posté le 06-07-2005 à 11:56:46  profilanswer
 

davidan a écrit :


si t'as une autre info je suis preneur


 
Tu veux pas m'envoyer ton fichier que je regarde de + près?...

n°1141879
davidan
Posté le 06-07-2005 à 12:14:59  profilanswer
 

il suffit de reprendre mon code au dessus en l'associant  à une combobox
tu verra si tu met du texte dans la colonne à filtrer ça marche mais si tu met des dates il ne trouve rien
alors que si j'utilise le filtre auto directement sans passer par la combobox ça marche
c'est vraiment bizarre
j'ai cherché dans d'autre forum et apparement c'est un pb qui revient souvent:
le filtrage auto de date en passant par une combobox pose des pb( en général cela filtre toutes les lignes sans en selectionner: c'est exactement ce qui m'arrive, il ne semble pas reconnaitre les dates)
il faut que je trouve car ainsi j'aurai bouclé mon projet.
merci pour ton aide précieuse

n°1141944
Gusdabo
Posté le 06-07-2005 à 13:00:58  profilanswer
 

bah oui, j'aurais juste préféré ne pas voir à refaire tout le bignou, la combo box et tout...
 

mood
Publicité
Posté le 06-07-2005 à 13:00:58  profilanswer
 

n°1141947
Gusdabo
Posté le 06-07-2005 à 13:04:41  profilanswer
 

Tu veux qu'il y ait quelle valeurs, dans la combobox?
L'utilisateur rentre tout seul?
C'est la liste des valeur de la colonne??

n°1142022
Gusdabo
Posté le 06-07-2005 à 13:59:47  profilanswer
 

C'est moche mais ca marche...
 
If ComboBox1.Value = "tous" Then
    Range("A1" ).AutoFilter Field = 1
Else
    Selection.AutoFilter Field:=1
    Columns("A:A" ).NumberFormat = "0"
    Range("b1" ) = CDate(ComboBox1.Value)
    Range("b1" ).NumberFormat = "0"
    Range("A1" ).AutoFilter Field:=1, Criteria1:=Range("b1" )
    Range("b1" ) = ""
End If
Columns("A:A" ).NumberFormat = "dd/mm/yy"
 
l'idée c'est de mettre les dates de la colonne A au format chiffre.
Ensuite tu prends la valeur de ta combo.box, tu la converti en date, et tu colle cela dans une cellule vierge (ici B2)
Tu met b2 au format chiffre et tu appliques ton filtre sur la valeur de B2 avant de repasser la cellule sélectionnée en A au fromat date.
 
Le problème c'est que les autres valeurs dans la colonne A restent au format nombre, donc il faut que tu mettes un  
Columns("A:A" ).NumberFormat = "dd/mm/yy"
dans le cas ou tu fais un filtre sur une autre colomne.
 
Je sais pas si je suis clair?
 
 
 
 

n°1142271
davidan
Posté le 06-07-2005 à 15:55:12  profilanswer
 

oui c'est la liste des valeur de la colonne

n°1142412
Gusdabo
Posté le 06-07-2005 à 17:27:00  profilanswer
 

comment tu récupères liste de valeur??
 
Le seul problème, c'est ces histoires de format, mais à mon sens ca doit être simple à régler.
Pour récupérer les dates sans le format (ie forme 38558...), on peut utiliser value2.
 
Franchement, si tu m'envoies ton fichier, c'est réglé en 10min, alors que là je galère un peu... Si c'est un problème de confidentialité, essaie de virer les infos non essentielles à ce problème précis, pour que je puisse faire qq chose...
 
Tu vois...


Message édité par Gusdabo le 06-07-2005 à 17:37:56
n°1144092
davidan
Posté le 08-07-2005 à 10:48:37  profilanswer
 

merci grace à toi j'ai fini par y arriver!!
merci pour ton aide
j'ai encore un dernier pb avec cette combobox
je te rappelle mon code
Private sub bouton_OK_click()
if Combobox1.value="tous" then
range("g12" )Autofilter field:=7
else
range("G12" ).autofilter fied:=7,criteria1:=combobox1.value
end if
(la combobox contient la liste "G12:G65536" )
comment je peux retirer simplement les doublons dans ma combobox sans les enlever dans mon tableau
j'ai trouver des trucs mais c'est trop compliquer,je n'arrive pas à les adapter à mon cas.
merci encore

n°1419118
maison95
Posté le 03-08-2006 à 18:20:16  profilanswer
 

J'ai le même souci ... Quand j'essaye de filtrer avec une date ma liste excel en utilisant une date comme critère de tri.
 
Ca marche avec certaine MAIS pas avec d'autres dates.
 
Exemple du 13/07/2006 au 31/07/2006 CA FILTRE
MAIS du 12/07/2006 au 31/07/2006 : IL REMPLACE le 12/07/2006 par un nombre dans le filtre


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  mon filtre automatique ne marche pas avec les dates

 

Sujets relatifs
Pb code js, top.location marche pas....Mise à jour automatique
mise à jour automatiqueVB, dates, entiers, et pendaison
Installation automatique des polices ?shell_exec et iptables..ca marche pas
Fermeture automatique d'une pop-up mailGalerie PHP qui ne marche pas sous Firefox
filtrage automatique vbapk sa marche !
Plus de sujets relatifs à : mon filtre automatique ne marche pas avec les dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR