afficher dans la listview les lignes qui sont supérieur à 90 jours

petchy

XLDnaute Occasionnel
bonjour
à l'aide d'un USF j'envoi des données sur une feuille
colonne A:Date
colonne B:Nom
colonne C:prénom
colonne D:Divers
dans un autre USF j'ai une listview
comment faire pour afficher dans la listview les lignes qui sont supérieur à 90 jours par rapport à la date systeme.
merci
 

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Bonjour

encore un petit soucis,voila quand la date est :
08/01/2007 la c'est bon,il se met bien dans la listview
par contre si la date est :
18/01/2007 la elle ne se met pas dans la listview
apparement
il ne prends pas en compte le premier chiffre,pourquoi ?
 

excalibur

XLDnaute Impliqué
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

re bonjour le fil je comprends pas j ai essaye plusieurs format de date no pb..
par ailleurs j ai essaye le dernier code de l ami bqtr is not pb.. egalement

j utilise xp & excel 2003 quel format de date tu mets !!! essaie de zipper un bout de code
 

Pièces jointes

  • listview.zip
    23.2 KB · Affichages: 26
  • listview.zip
    23.2 KB · Affichages: 24
  • listview.zip
    23.2 KB · Affichages: 29

ChTi160

XLDnaute Barbatruc
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Salut
Bonjour le Fil
Bonjour le Forum
voilà une petit procèdure qui employe une fonction DateDiff (à voir)

qui doit pouvoir être adaptée à ta demande

Code:
Sub test()
With WorkSheets("Feuil1")
For Ligne = 1 To 100
  If [COLOR=Blue]DateDiff[/COLOR]("d", [COLOR=Blue]DateValue[/COLOR](.Cells(Ligne, 1)), Date) >= 90 Then
      MsgBox DateValue(.Cells(Ligne, 1))
  End If
Next
End With
End Sub
DateValue permet de lire plusieurs format de date
  • DateValue : La fonction renvoie un Variant (Date) qui correspond au numéro de série de la Date passée en paramètre.
    * Date : Une chaine correspondant à une date valide en fonction des paramètres Windows. Cette expression peut donc intégrer les séparateurs de date (/) qui y sont définis. La plupart du temps, ces solutions seront acceptées : "31/7/1960", "31/07/1960", "31/7/60","31 juillet 1960", "31-juil-1960" et "31 juil 1960"
Bonne journée et Bon Dimanche
 
Dernière édition:

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Re
je crois que ça vient de l'envoi des données vers la feuille,car c'est avec un autre USF que j'envoi mes données.
voila mon code pour valider les données
j'utilise un MaskEdBox1 pour la date
Private Sub CommandButton1_Click()
Dim WsBase As Worksheet

If TextBox1 = "" Then
MsgBox "Votre Contact n'a pas de nom ? ", vbCritical, "Mode Nouveau Validation Error"
Exit Sub
End If
Feuille = ActiveSheet.Name
Range("A2:d2").Select
Selection.Insert Shift:=xlDown
With Sheets(Feuille)
.Range("a2").Value = MaskEdBox1.Text
.Range("b2").Value = TextBox1.Text 'nom
.Range("c2").Value = TextBox2.Text 'prénom
.Range("d2").Value = TextBox3.Text 'déclics

End With
Range("A2:D35000").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox1.SetFocus

Unload Me
UserForm1.Show

End Sub
 

jp14

XLDnaute Barbatruc
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Bonjour
Bonjour ChTi160


Une piste
L'expérience montre que gérer les dates entre l'usf et la feuille de calcul n'est pas toujours simple car excel fait parfois ce qu'il veut.
La meilleure solution est de formater les données avec "Cdate", ou la fonction "Format" en ayant au préalable vérifié si la valeur entrée est une date avec la fonction "Isdate" ou "DateValue" et dans ce cas en piégeant l'erreur.

JP
 
Dernière édition:

excalibur

XLDnaute Impliqué
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

rele fil je connais pas ce controle!! en recherchant un peu il a une histoire de format a definir ??? MaskEdBox1.Mask="##/##/####" je peus pas t aider plus sorry
 
Dernière édition:

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Re

oui,c'est bien une histoire de format
car quand je le marque dans la feuille directement,la pas de probleme
par contre en passant par l'USF j'ai un probleme
sauf pour les date qui commence par 0
je ne sais vraiment pas quoi faire :)
 

jp14

XLDnaute Barbatruc
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Bonjour

S'il y a un problème avec le premier zéro il faut mettre la date dans une variable de type string, vérifier avec la fonction "Len" le nombre de caractère si nécessaire rajouter le 0 en concaténant les données et écrire dans la feuille la variable de type "string".

JP
 

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Re

non,justement quand la date est de se format
01/01/2001 la c'est bon
mais comme ça
11/01/2001 la ,elle ne s'affiche pas dans la listview
c'est pour ça que je ne comprends pas
 

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

salut jean pierrre

oui,j'ai essayer,mais c'est toujours pareil
donc j'ai mis un controle DTPicker1,mais bon ça ne change rien
c'est vraiment un probleme de format,mais pourquoi,la c'est un grand mystère
en plus,il y à un truc bizarre
quand j'envoi la date dans la cellule et quelle est de format
01/01/2001 la date se met à droite de la cellule
et quand la date est de format
12/01/2001 elle se met à gauche de la cellule,par contre si je la modifie directement sur la feuille la elle se met à droite et elle s'affiche dans la listview.
c'est pour ça c'est vraiment bizarre
 

jp14

XLDnaute Barbatruc
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Bonjour

A priori il y a un problème au niveau du format de la date.
Si les dates sont au format US une date française comme 20/01/2007 sera traité sous la forme texte donc à gauche dans une cellule, si la date est 10/10/2008 elle est lisible dans les deux sens jj/mm/aaaa ou mm/jj/aaaa et on ne repère pas le problème.

Lorsque l'on a ce type de problème on transforme les date en texte en écrivant aaammjj ce qui dans ce cas permet les comparaisons.

Pour info une listview ne connaît pas les dates c'est pourquoi si on désire trier une colonne qui contient des dates il faut utiliser soit une colonne cachée avec les dates sous la forme numérique ou la forme aaaammmjj.

JP
 
Dernière édition:

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

Bonsoir à tous

je crois que c'est bon ,JP14 ma mis sur la piste j'ai modifier l'envoi de la date sur ma feuille
.Range("a2").Value = Format(DTPicker1, "YYYY/MM/DD")
au lieu
.Range("a2").Value = Format(DTPicker1, "DD/MM/YYYY")
un grand merci à tous pour votre patience et vos réponses ;)
@ plus
en espérant ne plus venir sur se post :)
 

petchy

XLDnaute Occasionnel
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

bonjour

me revoila,moi qui penser avoir clos se post et ben non :(
en fait le code que j'ai mis,met toutes les dates dans la listview,donc je reviens au point de départ.
.Range("a2").Value = Format(DTPicker1, "YYYY/MM/DD")
je commence à en avoir marre,si quelqu'un aurait une solution voir une autre,je suis preneur.
merci
 

excalibur

XLDnaute Impliqué
Re : afficher dans la listview les lignes qui sont supérieur à 90 jours

re le fil salut petchy a part le suicide ....(lol) pourquoi tu renseignes pas simplement avec une textbox & supprimer ce DTPicker ou ce MaskEdBox c est puis envoyer dans une listbox au lieu d une listview plus simple a moins bien que ton tableau soit demesure ? c est pas facile de maitriser tous ces controles dificiles de trouver des infos enfin je te souhaite bon courage pour la suite
 

Discussions similaires

Statistiques des forums

Discussions
312 836
Messages
2 092 656
Membres
105 479
dernier inscrit
chaussadas.renaud